> For the complete documentation index, see [llms.txt](https://amazing-assets.gitbook.io/beast-advanced-tessellation-shader/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://amazing-assets.gitbook.io/beast-advanced-tessellation-shader/readme.md).

# Beast - Advanced Tessellation Shader

[**Beast**](https://assetstore.unity.com/packages/vfx/shaders/beast-advanced-tessellation-shader-82066?aid=1011lvgVb) tessellation shader is integrated into Unity's default **Standard** (for Built-in RP) and **Lit** (for Universal RP) shaders and extends them with tessellation and displacement features:

<div align="left"><figure><img src="/files/OZjmgWsg9WaAN5Ye8gde" alt=""><figcaption></figcaption></figure></div>

<div align="left"><figure><img src="/files/b32uq26mftoZCD8GMLa7" alt=""><figcaption></figcaption></figure></div>

<div align="left"><figure><img src="/files/aENgDe0lYvuzedLOVx4c" alt=""><figcaption></figcaption></figure></div>

## Tessellation Types

**Beast** shaders offers four types of tessellation:

{% tabs %}
{% tab title="Fixed" %}
Adds fixed amount of tessellation to the whole mesh. This type of tessellation is useful for meshes with roughly the same size of faces on screen.

<div align="left"><figure><img src="/files/2u0b8fauEt4LP2uaV6p4" alt=""><figcaption></figcaption></figure></div>
{% endtab %}

{% tab title="Distance Based" %}
Models faces tessellation level is calculated based on their distance from the camera.

<div align="left"><figure><img src="/files/iBPpDwGawSGr3HszaytQ" alt=""><figcaption></figcaption></figure></div>
{% endtab %}

{% tab title="Edge Length" %}
If mesh faces are not roughly the same sizes, then **Fixed** and **Distance Based** tessellation methods create effect when small faces are tessellated too much, while large triangles aren’t tessellated enough. One way to improve this is to compute tessellation levels based on triangle **Edge Length** on the screen.

This makes the shader a bit more expensive, but saves a lot of GPU work for parts of meshes that are outside of the Camera’s view.

<div align="left"><figure><img src="/files/nG5jTHFClL1zDcofqZh6" alt=""><figcaption></figcaption></figure></div>
{% endtab %}

{% tab title="Phong" %}
[Phong Tessellation](https://www.google.lt/search?q=phong+tessellation) modifies positions of the subdivided faces so that the resulting surface follows the mesh ***normals*** a bit. It’s quite an effective way of making low-poly meshes become more smooth.

<div align="left"><figure><img src="/files/t5L5BfkqQUlz0MTgBi3a" alt=""><figcaption></figcaption></figure></div>
{% endtab %}
{% endtabs %}
