Kelsier Posted June 2, 2018 Share Posted June 2, 2018 Hi guys, I am currently building a environment for which I want to instance a lot of mega scan rocks. I am using the instance object so that I can instance thousands of the rocks with a huge hit. The problem is now that I turn on the displacement on the rocks everything comes to a halt. It looks like mantra is placing all the objects and then dicing and displacing the geometry. Is there a way of dicing and displacing the geo first? Should I just bake the displacement into the geo? Quote Link to comment Share on other sites More sharing options...
davpe Posted June 2, 2018 Share Posted June 2, 2018 hi, i think sharing displacements between instances is what you want. copy/paste from docs: Share Displacements Between Instances Houdini render property vm_sharedisplace IFD property object:sharedisplace By default, when instancing is used with displacements, the displaced geometry will be created uniquely for each instance, since it’s possible that the displacements may differ based on the world-space position of each instance. This default behavior will guarantee correct results but it can be inefficient since mantra needs to keep a separate copy of the displaced geometry for each instance. When this setting is enabled, mantra will share a single copy of the displaced geometry between all instances, and assumes that the displacement shader only uses the object space position to determine the displaced position and normal. The dicing quality used when displacements are shared will be the dicing quality for the instance that is closest to the camera. Therefore, instances that are farther from the camera may incur a greater rendering cost when this setting is enabled, but overall memory use will usually be lower. When sharing displacements on packed primitives, there’s a very subtle issue which may cause issues with popping displacements. The vm_procuseroottransform toggle is on by default. This means the object space for the packed geometry will not include the transform on the packed primitive itself, only the transform on the object containing the packed primitives. This is important when doing geometry/volume lighting so that point clouds will all be in the space of the single object. However, when there are shared displacements, the displacement should be computed in the space of the unpacked geometry (i.e. including the transform on the packed primitive). If you want to use shared displacements on packed primitives, you should turn off the vm_procuseroottransform parameter. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.