Why I Ended Up Building a Mesh Terrain Instead of Using Unity Terrain
- Tâm Trần Ngọc
- 6 hours ago
- 2 min read
I was working on a low-poly style project in Unity and needed a terrain solution that could produce explicitly faceted geometry. Like most Unity developers, I started with Unity’s built-in Terrain system, since it is the default choice and comes with mature tooling.
The problem was the look. I wanted a faceted low poly surface where triangles and hard edges are part of the style, not something to hide.
Unity Terrain is built around smooth shading. You can fake the flat look in a DX11 geometry shader; on desktop that can be fine, but on mobile it does not translate well, since geometry shaders are not supported on most mobile platforms.
At that point it became clear that a mesh-based terrain approach would offer more control: generate a mesh from the height data, duplicate vertices per triangle so normals are not shared, and render it with a normal lit shader. No special shading path, no platform specific features. It looked right immediately and it worked everywhere I cared about.
That experiment is what slowly turned into a small internal toolset I ended up naming Polaris.

What I needed that Unity Terrain was not giving me
The key difference is control over topology. Unity Terrain ties vertex density tightly to the heightmap grid. If you want more detail, you increase terrain resolution and pay for it everywhere, even in areas that are basically flat.
Low poly mesh based terrain created with Polaris also starts from height data, but it generates regular meshes without being locked to one vertex per heightmap pixel. The mesh can use dynamic polygon density: keep large flat regions cheap, add triangles where silhouette or gameplay needs it, and avoid blowing up the entire terrain just to fix one ridge.

Trade offs I accepted
This is not a universal upgrade. Unity Terrain comes with years of tooling: sculpting, painting, vegetation, and a lot of battle tested behavior. Moving away from it means you either rebuild parts of that workflow or you limit scope.
In my case, the mobile constraint plus the need for real faceting and dynamic polygon control made the mesh approach the better fit.
Where it ended up
This internal experiment eventually became Polaris — a mesh-based terrain tool for Unity designed specifically for low-poly and faceted terrain. It exists to avoid the limitations of Unity Terrain’s for low poly faceted visual while remaining compatible with both desktop and mobile platforms.
Polaris began as a project-specific tool and grew gradually as similar problems kept coming up during development. Over time, it reached a point where it was stable enough to reuse and document properly. Putting it on the Unity Asset Store was mainly a practical choice. It gave the tool a stable distribution path, a clear version history, and a place where updates and fixes could be managed without keeping it as a private, loosely maintained project.
For projects that only target desktop, Unity Terrain combined with shader-based flat shading can still be sufficient. When mobile support and explicit low poly faceted geometry are required, a mesh-based terrain like Polaris simply fits the problem better.