Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


wallworm last won the day on September 11 2019

wallworm had the most liked content!


Contact Methods

  • Website URL

Profile Information

  • Gender
    Not Telling
  • Interests
    3d, game development

Recent Profile Visitors

6326 profile views

wallworm's Achievements


Rookie (2/14)

  • First Post Rare
  • Collaborator Rare
  • Conversation Starter Rare
  • Week One Done
  • One Month Later

Recent Badges



  1. Eduard, In this example, there is one GrowFX object using a Point Distributor. There are three point distributor Points that create the yellow cones. The objects that are created have a pivot that is where the GrowFX node was (world origin in this case). When I moved them away, notice how the pivot is not at the object base, but offset. I'd like the pivots to be where the original distributor spawn was (base of each cone). In the case of a point distributor, I'd like the position and orientation to match that of the point helper that the point distributor used. Hope this makes sense.
  2. Awesome. I cannot believe I didn't notice that! I would like to propose an option to make that function have the ability to set the pivot/transform of each object to match the position/orientation of the distributor point that made each object? Right now the pivot matches the pivot of the GFX object, and this isn't ideal for assets exporting into a game. Also, is the method of that button exposed to MAXScript?
  3. In GrowFX2, if you click the Create button to create a new point for a Point Distributor, only the first point you click will work as expected when snaps are turned on. The following points will all be aligned exactly to the first point you create.
  4. I would love to see a utility in GrowFX that would allow me to create a snapshot of each plant in a GrowFX node. By plant I would mean the complete mesh for each path up to the top parent. For example, in the image here, there is one GrowFX node. There is one root Point Distributor that then spawns 5 plants from 5 points. Each of the resulting meshes from those 5 root distributions would be turned into a single mesh with its pivot aligned to the transform of that plant. It would be nice to have this exposed as both a button in the modify tab as well as exposed to MAXScript. In a MAXScrtip call it would be nice to have: <node> GrowFX2.GetMeshes() returns array of the nodes created from the function. Thanks for the consideration!
  5. Update: This problem seems to be related to some viewport settings. Ignore my question!
  6. I am curious about a problem where Vertex Colors sometimes stop working. In many cases when using the various vertex color nodes, the colors stop displaying in the viewport and renders (when using the vertex color channel in a texture map). Is there something to do to force vertex colors to be properly calculated? I've seen this problem where the vertex colors look fine, but when closing Max and re-opening the scene, the GrowFX node no longer generates the vertex colors.
  7. Sorry it took me so long to respond. AWESOME!
  8. It would be nice if GrowFX had a library browser similar to the one that comes with Forest Pack. It would be nice also if GFX would come with a preinstalled collection of plants in a default library. Finally, it would be good if you could add paths to GFX libraries that might be shared (on the LAN, for example).
  9. Yeah, that's probably correct. I noticed it doesn't detect this class. I think it may be that they are scripted geometry objects. The meshes are actually generated with the SDK but then used in the buildmesh of the scripted class (this is more convenient for my needs as developing UI and scripted functions is so much easier/quick in MAXScript).
  10. Eduard, I see that in your screenshot above the normals do seem to follow the transforms. I will have to see what might be different in my scene.
  11. Eduard, Thank you so much for looking into this! I tested the new version and have a few items to suggest. I noticed that the function only works if the source geometry has an edit normals modifier. This is an OK assumption but there are certain geometry types that are always explicit normals and perhaps they should not require the modifier. One important to me is WallWormMDL geometry class ( class id of #(0x4e8b048c, 0x732e564d) ). Others that might also want to be automatically using this is Linked FBX geometry. There are probably others. This is just a convenience idea. I noticed that the normals always point toward the original direction of the source normals in the world. In other words, they do not change orientation with the geometry as the objects are transformed from the distributors or morphed by modifiers. This leads to unexpected lighting. This issue is very important to address. I think that the second item might be computationally expensive but it is certainly necessary to get the results desired.
  12. Brilliant! I want my hands on it the second it's ready!
  13. That's awesome Eduard. I wish I had discovered this in my tests over the last two years! Note, it would be ideal if work on this includes some of the options in post #2 above for standard leaves and leaves meshes. Being able to make game-friendly normals especially for the low poly standard leaves would be a godsend. I would even add a couple new options than in list above: Out From Mesh Center Out From Element Centers.
  14. Here is a snippet of code for setting the explicit normal of Mesh class mesh (I yanked this from one of my plugins, hopefully it makes sense even if out of context): // Normals mesh.SpecifyNormals(); MeshNormalSpec *normalSpec = mesh.GetSpecifiedNormals(); normalSpec->ClearNormals(); normalSpec->SetNumNormals(numVerticies); normalSpec->SetNumFaces(numFaces); //verts for (int vertID = 0; vertID < numVerticies; ++vertID) { //here you would set verts, uvs //now set normal normalSpec->Normal(vertID) = Point3( normal, normaly, normalz); normalSpec->SetNormalExplicit(vertID, true); } // Face indicies for (int i = 0, j = 0; i < numFaces; i++, j += 3) { //set face verts, mapping, smoothing //now assign MeshNormalFace &normalFace = normalSpec->Face(i); normalFace.SpecifyAll(true); //below n0,n1,n2 would be index of normals normalFace.SetNormalID(0, n0); normalFace.SetNormalID(1, n1); normalFace.SetNormalID(2, n2); } //near end before invalidating geom or top caches normalSpec->SetFlag(MESH_NORMAL_MODIFIER_SUPPORT);//Might be necessary to keep normals and edit them normalSpec->SetAllExplicit();
  • Create New...