DirectX 11 – Tessellation

Tessellation implemented in DirectX 11.

This is the same terrain from Terrain post. Colors of the terrain’s surface are now assigned at pixel level instead of using interpolated vertex color.

Tessellation is implemented.
Tessellation level is varied according to the distance of terrain from the camera. The closer the terrain gets to the camera, the more details the terrain becomes.
As shown in the video, the closer the terrain gets to the camera, the more subdivided and more polygons the terrain becomes.

This technique can be used instead of normal distance modeling(Level Of Detail; LOD) technique where low-detail model is used when an object is far from the camera to help improve performance, in a trade-off for the amount of memory required to store different versions of an object model and memory bandwidth needed to load a different model at a different level of detail.

Using Tessellation, the more model gets closer to the camera, the more it gets subdivided to have more polygons, thus increasing the detail of the model. This saves the need of having to keep multiple models with different levels of detail for the same object, saving the amount of memory the system requires and the amount of memory bandwidth required to load a different model at a different level of detail.

The terrain is originally drawn as 4 control points then gets subdivided and new vertices are generated.

Camera can be moved around in the scene.
Back-face culling is disabled.
Uses fixed-axis rotation.

Program file can be downloaded here.

Requirements: DirectX 11 supported graphics card, Windows 7/8/8.1/10/11, Visual C++ Redistributable Packages for Visual Studio 2013(x86).

Control:
Left-click anywhere in the scene then hold left-click and drag the mouse to move the camera around in the scene.
Double-click to toggle between solid and wireframe mode.
Scroll up and down to zoom in and zoom out.

Platform: Windows
Programming Language: C/C++, HLSL