Skip to content

Public repository for Precomputed Culling. Contains documentation and Source of the API webpage. All Issues about Precomputed Culling should be reported in this repository

License

Notifications You must be signed in to change notification settings

Prographers/Precomputed-Culling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Precomputed Culling

Precomputed_Culling_Logo Pixel perfect occlusion system that will significantly improve the performance of your scenes, without almost any overhead.

Using time on your computer, precompute/bake your scenes to gain a significant performance boost. The occlusion culling algorithm will find all visible meshes from each point on your scene, using the color-coding algorithm. Then it will save them efficiently and load only when needed.

Heavily occluded scenes like a two-story house with the interior on all floors gained us up to 240% in frame rate!. From 30fps to 72fps on Quest 2. Open world scenes with flat chunked terrain, gained us 10-25%. From 47fps to 60fps on low-end mobile.

Links:

Name Link
Documentation and API reference https://prographers.github.io/Precomputed-Culling
Project page https://prographers.com/precomputed-culling/
Documentation repository https://github.com/Prographers/Precomputed-Culling/
Discord https://discord.gg/55gM3s3pdR
Asset Store https://assetstore.unity.com/packages/slug/221372

Features:

  • Support for URP and HDRP
  • Support for multiple cameras
  • Support for multiple scenes with multiple variants and dynamic loading and unloading
  • Lightweight with an option for additional compression
  • Supports transparency
  • Supports LODs
  • Supports Unity Terrain
  • Supports 2D Sprites*
  • Runtime precision control between quality and performance
  • Support for all platforms including mobile, VR, AR, and WebGL
  • API for custom building pipelines
  • Everything is written in C#, full source code included
  • Code documentation + external documentation with tutorials
  • Easy to setup
  • Examples and Demos
  • Moving Occlusion Area with objects
  • Support via email or discord
  • Superior performance
  • Bake in runtime or before build

*Not recommended to use in 2D games, intended use is for example leaves on the 3D trees or far away rocks.

Roadmap:

  • Port to other game engines

Installation:

  1. In Unity Editor, the Open Package manager
  2. In "My assets" select Precomputed Culling and press "Install"
  3. Done!

Basic Usage:

For more advanced usages visit https://prographers.com/precomputed-culling/ or the related section in the repository https://github.com/Prographers/Precomputed-Culling/

  1. Open the main scene where you want to initialize your setup
  2. In the top menu, press Tools->Precomputed Culling->Setup
  3. Adjust Precomputed Volume/Area to match the play area of your player (note you can have multiple areas)
  4. Adjust cell density and camera control (Find the best setting between bake Quality and Bake time and performance).
  5. Start baking either in Tools->Precomputed Culling->Bake or in Area
  6. Wait for bake to finish
  7. Enjoy an increase in performance

Recommendation:

Open world areas:

  • Chunk size should be around 5 meters in width by 5 meters height by top jump height.
  • At least 3 cameras in the middle. At top of jump height; At eye level; At Crouch eye level (add the fourth one if the prone position is allowed)
  • Allow for taking data from neighboring cells at distance of 1 reduce aggressiveness of the algorithm
  • Set runtime pixel requirement to 50-100 pixels
  • Allow for baking terrain
  • Allow for sprites baking (If the environment is not a pure 3D model)

Small Areas (building):

  • Chunk size should be around 1 meter by 1 meter by the height of the building
  • At least 18 cameras. All spread out within the cell. At top of jump height; At eye level; At Crouch eye level.
  • (Optional if experiencing artifacts) Allow for taking data from neighboring cells in distance of 1 reduce aggressiveness of the algorithm
  • Set runtime pixel requirement to 0 - 25 pixels
  • Allow for baking transparent between 1 or 2 layers

More dense areas should have a bigger priority than less dense areas.

Please rate us at Asset Store 5 stars if you find this plugin useful!

About

Public repository for Precomputed Culling. Contains documentation and Source of the API webpage. All Issues about Precomputed Culling should be reported in this repository

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages