I'd like to understand how dicing and displacement really work so I made a few tests.
For instance, starting from a simple grid I'd like to displace a square (displacement 1) using a simple square white texture on black bg, then apply a second displacement and extrude other cubes from the vertical sides of the cube (displacement 2).
1 - we have our initial grid (the grid is seen by side in this picture, and the blue dots are poly primitives).
Now, please correct me where I am wrong:
As far as I understood reading in the documentation, Mantra performs the following steps when dealing with a displacement shader:
2 - dicing
3 - displacement
At this point, if I apply a second ‘displace along normal’ vop in the shader , using another texture (say a bunch of white squares on a black bg), I should get a mess on the stretched micro-polygons generated by the extreme displacement in the step 3.
Reading in this forum I realized there is a beautiful property called “vm_redice” (re-dice displacements) which according to the documentation fixes precisely this issue:
“With extreme displacement, it’s possible to get micro-polygons which are stretched far out of shape. Turning re-dicing on will cause the geometry to be re-diced after the geometry has been displaced. This will result in micro-polygons which have a much more uniform size and will most likely provide higher quality images. This is more costly since the displacement shader may be run multiple times during the projection process.”
The problem is that the re-dicing is performed (as far as I understood) ‘after’ all the ‘displace along normals’ nodes. Not after each one of them.
Which means there is no way to have a step…
4 - re-dicing
…which should cause the creation of *new* micropolygons (and new interpolated normals, uvs etc…) and *then* apply the second displacement.
5 - displacement 2
My question is:
Is there a way to force a real re-dicing every time a ‘displace along normal’ is performed?
If not…is it possible maybe to put two displacement shaders in series, before the pixel is shaded ?
thank you all in advance for every possible clarification on this topic

p.s.
in the simple render example it's present only the displacement 1, and i used a voronoi noise to perform the displacement ( I love voronoi
)Alessandro

