CircleCollision
CircleCollision copied to clipboard
Implementing Different Methods of Circle to Circle Collision Detection using variety of new Technologies: Vulkan Graphics/Compute API, AVX2/AVX-512
Circle Collision
Implementing Different Methods of Circle to Circle Collision Detection using Vulkan Graphics and Compute API
Circles were chosen to focus more on Broad-Phase algorithms of the Collision Detection Pipeline.
Images and Preview
Charts and Plots
Motivation
This Project Is For Learning Purposes of Following Topics
- SIMD/Vectorization using AVX/AVX2
- Vulkan Compute Shaders and GPGPU Programming
- Data Oriented Programming
Features
-
Broad-Phase
- Brute Force ( O(n^2) )
- Spatial Partitioning
- Grid
- K-D Tree
- Quadtrees
- BSP
- Sort and sweep
- Simplex-Based : GJK
-
Narrow-Phase
- We Have Circles Here and Math/Physics Calculations are easy.
-
Technologies/API's
-
CPU
- Simple Sequential
- Multi-Threaded
- SIMD
- AVX2
- AVX-512
-
GPU
- Vulkan Compute Shaders
- OpenCL
-
CPU
Implemented
- Brute Force
- [x] CPU
- [x] Compute Shader
- [x] SIMD: AVX2
- [x] Multi-Threaded
- [x] Multi-Threaded + SIMD
- Spatial Partitioning
- Grid
- [x] CPU
- [x] Multi-Threaded
- Grid
Build
- Visual Studio 2019
- :soon: Linux Builds Will be Added Soon
Blog
You can here about implementation details soon in my blog, GraphicsCoder
Slides
Resources
- SIMD
- Spatial Partitioning
- Vulkan and GPU Programming
- Circle Collision Handling
:heavy_exclamation_mark: This project is not for benchmarking purposes!, Although It would give me some ideas to be suspicious about.
:heart_decoration: I would appreciate optimization ideas and results on your system on issues.