Geek Culture
Published in

Geek Culture

Tessellation In Unity HDRP

Tessellation is a great feature of Unity HDRP which allows the vertices of flat surfaces to be adjusted to fit the material texture applied to them.

Today’s Objective: Explore Tessellation in Unity HDRP, to make 2D objects and materials look/be 3D.

Tessellation in Unity:

Tessellation is another one of the great material options available on certain materials/shaders in Unity (using one of the Tessellation shaders).

By using a Height Map along with the other textures assigned to a material (Albedo, Normal, Mask, etc), we can turn a flat texture into a full 3D object.

Creating a Tessellated Surface:

First I create a new default Plane GameObject and a new Material asset.

I already have a few textures for a cobblestone path, which include the Albedo, Normal, and Height/Displacement maps.

Now on the material, I set it to be a Tessellation-compatible shader:

The material will now show options for setting the Tessellation properties and Height Map:

After setting the materials textures, and adjusting the metallic and smoothness a bit, we can move onto the Tessellation.

The Min and Max Heightmap values control the distance between the lowest and highest points in the mesh displacement:

Using Amplitude instead is also an option:

The Tessellation Factor value controls the subdivision used on the mesh, which basically equates to the level of detail accuracy in the tessellation.

NOTE: Higher values mean more vertices, which leads to more work for the renderer, possibly leading to performance issues. Use Tessellation on an “as-needed” basis, not in every case.

The variables under Tessellation Factor control how the tessellation fades away, when the camera is a certain distance from the object.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Vincent Taylor

Vincent Taylor

Unity game developer / C# Programmer / Gamer. Australian (Tasmanian) indie games developer for 10+ years. Currently looking for games industry employment.