Playing with DX11 distance based tessellation for environment objects

Avatar

Hi guys

I’ve been looking at how to make realistic looking environment materials and it seems that tessellation is a very powerful way of representing detail in geometry. Especially when you factor in the stereo effect of the Oculus Rift which makes the effect really realistic. So to figure out how to do this I focused on one of my wall materials as a test. I found 3 of very useful tutorials online, that when combined gave me the results I wanted. The first tutorial I found was by a guy called RealDaveTheFreak. you can find his Youtube channel here and its worth checking as he has some great tutorials.

He has 2 tutorials on tessellation. One for basic tessellation and one for distance based tessellation. However his solution for distance based tessellation while great for small static meshes doesn’t work quit as well for larger objects. his tutorial uses the distance from the object with the material on it, to the camera. As I said this works fine for smaller static meshes but not for larger meshes as it will tessellate the entire mesh when it may not be necessary as parts of the object could be far away.

The second tutorial is by Epic’s Alan Wilard (Hope I spelt that right) and is about location based opacity. You can find it here and the second part is here. This uses a cool feature called a sphere mask to make parts of meshes transparent.

The third tutorial is on vertex painting and it by MetalGameStudios. You can find some great tutorials by them in their Youtube channel here.

So using the Sphere mask with a center based on the camera location and using a falloff and radius to adjust I got the following effect.

The frame rate is quite low on the video capture but in editor and in game it runs silky smooth. If anyone knows how to capture better video please let me know. I’m currently using Microsoft Expression screen capture.

I have tessellation on the ceiling, floor and walls.

A problem I encountered was separation in some of the meshes in certain places where the floor meets the walls.

Capture1

So using the info I got from the vertex painting tutorial I used vertex colors to mask out the height map for the problem areas.

Capture2

here is the tessellation part of the material for you guys to try out.

Capture

The texture sample is the height map.

 

Hope this helps anyone and thanks to the guys who made the tutorials that got me this far.

 

btn_donateCC_LG

2 comments

  1. hi I am using getnamo hydra in udk 4.9 I need some help attaching to my skeletial so when I move the hydra the arms hands will move

Leave a comment