# Polygon Streaming Project Settings

***

{% hint style="warning" %}
Polygon Streaming project settings are only available when using the VIVERSE [extension](/playcanvas-toolkit/toolkit-setup.md) of the PlayCanvas editor.
{% endhint %}

### Stream Controller Component

The **Stream Controller** or **Polygon Streaming Settings** (VIVERSE SDK) manages the streaming of models and streaming parameters inside your project. It can be found under **Viverse Scene Settings.**

<figure><img src="/files/W2LJDjAeuCyon23TmVOS" alt=""><figcaption><p>Polygon Streaming Settings (VIVERSE SDK)</p></figcaption></figure>

When **Occlusion Culling** is enabled objects that are hidden by other objects will not be rendered. It depends on the model how much  occlusion culling will improve performance.

**Occlusion Geometry** allows you to specify what is used to check if a mesh is occluded. **Bounding Box** option is faster but less accurate while the **Mesh** option is slower but more accurate. Bounding Box should be sufficient in most cases.

**Occlusion Query Frequency** determines how many times a second meshes are checked if they are occluded. A lower value will increase performance but meshes will take longer to reappear.

The **Triangle Budget** is a limit on the amount of triangles that will be drawn per frame. Increasing this will lead to better visual quality, but of course also higher processing and memory utilization. It's recommended to keep Triangle Budget to at least 30% of the full amount of polygons that you are going to stream. For example, if you are going to stream a 3D model of 10 million polygons, it's recommended to use a Triangle Budget of at least 3 million.

The **Mobile Triangle Budget** is the same as Triangle Budget, however it will be applied in case the system identifies the user is visiting the experience via a mobile device.

With a **Distance Factor** above 1 nearby objects are given preference when allocating triangles. A value below 1 gives preference to further away objects and a value of 1 is neutral.

It will stop improving geometry when it reaches the **Maximum Quality.** This can be used to stop far away objects from showing more detail than is necessary. Setting a value of 0 means there is no limit on quality apart from the triangle budget.

Details of parameters are also set on the Supported Parameters section.

### Supported Parameters

<table data-full-width="true"><thead><tr><th>Name</th><th width="216.18182373046875">Description</th><th>Min Value</th><th width="126.8182373046875">Default Value</th><th>Max Value</th><th width="138.727294921875">Low-End PC (Mobile)</th><th>Mid Range PC</th><th>High-End PC</th></tr></thead><tbody><tr><td><strong>Occlusion Culling</strong></td><td>Enable Dynamic Occlusion Culling.</td><td>FALSE</td><td>FALSE</td><td>TRUE</td><td>FALSE</td><td>FALSE</td><td>FALSE</td></tr><tr><td><strong>Occlusion Geometry</strong></td><td>Mesh: Use the mesh to check if it's occluded<br><br>Bounding Box: Use the bounding box of the mesh to check if it's occluded.</td><td>Bounding Box</td><td>Bounding Box</td><td>Bounding Box</td><td>Bounding Box</td><td>Bounding Box</td><td>Bounding Box</td></tr><tr><td><strong>Occlusion Query Frequency</strong></td><td>Value is in times per second. A value of 0 means will it run on every frame.</td><td>0</td><td>8</td><td>60</td><td>5</td><td>8</td><td>12</td></tr><tr><td><strong>Triangle Budget</strong></td><td>The maximum amount of triangles that you want to be in the scene at any single point.</td><td>0</td><td>5000000</td><td>Depends on device</td><td>Mobile won't use this parameter</td><td>5000000</td><td>5000000</td></tr><tr><td><strong>Mobile Triangle Budget</strong></td><td>The triangle budget used on a mobile device. If it is set to 0 it will use the non-mobile triangle budget.</td><td>0</td><td>3000000</td><td>Depends on device</td><td>3000000</td><td>PC won't use this parameter</td><td>PC won't use this parameter</td></tr><tr><td><strong>Distance Factor</strong></td><td>Preference for nearby objects over objects further away. Values above one mean a preference for nearby objects. Values below one mean a preference for objects further away. One is neutral.</td><td>0</td><td>1.1</td><td>10</td><td>1.1</td><td>1.1</td><td>1.1</td></tr><tr><td><strong>Maximum Quality</strong></td><td>Stops improving geometry that exceeds the maximum quality. This can be used to stop far away objects from showing more detail which can be wasteful. Leaving this at 0 means there is no maximum quality.</td><td>0</td><td>15000</td><td>300000</td><td>15000</td><td>15000</td><td>0</td></tr></tbody></table>


---

# 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://docs.viverse.com/polygon-streaming/integrations-and-plugins/polygon-streaming-playcanvas-sdk/plugin-usage/option-1-browser-extension/polygon-streaming-project-settings.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.
