CS350: Spatial Data Structures and Algorithms
Instructor: Jorge Usabiaga
Framework: C++ custom engine
The course covered the efficient representation and processing of complex 3D scenes in order to improve CPU &GPU throughput. Topics included spatial data structures (static: K-Dimensional (KD) Tree, Binary Space Partition-ing Tree, Dynamic: Hierarchical Bounding Volume (AABB) Tree), object-culling methods (occlusion and portal)and spatial intersection algorithms (Gilbert-Johnson-Keerthi (GJK) and Minkowski Portal Refinement (MPR)).
Compute the bounding volumes of moving, rotating and scaling objects.
Bounding Volumes Hierarchy:
Tree structure drawing the bounding volumes from the different depths.
Showing all the octree level, and testing collision against a dynamic object. I draw the nodes of the octree that are colliding with the dinamic objects, also the aabb of the objects if they are also colliding.
Showing all the depths subdivision.
Collision detection system with a broad, middle and narrow phase components. Being the narrow test the separation axis theorem.