Recommended Posts

I'm working on a planetary terrain rendering engine. I start with an icosahedron sectioned into 10 quads. When a quad takes up enough screen size, it is subdivided. there is a fractal function that adds terrain detail with each subdivision.
I'm working on the cracks between detail levels. I'm going to make the edge of a higher detail quad match the interpolated slope of a neighboring lower detail quad. It's my understanding that the t-junctions will still be visible.
I haven't really been happy with the complexity added by adding degenerate triangles or toying with the otherwise very regular meshes to eliminate the t-junctions.
A) Are these t-junctions really going to be a big deal?
B) If they are, doesn't that make the texturing situation weird, since both adjacent quads are already pused to the edge of their textures?
C) Couldn't I just make a slight adjustment to the vertexes to hide the t-junction?
Since the higher detail patches will always be closer to the camera than the lower detail patches, if I move the vertexes on the border between the detail levels slightly up, you'll never be able to see the cracks. Right?

Share this post

Link to post

Share on other sites

Original post by mg_mchenryA) Are these t-junctions really going to be a big deal?

Yes. There will be great, big, glaring gaps in your terrain if you don't somehow fix them.

Quote:

B) If they are, doesn't that make the texturing situation weird, since both adjacent quads are already pused to the edge of their textures?

This depends on how you fix the t-junctions. Though, even with skirts (which is probably the sloppiest fix and is likely most prone to texture streaching) I have a hard time seeing any streaching since the terrain will have moved to a higher detail before the camera gets close enough.

Quote:

C) Couldn't I just make a slight adjustment to the vertexes[sic] to hide the t-junction?

This is probably the cleanest way to fix this. Whenever you detect a higher detail quad next to a lower detail quad, adjust the vertices on the edge of the higher detail quad to match the edge of the lower one.

0

Share this post

Link to post

Share on other sites

Original post by mg_mchenryA) Are these t-junctions really going to be a big deal?B) If they are, doesn't that make the texturing situation weird, since both adjacent quads are already pused to the edge of their textures?C) Couldn't I just make a slight adjustment to the vertexes to hide the t-junction?

Since the higher detail patches will always be closer to the camera than the lower detail patches, if I move the vertexes on the border between the detail levels slightly up, you'll never be able to see the cracks. Right?

A) Possibly. It depends on how much you can tolerate. The sparkles and terrain popping in WOW are annoying to me but others don't even notice it. B) Even though the higher and lower resolution patches will match closely, inaccuracies during rasterization are likely to cause skipped pixels, and you might see artifacts at the edges ("sparkles"). T-junctions have other potential problems with textures and lighting.C) That solution seems complicated. How much do you adjust it? How do you prevent objects on terrain being covered by the raised terrain?

0

Share this post

Link to post

Share on other sites

I just wanted to add that from personal experience I can attest to the "sparkles" mg_mchenry mentioned, even if a T-junction is entirely coplanar. My problems occured on a normal terrain, so I could only imagine the rasterization inconsistencies would be worse on a planetary scale. I think it would pay off to adaptively match up the the vertices on the edge of your quads, even though it's a bit of a headache to do. If you just follow the basic geomipmapping algorithm, it includes that adaptive matching to avoid T-junctions.