Tessellation Update

Trying to improve

I have realized I have performance issues while tessellation is on together with Anaglyph rendering(stereo) and shadows. Anaglyph obviously means I draw everything twice, so it is not a big surprise.

Even without Anaglyph on there were performance issues. It seem I was tessellating too much. I have updated the tessellation shader and in addition I have split the level into smaller pieces so I won’t draw the whole level.
This is possible because the character never sees the whole level at once.

Splitting the Level

For the splitting I used voxelization.
At first I have split the level into non intersecting pieces and then I have added the line of sight visible vertices.

I am not sure how much this has contributed to performance. It might not have made such a big difference compared to just drawing the whole level but its nice to have and might prove useful in the future.

Updating the Tessellation Shader

In my previous post I suggested to tessellate according to how noticeable the displacement would be. Surfaces which face the camera will have a less noticeable effect when displacing, or so I assumed.

This is partly correct. The contour is less visible, but there are other factors. For instance shadow maps will look flat if the rocky surface has a flat geometry.
There is also a big difference between a completely flat surface and a surface with geometry that comes out at you, even if the surface is facing you.

There is another issue with tessellating based on the normal of the surface. If you stand in an open field, the ground all around you will be perpendicular to the camera so the method will make all the ground have high tessellation.
This proved to be bad for performance.

What I have decided to do is to tone down tessellating with how much the surface is facing the camera and give a bigger weight to the distance from the view.

These two factors gave better results in both quality and performance.

Last Word

I am in need of playtesters. I actually have a few playtesters and I don’t need to play test that much, but with all the variety of machines, different time zones and different connections I find myself without any tester at times

(Hopefully these testers will turn into avid players when I released the first gamey version)

If you are interested, email me at “support pompipompi net”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s