# 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="https://3010321965-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiakifRoeXoGI4Ot0Ia8G%2Fuploads%2FWwdOCDTVOYu2iET5z9cu%2FScreenshots_3.png?alt=media&#x26;token=8fa6dc1c-a010-4608-acda-800a308444b8" alt=""><figcaption></figcaption></figure></div>

<div align="left"><figure><img src="https://3010321965-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiakifRoeXoGI4Ot0Ia8G%2Fuploads%2FYXW5ZHSOCQVriclZG5v3%2FScreenshots_2%20copy.png?alt=media&#x26;token=26a5058d-fcbe-4c8b-b020-f8ebf0bb6770" alt=""><figcaption></figcaption></figure></div>

<div align="left"><figure><img src="https://3010321965-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiakifRoeXoGI4Ot0Ia8G%2Fuploads%2F3oNXAQVLKtfJvkOuAU4N%2FScreenshots_1.png?alt=media&#x26;token=c863d1a3-a9ea-4d40-b0d4-033f935b89f1" 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="https://3010321965-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiakifRoeXoGI4Ot0Ia8G%2Fuploads%2FFYxaDjltlHC17PuK29yi%2FSurfaceShaderTess2-fixed.jpg?alt=media&#x26;token=af46e6ae-d299-49ac-8677-ea525ed419a6" 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="https://3010321965-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiakifRoeXoGI4Ot0Ia8G%2Fuploads%2FC9A7YhK6V0opLIlY3KYJ%2FSurfaceShaderTess3-distance.jpg?alt=media&#x26;token=20947391-3a56-4d07-a856-3df6aa5fce55" 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="https://3010321965-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiakifRoeXoGI4Ot0Ia8G%2Fuploads%2FubYAvYLFxHZm8xGU8cpI%2FSurfaceShaderTess4-edgelength.jpg?alt=media&#x26;token=4a940676-e9fc-4cb2-ae33-1c530d76c015" 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="https://3010321965-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiakifRoeXoGI4Ot0Ia8G%2Fuploads%2FPZNjvxgDL4d9FUs6Ef9J%2FSurfaceShaderPhongTess.jpg?alt=media&#x26;token=9e30ddf2-1dd6-43db-9b4a-e79746a0905a" alt=""><figcaption></figcaption></figure></div>
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://amazing-assets.gitbook.io/beast-advanced-tessellation-shader/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
