If I clone an object with a Genome with TexMapEval, the new object’s Genome doesn’t evaluate the map. I have to remove and add it back.
3ds max 2012, Genome beta 2.
If I clone an object with a Genome with TexMapEval, the new object’s Genome doesn’t evaluate the map. I have to remove and add it back.
3ds max 2012, Genome beta 2.
Just tried it here and it worked (I tested with a Cellular map and with a BitmapTexture).
Please try again in Beta 3 when it shows up and if you still see the problem, please upload a simple sample scene.
It seems to break the instance, and that’s what I was seeing. You expect two objects to be able to have the same material or texture applied as an instance, but you don’t expect them to have the same modifier and it be an instance. If I paste instance on the modifier, it’s fine though. Not sure how to handle it, if we want to have instanced maps but non-instanced other parameters.
The texmap is hosted by the Genome modifier. So when you clone as copy, the map gets also copied, just like controllers and everything inside the Genome modifier’s paramblock.
For example, I created two teapots and added a Genome to the one. Set the Output to Selection and the flow to TexmapEval with Cellular Map → Mono, and Position as input to that. This selects the vertices by the cellular map’s grayscale value.
Then I copied that modifier to the second teapot and got the same result, but at this point the two maps were independent copies. Changing some settings of the one map did not affect the other object.
One way to reinstance the map is to pick it again - in the new-style Material/Map Browser’s “Scene Materials” rollout, I see two maps called Map #1 (Cellular), the one assigned to Teapot001, the other to Teapot002. If I pick the map assigned to Teapot002 from the TexmapEval of Teapot001, I get the same map on both, and changing it via Material Editor affects both objects.
At this point, the Material/Map Browser shows only one map assigned to both.
I am not sure what UI-level controls I could provide that make this reinstancing easier. The copying of the modifiers happens at a lower level I have no access to, and in most cases you would expect the new modifier to be independent at any level if you copied.
Another way is to assign a fresh modifier to the second object and to copy&paste the flow into the new modifier - since the map will be resolved by name, if there is only one Map #1 (Cellular) in the scene, the same map will be re-instanced in the new modifier. If there are already multiple maps with the same name, the LAST one found will be used.
The actual code in the Clipboard looks like this:
try(theMaps = getClassInstances Cellular
for m in theMaps where m.name == "Map #1" do magmaNode.setNodeProperty node0 "texmap" m)catch()
Hope this helps.