• Advertisement
Sign in to follow this  

Displacement Mapping Tessellation

This topic is 2205 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I am using d3d11 tessellation. I have a tileable texture brick texture with normal and height map. If I map this texture onto each face of a cube and do displacement mapping tessellating, the displaced vertices do not meet on the edges of the cube. What is this problem called and how do you fix it?

Share this post


Link to post
Share on other sites
Advertisement
This is usually called "Crack". You must have the same tessellation factor ( set it on the Hull Shader ) for each edge of a triangle that shares a cube edge, and also the displacement amount on the edges must match.

Share this post


Link to post
Share on other sites
It's usually referred to as "cracks", and it's very common and difficult-to-solve problem. You can read this presentation for some more info, and potential solutions.

Share this post


Link to post
Share on other sites

You must have the same tessellation factor ( set it on the Hull Shader ) for each edge of a triangle that shares a cube edge, and also the displacement amount on the edges must match.
[/quote]

The tessellation factors are the same. The problem is that each cube face has a different tangent space, so the vertices on an edge get displaced in different direction.

I can't really think of a way to solve this unless I make my cube have rounded corners such that there will not by any vertices with duplicated positions but different normals.

Share this post


Link to post
Share on other sites
The tessellation factors are the same. The problem is that each cube face has a different tangent space, so the vertices on an edge get displaced in different direction.

I can't really think of a way to solve this unless I make my cube have rounded corners such that there will not by any vertices with duplicated positions but different normals.[/quote]
DId you try averaging the tangent space for the cube corners (so instead of facing directly up or directly left for instance, the edge ones will face 45 degrees up and 45 degrees left)? It should work then.

Share this post


Link to post
Share on other sites

The tessellation factors are the same. The problem is that each cube face has a different tangent space, so the vertices on an edge get displaced in different direction.

I can't really think of a way to solve this unless I make my cube have rounded corners such that there will not by any vertices with duplicated positions but different normals.

DId you try averaging the tangent space for the cube corners (so instead of facing directly up or directly left for instance, the edge ones will face 45 degrees up and 45 degrees left)? It should work then.
[/quote]

Yeah, that's basically what I meant when I said "make my cube have rounded corners." I don't have to round the geometry, but if I average the tangent space, it will give a rounded look with the lighting.

Share this post


Link to post
Share on other sites
Averaging is a solution, but instead of doing that, there is a potential solution in MJP link's. And also a easier one on this http://www.google.com/url?sa=t&rct=j&q=tessellation%20displacement%20mapping%20cracks&source=web&cd=1&ved=0CB8QFjAA&url=http%3A%2F%2Fdeveloper.amd.com%2Fgpu_assets%2FWileyAuthoringforTessellation.pdf&ei=ssSFT8PcNaiyiQKWv9j1BA&usg=AFQjCNGFsjyLTbkH11jBHvTgTmLuYJgRtQ&cad=rja

At page 45, they propose a filter at UV borders.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement