I am trying to render a subdivision surface that is displaced with a displacement map. I had no problem with this using Pixie 2.0.2. I have noticed that with the latest versions of Pixie, Pixie will freeze when rendering the geometry. Only when the object is far away from the camera will it render without freezing. I have also noticed that some areas have weird displaced columns that were not in the displacement map.
Files demonstrating the problem can be found here:
I am currently using liquidmaya and Pixie 2.11 (revision 820 from svn).
Hi Fro lee,
For a bit of background, in recent svn revisions, we made Pixie much more accurate when trying to displace a surface. Pixie will attempt to converge on a tesselation rate which accurately represents the surface.
In your case, you have a displacement map with seams. I think what's happening is that the texture lookups are fractionally falling off the side of the seams - this will happen due to numerical accuracy issues - and there is therefore a discontinuity. I believe that Pixie is trying to resolve this discontinuity which is resulting in very high tesselation rates near the uv seams.
This is probably worsened by the 1-pixel lookup trick. It might be worth trying a simple texture lookup and letting Pixie determine the correct filtering size.
It would definitely be worth trying to paint the uv seams with a stamp tool or something so that the displacement map slightly overlaps the uv border. Probably it's simpler to select the background, invert the selection and blur or something.
Finally, a slight blur on the lookup seems to help a lot (pass "blur", 0.001 or something to texture()).
I believe this is what is happening - I'll have a think about how we can be more robust to this - but I think Pixie is actually trying to faithfully represent a discontinuity which you almost certainly don't want anyway.
Let us know if that does / doesn't work or if it makes sense for you.
thank you for your help. It turns out that the 1-pixel lookup trick was what was causing Pixie to freeze on the displaced surface. I have taken the pixel lookup out of the shader and the normalmap capabilities that I was not using. I found that the slight blur made the surface look very block so I opted not to use it.
I am still noticing that some areas have weird displaced columns that were not in the displacement map. These columns look like fans and are appearing in curved areas such as the eye socket and top of the bridge of the nose. Pictures of this can be found here:
The adjusted shader can be found here:
Decreasing the shading rate does not solve the problem.