Operations on the scene
We now have a Scene
object that keeps track of models for us. This means we no longer have to perform operations such as raycasts on individual models. Rather, we can perform a raycast against the entire scene. There are two operations that we can perform on a scene to speed up collision testing. They are raycasting and querying the scene. We covered ray casting in Chapter 10, 3D Line Intersections.
When we query the scene we ask for a small subset of objects that potentially occupy the provided space. This is called broad-phase collision. For example, to check for collision against a player we don't have to compare the player to all objects in the world. We only have to compare the player against a small subset of objects near the player. The Query
function takes a space and returns all objects that intersect the space.
Getting ready
In this section, we will implement three functions. First, the Raycast
function will cast a ray into the scene and return the closest...