Sub-Displacement coving

   7337   6   2
User Avatar
Member
436 posts
Joined: July 2005
Offline
I seem to be having coving issues with displacement shaders. Rendering with Mantra.
The docs state to try changing coving options to ALL PRIMITIVES.
Doesn't do the trick. I get serious holes and missing triangles in displaced geometry.
I went through all the coving options.
My Render options at Object is set to Polygons render as sub-division.

Attachments:
ApachePeak_disp.rat (3.4 MB)

User Avatar
Member
1390 posts
Joined: July 2005
Offline
DavidRindner
I seem to be having coving issues with displacement shaders. Rendering with Mantra.
The docs state to try changing coving options to ALL PRIMITIVES.
Doesn't do the trick. I get serious holes and missing triangles in displaced geometry.
I went through all the coving options.
My Render options at Object is set to Polygons render as sub-division.

Micro-polygon engines work little differently here. The main factor for displacement quality is dicing (various settings) and displacement bounds amount, which makes sure dicing is taking place “outside” current bucket (thus covering displaced surface).


See example scene. If you look into apache_peak material, there is a property node, which applies mantra properties to the object via shader. These properties (like disp. bounds or re-dice -> very handy with ray tracing), can exist also on object itself, but perhaps it's more convenient to stick them to materials.

hth.
skk.

Attachments:
displace_example.hip (332.2 KB)

User Avatar
Member
436 posts
Joined: July 2005
Offline
Thank you for the HIP example. Problem is that I don't understand what is happening there SHOP wise. There are dozens upon dozens of ab parameter nodes, that do what exactly? Nor do I see , what causes coving in my scene, nor how to fix it. The docs give incomplete info. They say to change coving options. That does not work.
Attached is a frame from my flood scene, the terrain pass. Its just normal polygonal geometry, all fused with clean UV's. Yet it renders with severe coving problems, which change from frame to frame.
Its isn't bounding volume issue, as it would be with a flat surface. Apache_Peak was a simple displacement test on a flat poly grid. Yet even with this case I get coving.

Attachments:
terrain.0024.jpg (173.5 KB)

User Avatar
Member
1529 posts
Joined: July 2005
Offline
what you are getting is in all likelihood related to “displace bounds” as Symek pointed out. Not sure why you decided that your issue stems from coving (which, to be honest with you, in 10+ years of working in houdini, I've never had to adjust, once…)

Add a displace bounds ‘render parameter’ to your terrain object. At the obj level. Slowly nudge it up until your tears dissappear. Little gear icon, top right of the parameters pane.

Try searching the docs for “displace bound” for more info.

G
User Avatar
Member
12476 posts
Joined: July 2005
Offline
Also, if you set Mantra to more verbose mode, it'll actually print in the console what value it has discovered that you'll need to set your Displace Bounds to in order to solve the maximum displacement.
Jason Iversen, Technology Supervisor & FX Pipeline/R+D Lead @ Weta FX
also, http://www.odforce.net [www.odforce.net]
User Avatar
Member
436 posts
Joined: July 2005
Offline
OK thank you all. I think I have it got hadled. But I still do not understand some basic issues. In the docs, the holes in sub-d displaced geometry are described as coving. But thats not what I was experiencing, it was displacement bounds. So here is what I don't get. The surface is set to render as sub-d, with render engine set to PBR. I assume that PBR icludes Micro-Poly as its diving engine. So , as I understand it, micropoly dices sub-d geometry into pixel size triangles. Is this correct? But I am seeing clear missing triangles, that are a lot larger then single pixel.
This is where I am somewhat confused, as to what is exactly is coving? What exactly is displacement bounds? How are two related?

DR
User Avatar
Member
1390 posts
Joined: July 2005
Offline
DavidRindner
So , as I understand it, micropoly dices sub-d geometry into pixel size triangles. Is this correct?
You have a strong feelings for ray tracers, don't you ? Micro-polygons are four-corner polygon-like entities, not triangles.

But I am seeing clear missing triangles, that are a lot larger then single pixel.
This is where I am somewhat confused, as to what is exactly is coving? What exactly is displacement bounds? How are two related?
DR

Coving, as described in Help, is a process of fixing holes between polygons when its topology makes difficult to dice them correctly (mentioned in Help T-junctions). As Keyframe, I've never touched this setting once. Mantra does here, what is expected. Displace bounds is another topic.

Mantra cares about only those micro-polygons that exist in one bucket (simplifying slightly). Thus if displacement shader pushes micro-polygon outside the bucket, Mantra won't shade it. That's is why you see holes. They are exactly places where micro-polygons were pushed outside its buckets. Displace bounds informs Mantra to take those micro-polygons into account while shading.

All you need to remember at start is that displace bounds must reflect displace amount of your shader.
  • Quick Links