top of page
test_cap_back.PNG
Parallel Lines
Montaña
Elegante fondo abstracto

SPACE PARTITIONING

Class
CS350

 

Instructor
Eder Beldad 

 

Languages
C++ and OpenGL

 

About
In this class, we learned how acceleration structures and optimizations for graphics work, so we created a framework to implement these structures and to implement the collision detection algorithm GJK. The implemented structures were Bounding Volume Hierarchy, Octrees, and KD Trees.

 

Bounding Volume Hierarchy
For this structure, we developed three approaches that vary according to how the bounding volumes of the objects of the scenes are analyzed, the approaches are top-down, bottom-up and insertion.

BVH.gif

Octrees
For making the Octrees implementation as fast as possible, we used bitfields to analyze which were the children of each node that were activated. Also, we combined the Octree with the usage of frustum culling to make it even faster.
 

KD Trees
Being KD Trees one of the most used structures for Raytracing, we had to implement one to be able to perform ray-casting against the triangles of the objects in a scene in a very fast way.
 

Kdtree.PNG

GJK
In physics simulation, one of the hardest challenges is to be able to compute complex polygons collisions cheaply. Gilbert-Johnson-Kerti collision detection algorithm takes advantage of the Voronoi Region to compute them without expensive computational cost.
 

GJK.gif
bottom of page