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.
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”