Waves.
Waves are created by drawing 4 control points and subdivide them with tessellation, new vertices for waves plane are generated.
Displacement mapping is then applied to each generated vertex.
In applying displacement mapping, the height value for each vertex is derived from the height map textures(Height mapping). There are more than one height map textures being used for displacement mapping for the vertices of the waves.
Height values in height map textures can be generated using Wave equation.
Animating the waves is done with transform texture coordinate technique when applying displacement mapping to the vertices of the waves.
Tessellation is talked about in this post.
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
Resources: Height map textures are from companion DVD of the book 3D Game Programming with DirectX 11 by Frank D. Luna, Mercury Learning.
Texture loading is implemented using DirectX TK library.