Introduction
What is a game engine
- Software that is extensible and can be used as the foundation for many different games without major modification.
Some Basic Concepts
-
A view frustum is a pyramid-shaped volume representing the camera’s visible space, used to determine whether objects should be rendered based on whether they lie inside or outside this space.
-
Frustum Culling is a fundamental visibility optimization that skips rendering objects completely outside the camera’s view frustum, reducing draw calls and CPU/GPU workload at minimal cost.
-
Occlusion Culling is a visibility optimization technique that avoids rendering objects fully hidden behind other geometry, significantly reducing overdraw and GPU workload in complex scenes.
-
A bounding volume is a simple geometric shape used to roughly represent a complex object, enabling fast visibility and collision decisions in a game engine, while a Bounding Sphere is one specific type of bounding volume shaped as a sphere.
-
A Bounding Volume Hierarchy (BVH) is a tree structure of bounding volumes, allowing efficient visibility and collision tests by quickly excluding entire branches that are outside the camera view or occluded.
|
|
-
An Axis-Aligned Bounding Box (AABB) is a box-shaped bounding volume with edges aligned to the world axes, used for fast visibility and collision checks. When an object rotates, the AABB may need to enlarge to fully contain it, making the box appear “fatter.”
-
Hierarchical Z-Buffer (HZB) is a GPU optimization technique that builds a multi-resolution depth map to quickly determine if objects are occluded, reducing the need for per-pixel visibility tests.
-
An Oriented Bounding Box (OBB) is a box-shaped bounding volume that can rotate to align with an object, providing a tighter fit for precise collision detection.
Basic Workflow
|
|
Reference
- Gregory, J. (2018). Game Engine Architecture (3rd ed.). CRC Press.