View on Asset Store (opens in new tab)
Package details
- Latest version
- 1.0.0
- Last updated
- First released
- Unity version
- 6000.2.9 or later
- Package size
- 258 KB
- Files
- 48
- Favorites
- 1
- Views in the past week
- 6
Price tracking
- Last checked
- Tracked since
- Lowest recorded
- $24.99 on
Keywords
HDG Potential Visible Set World Streaming System
Potential Visible Set System for large streaming worlds. A PVS System improves performance in large worlds by dynamically loading only the parts of the world the player can currently see.
Affiliate link · Purchases support this site
Price history
Last 6 months
USDAsset preview
1 / 4
HDG Potential Visible Set World Streaming System screenshot 1
About this asset
A PVS (Potentially Visible Set) System improves performance in large worlds by dynamically loading only the parts of the world the player can currently see.
Instead of keeping an entire world loaded at all times, the world is subdivided into sectors.
At runtime, the system determines which sectors are potentially visible from the player’s current location and loads only those sectors into memory.
Sectors that are not visible are unloaded automatically.
This allows games to support:
* Larger environments
* Lower memory usage
* Reduced rendering cost
* Faster scene traversal
* Better CPU performance
* More scalable world design
The system supports:
* Building a large seamless world as multiple scenes.
* Runtime sector streaming
* Portal-based visibility
* Always-loaded important objects
* Door-controlled portals
From the publisher's Asset Store listing.
Technical details
How It Works
The world is divided into overlapping visibility regions called Sectors.
Each sector contains all of the game objects which overlap that Sector. Objects can be contained in multiple sectors, but the engine keeps track and will only load them once.
During the build process, the tool creates a scene for each Sector. These scenes are loaded additively at runtime.
Build process:
1. You supply a list of scenes to load and process.
2. Each scene is opened and its contents moved into a pool of all objects.
3. Each object is broken down into multiple objects following simple rules:
a. If the object is not marked static, store it as a whole object.
b. If the object is static, break its children down into separate objects.
c. If the object has certain specific components, like a LODGroup, do not break it down - doing so would break the special component.
This is applied recursively to 'flatten' the hierarchy.
4. Each object is assigned an ID.
5. Each object is assigned to one or more sectors.
6. A scene is created for each sector.
7. These scenes are added to your scene list in player settings.
At runtime:
1. Starting from the camera's current position, determine which sectors are visible.
2. Load those sectors.
3. Unload anything that's no longer visible.
Workflow
Step 1 — Build Your World
Create your world normally using scenes, prefabs, terrain, and gameplay objects.
The system works with:
* Single scenes
* Multi-scene setups
* Additive scene loading workflows
Step 2 — Place Sectors
Add Sector volumes throughout the world.
Sectors should:
* Cover all traversable areas
* Contain (or at least overlap) every object that should ever be loaded at runtime.
* Objects that are not in any sector will be placed in a scene labelled -1 so that you can identify them and fix it.
* Slightly overlap neighboring sectors
* Match logical spaces where possible
Proper overlap is important so the system can determine transitions correctly.
Portals are automatically placed wherever sectors overlap during the build process.
Optional door components can dynamically enable or disable portals at runtime.
Step 3 — Mark Important Objects
Give important objects an ImportantObject component and set the partition they should be placed in.
These objects will be assigned to a special scene that is always loaded.
Step 4 — Build the PVS
Create a game object and give it a PVSEngine component.
Configure your list of scenes to be included by the PVS Engine.
Click full rebuild to generate the streaming scenes.
Compatibility
| Unity version | Built-in | URP | HDRP |
|---|---|---|---|
| 6000.2.9f1 | Compatible | Compatible | Compatible |
As listed on the Asset Store.