Anim8or Community

Please login or register.

Login with username, password and session length
Advanced search  

News:

Ian Ross has just released a book on Anim8or. It's perect for a beginner and a good reference for experienced users. It contains detailed chapters on every aspect, with many examples. Get your own copy here: "Anim8or Tutorial Book"

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - NickE

Pages: [1] 2 3 ... 12
1
General Anim8or Forum / Re: Normals Acting Odd
« on: December 08, 2023, 08:31:47 am »
It is easy to check the normals of the faces by selecting all the faces.  The ones highlighted in yellow are positive normals and the blue ones are are negative.

2
General Anim8or Forum / Re: Stupid Non-Newbie Question #2
« on: October 26, 2023, 07:11:39 am »
I think you may be thinking about the "Shell" function on the Object/Point Edit tool bar.  It looks like a "U" with a dashed "U" inside of it.

3
General Anim8or Forum / Re: Array copy or similar?
« on: May 02, 2023, 08:34:33 pm »
You are welcome!  Looking forward to seeing what more you do with it!

4
General Anim8or Forum / Re: Array copy or similar?
« on: May 02, 2023, 06:25:41 am »
Alec,
In the scripts section, there are two scripts that might be applicable: mesh2mesh and mesh2path.  mesh2mesh copies an mesh to the vertices of another mesh while mesh2path copies a mesh along a path.  Search the posts as there are decent writeups on each in scripting section.

NickE

5
Ongoing Anim8or Development / Re: Animated Parameteric Plug-in Scripts
« on: December 25, 2020, 02:09:38 pm »
Wow, Steve!
That is a great Christmas present! I have been asking for this for years!
Thank you, thank you, thank you!

NickE

6
The edgeTable array represents the possible intersections of the marching cube with the point cloud.  The values of the EdgeTable array tell which edges of the marching cube intersect the isosurface with bits 0 to 11 each representing one edge of a cube.  It is way easier to represent binary in hex than decimal.

7
ASL Scripts / Re: New Write Image Functions.
« on: March 14, 2019, 06:34:39 pm »
Yea!  You rock, Steve! This solves many of the problems with rendering script-driven physics simulations.  I used to have to start an object script, manually switch to scene mode and start rendering, then remove all the duplicate frames from the scene rendering as the object script ran in the background with strategic delays to give the renderer time to finish the frame before the object script incremented.

Ideally, the scene controller parameters "frame" or "time" would be available to object scripts from scene mode, but this is a huge step forward.

Thank you, Steve!

8
ASL Scripts / Re: BVH File Import into Anim8or
« on: October 06, 2018, 04:23:11 pm »
Daniel,
Have you run into BVH files the BVH2an8 cannot handle?  If so, please post them, and I will see what I can do.

Thank you,
NickE

9
Depending on how your scene will interact with the added foliage, you could try billboarding.  This is a technique where you map a 2D image of the foliage as a texture, transparancy map, and bump map to a plane.  You can direct the plane to always be perpendicular to the camera so that the 2D nature of the plane is not noticable.

https://gamedev.stackexchange.com/questions/54871/what-is-billboarding-and-can-should-it-be-used-in-3d-games-to-create-special-ef

10
ASL Scripts / Re: Find tri's, quads etc in model
« on: February 04, 2017, 07:01:02 pm »
Attached is a simple script that will mark the faces, edges, and vertex points of any face that has more than four sides.

11
Have you ever had a collection of points and wanted a mesh that corresponded to the surface of those points?

In my never ending quest to bring physics (or to effects that look mostly like physics) to Anim8or through scripting, I was working with smoothed particle hydrodynamics (SPH) to simulate fluids.  Using Anim8or points as particles, I was able to write scripts to simulate the fluid action, but had no real way of rendering just points.  The actual SPH script is still in development.

One popular way to extract a surface mesh from a point cloud is to use a technique called Marching Cubes.

Below is an implementation of the the Marching Cubes Algorithm in ASL.  The documentation for usage is within the script itself.

12
General Anim8or Forum / Re: poly groups/ vertex groups
« on: June 23, 2016, 05:42:42 pm »
It is unclear what you are asking.  There is the ability to select by material:  Edit->Select->Select by Material

13
ASL Scripts / Re: Boolean operation problem!
« on: May 07, 2016, 11:53:34 pm »
JSmith,

