When assigning shaders with operators in ROPs to alembic procedurals, displacement does not appear to work.
I saw this post and it works when you assign the shader to the object at object-level, but when assigning with an "Assign Material" operator, the surface shading is correct, but no displacement occurs.
Am I missing something?
EDIT: alembic-procedural-displacement.zip
Scene file attached
Solved! Go to Solution.
Solved by Stephen.Blair. Go to Solution.
Updated...
The Arnold procedural and alembic nodes don't have a disp_map parameter, so that's why this doesn't work. You need to select the polymesh nodes that are created when that alembic node is expanded during the render.
For example: /obj/RND_torus_proc/*
ass-instance-procedural-parameters-fixed.tar.gzHi @Stephen Blair,
Is there a way to select the polymesh nodes of instanced procedurals to apply displacement to them? In the attached scene file I've tried selecting by /obj/RND_rock/* (and *.(@node == 'ginstance')) which doesn't work at all) but only the new shader assignments come through, no displacement.
ass-instance-procedural-parameters.tar.gz
EDIT:
I guess I can sort of get it with exclusion. Naming my instances something like INST_whatever and other objects like RND_items and selecting all the polymeshes that aren't INST_* like (*.(@node=='polymesh') and not *RND*) but I can't imagine this is the best way.
EDIT 2:
Ok I've got it now. It's easiest to just put a new attribute on the points themselves, call it something like s@asset = "rocks" then using the parameter selection expression *.(asset == 'rocks') to do the selection. Unless you guys think there's a better way, I'll go with that.
*.(asset == 'rocks')
looks good to me. Self documenting too
displacement wouldn't come through for instances because the *ginstance* node doesn't have *disp_map* parameter
Oh duh I guess I could've seen that myself w/ kick -info ginstance
Thanks again!