Anim8or Community

Please login or register.

Login with username, password and session length
Advanced search  


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 ... 11
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!


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.

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!

ASL Scripts / Re: BVH File Import into Anim8or
« on: October 06, 2018, 04:23:11 pm »
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,

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.

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.

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.

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

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

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.


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

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.


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

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;

int $l,$back,$fwd;
point3 $facePoint[0];
point3 $facePointNormal[0];
point3 $fPNavg;
$"$console", "w");
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));
$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));
$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);


ASL Scripts / Re: BVH File Import into Anim8or
« on: January 24, 2016, 11:51:51 am »
Like Claude posted, if you post the BHV file and parameters, I will take a look.  Often, these issue happen because so many different BVH generators write slightly differing formats that the parser does not anticipate or the file is simply malformed.


ASL Scripts / Re: SetFacePointIndex method
« on: January 07, 2016, 12:39:01 pm »

I am not sure which script your are referring to as "parametric SourceMesh2Target".

If you are referring to the parametric script in,906.msg6613.html#msg6613 called "mesh2mesh_1.a8s", I tested it in Build 1205 and it worked fine for me.  You kind of have to click the script button, then sort of click-drag a bit in some open area and the parametric copies appear.

What behavior are you seeing?

Thank you,

ASL Scripts / Re: SetFacePointIndex method
« on: January 06, 2016, 01:52:07 pm »

When I ran through the tank tread tutorial (including downloading the scripts posted there) on Build 1205, it worked properly.

Also the mesh_2_path_2 worked properly without hanging when I tried it.

Could it be something unique to your setup?  I am happy to help in any way.

ASL Scripts / Re: SetFacePointIndex method
« on: January 05, 2016, 08:38:32 am »
Luckily, "new" edges are always added to the end of the list, so as a workaround, I can just delete them without it causing problems with rearranging the index.

I had no idea that these scripts had stopped working.  I haven't used them in quite some time.  I will investigate further.

Thank you!

Pages: [1] 2 3 ... 11