I personally do not use Kubajzz Boolean Scripts A-B or B-A.  I use the one attached below.

I looked at the an8 file you attached.  Your mesh "meshHH" had several problems including interior lines and duplicate points.  Your mesh "meshSS" had all its normals flipped inward, a couple of extra edges and several duplicate points.  These issues are probably what is causing the errors with the Kubajzz A-B Boolean script.

When I fixed these issues and ran the attached boolean operations script (selecting the "meshSS" so it would be subtracted from "meshHH"), the result was a good subtraction with the exception of a few faces with flipped normals.  I have attached the an8 file so you can compare the original vs repaired meshes and the results of the Boolean subtraction.

NickE

14
ASL Scripts / Re: Boolean operation problem!
« on: May 06, 2016, 06:51:08 pm »
JSmith,

In the header of the script file is the instruction on how to execute the script.

Quick instructions:
Have an object that contains the two meshes that you want use for the boolean operations.
If you wish to do a Union operation, do not select either mesh and execute the script by Scripts->Run Script File...
If you wish to do a Difference operation, select the mesh that will be subtracted from the other, then execute the script
If you wish to do a Intersection operation, select both meshes, then execute the script

If you need more guidance, please let me know.

NickE

15
Anim8or v0.98 Discussion Forum / Re: Bug/Issue: Normals (ASL)
« on: March 08, 2016, 08:08:06 pm »
Raxx,

When I calculate the face normals from the average of the face vertex normals (calculated from the edge vectors from each point of the face), I do get different values than your script returns.  The edge vector calculated values return symmetrical normals for mirrored faces on your attached mesh.  I modified your script to add the manually calculated normals to the output.  You can see the variation in the individual vertex based face normals.  It seems the algorithm that Anim8or is using is significantly different or is suffering from a precision problem.

Code: [Select]
file $c;
shape $s, $childShapes[0];
int $i, $j, $k;
int $numSides;
point3 $faceNormal;

//added
int $l,$back,$fwd;
point3 $facePoint[0];
point3 $facePointNormal[0];
point3 $fPNavg;
 
$c.open("$console", "w");
 
project.curObject.GetShapes($childShapes);
 
for $i = 0 to $childShapes.size - 1 do
{
if($childShapes[$i].GetKind() == SHAPE_KIND_MESH)
{
$s = $childShapes[$i];
 
for $j = 0 to $s.GetNumFaces() - 1 do
{
if ($s.GetFaceSelected($j) == 1)
{
//$faceNormal = $s.GetNormal($s.GetFaceNormalIndex($j, 0));
$faceNormal=(0.0,0.0,0.0);
$fPNavg=(0.0,0.0,0.0);
$numSides = $s.GetNumSides($j);
        $facePoint.size = $numSides;
        $facePointNormal.size = $numSides;
for $k = 0 to $numSides - 1 do
{
$faceNormal = $faceNormal + $s.GetNormal($s.GetFaceNormalIndex($j, $k));
$facePoint[$k]=$s.GetPoint($s.GetFacePointIndex($j,$k));
$facePointNormal[$k]=(0.0,0.0,0.0);
}
 
$faceNormal = normalize(($faceNormal.x/(1.0 * $numSides), $faceNormal.y/(1.0 * $numSides), $faceNormal.z/(1.0 * $numSides)));

for $k = 0 to $numSides-1 do
{
          $back = $k - 1;
          if ($back < 0) $back = $numSides - 1;
          $fwd = $k + 1;
          if ($fwd > ($numSides - 1)) $fwd = 0;
          $facePointNormal[$k] = normalize(cross(($facePoint[$back]-$facePoint[$k]),($facePoint[$fwd]-$facePoint[$k])));
          $c.print("Calc FP %d Normal (%.3f,%.3f,%.3f)\n",$k,$facePointNormal[$k]);
          $fPNavg = $fPNavg + $facePointNormal[$k];
        }
        $fPNavg = normalize(($fPNavg.x / (1.0 * $numSides),$fPNavg.y / (1.0 * $numSides),$fPNavg.z / (1.0 * $numSides)));
$c.print("Face %d Anim8or normals (%.3f, %.3f, %.3f) Calc (%.3f, %.3f, %.3f)\n", $j, $faceNormal, $fPNavg);
}
}
}
}
 
$c.close();
 

NickE

Pages: [1] 2 3 ... 12