Occlusion culling and how to best prepare your 3D model
Table of Contents
What is occlusion culling and why is it needed?
Occlusion culling describes the process of removing 3D model geometry that is invisible to the viewer because it is occluded by other parts of the scene. There are ways to determine occlusion statically during pre-processing, and complimentary methods to additionally determine inter-object occlusion during runtime. This article explains both and shows you how you can get the best performance for your 3D models by removing invisible interior parts with RapidPipeline, automatically.
What variants and methods exist for occlusion culling?
There are two basic variants: occlusion culling as a data preparation step on a 3D model (removing parts that will never be visible in the application) and run-time occlusion culling during rendering.
Method / When is it done? | What is done? |
Removing hidden, invisible parts per object / During 3D data preparation and optimization | For each 3D object, any parts that are never visible from the outside get removed from the 3D model, making it more compact without affecting the 3D model’s default appearance / rendered images. |
Applying runtime occlusion culling algorithms / During rendering (e.g., when rendering a 3D game or interactive application using a 3D rendering engine) | The 3D rendering system continuously identifies, for each rendered frame, (typically large) occludes in the 3D scene and skips objects behind those during rendering. There are many algorithms for this, including point-based and cell-based visibility methods and algorithms operating in image space, object space or ray space. |
For a simple demonstration of runtime occlusion culling, check out this Web-based example by Tarek Sherif.
Useful definitions
- Culling: Originally referring to the purposeful separation of organisms (such as herd animals) from a group, this term has a specific meaning in 3D computer graphics, denoting the reduction of 3D data being rendered – typically without significantly affecting the look of final image. Examples include small feature culling, view frustum culling (rendering only objects that are currently in view), backface culling (ignoring polygon sides that aren’t camera-facing) and occlusion culling (ignoring parts that are occluded to the viewer by other parts of the 3D scene).
- Data preparation: Process of preparing 3D models for rendering. This typically includes the application of various 3D optimization techniques.
- Runtime: Often used as synonym for both the runtime environment and the time at which the application is run. Operations at runtime must often be highly optimized for fast execution, for example to guarantee a constant framerate of 60fps in real-time rendering.
Automatically cull occluded interior geometry with RapidPipeline
Luckily, it's not hard to remove invisible interior geometry through the occlusion culling feature of RapidPipeline, you can do it in three easy steps:
- Upload your 3D model which has invisible geometry you want to remove. Upload your 3D model at RapidPipeline. If you don’t have an account yet, sign up for free (no credit card required), to first see if you like the platform. Occlusion culling is available in all paid plans.
- Launch 3D optimization with invisible geometry removal enabled. Select the assets you want to get processed with occlusion culling, then select a preset that contains removal of invisible geometry. Finally, start the 3D processor.
- Download results. Download your resulting optimized files, such as glTF, OBJ, FBX or USD files, for use in your own application.
Meet the Author
Max
CEO & Co-Founder
Max is a Co-Founder and the CEO at DGG. Working with leading retailers, Max and his team are on a mission to automate 3D asset optimization workflows for real-time applications - for e-commerce, games and beyond. Max received his PhD of engineering with honors from TU Darmstadt, in the area of 3D data optimization. He has also helped to shape the glTF format at Khronos.