Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Third Year Project - Terrain Tessellation

This is my third-year project on Terrain Tessellation using DirectX 11. I have created an environment capable of reading and generating terrain from Perlin noise bitmap height maps. The maps themselves were created using a randomiser, and I had to adjust the sharpness of the creation tool to make the terrain more visible. 


The picture above showcases one of the options I provided in the project to visualize the polygons and the intensity of tessellation between the connections. At the time, I used a TessFactor 3 type because I had trouble figuring out TessFactor 4. For some reason, TessFactor 4 produced different connection points compared to TessFactor 3, so I eventually abandoned the idea of using a quad patch, which TessFactor 4 would have enabled.

Part of my project was also to create directional lighting that could be stopped and moved at the press of a button. I modeled the directional lighting after how sunlight illuminates the Earth, incorporating rotational movement. I had to calculate the normals for each face that a vertex in the grid was part of, then average each vertex with its surrounding vertices. This helped create smoother transitions in light direction, giving the illusion of a more continuous surface.

Additionally, I implemented a skybox using a massive sphere that encompassed the entire terrain. The sphere featured a gradient blending two colors from top to bottom.

A couple of improvements I would add in the future include implementing real-time ImGui controls, allowing users to adjust values dynamically while the terrain updates in real time. This would provide a better showcase of how the terrain reacts to different inputs.

Piotr Lagwa

Support this post

Did you like this post? Tell us