GPU-accelerated triangle-triangle intersection tester algorithm

Romain Maffina
Pixelux Entertainement
HEIG-VD, Haute Ecole d’Ingenierie et de Gestion, de Canton de Vaud, 2012

   title={GPU-accelerated triangle-triangle intersection tester algorithm},

   author={Maffina, Romain},



Download Download (PDF)   View View   Source Source   



The goal of the project is to develop a triangle-triangle collision algorithm. A reference triangle is given as well as a variably-sized array of many other triangles. The algorithm must check if one triangle intersects with the reference triangle. That operation has to be led for each "non-reference" triangle with the reference triangle. If one triangle intersects with the reference triangle the algorithm must return a true value, otherwise (if none of the triangles in the array intersects with the reference triangle) it must return a false value. The algorithm has to be as fast as possible. Therefore we are trying to use the capabilities of massively parallel computations with GPUs (Graphics Processing Units). In particular the NVIDIA technology was chosen. Therefore the implementation of the algorithm is done in CUDA C. Here is the specifications given by Pixelux Entertainement on March 1st, 2012: The project is to build a CUDA-accelerated triangle-triangle intersection test. This could benefit our auto-cage tool that constructs watertight "cages" used for tessellation around geometry objects. The project is defined as such: 1. Assume you have a triangle. A triangle is represented as a 2D object but it is represented in 3D coordinates. So very simply defined as a set of 3 3D coordinates. 2. Assume you have a list of triangles that you will be comparing a single triangle to. I would imagine that in CUDA, this would ideally be represented as some sort of array. 3. Write a CUDA function that compares a single triangle to the list of triangles and returns True or False. True if the triangle intersects any of the triangles in the list, and False if it does not. We prefer the code be written in "C" and, of course, CUDA.
VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

* * *

* * *

Follow us on Twitter

HGPU group

1662 peoples are following HGPU @twitter

Like us on Facebook

HGPU group

337 people like HGPU on Facebook

* * *

Free GPU computing nodes at hgpu.org

Registered users can now run their OpenCL application at hgpu.org. We provide 1 minute of computer time per each run on two nodes with two AMD and one nVidia graphics processing units, correspondingly. There are no restrictions on the number of starts.

The platforms are

Node 1
  • GPU device 0: nVidia GeForce GTX 560 Ti 2GB, 822MHz
  • GPU device 1: AMD/ATI Radeon HD 6970 2GB, 880MHz
  • CPU: AMD Phenom II X6 @ 2.8GHz 1055T
  • RAM: 12GB
  • OS: OpenSUSE 13.1
  • SDK: nVidia CUDA Toolkit 6.5.14, AMD APP SDK 3.0
Node 2
  • GPU device 0: AMD/ATI Radeon HD 7970 3GB, 1000MHz
  • GPU device 1: AMD/ATI Radeon HD 5870 2GB, 850MHz
  • CPU: Intel Core i7-2600 @ 3.4GHz
  • RAM: 16GB
  • OS: OpenSUSE 12.3
  • SDK: AMD APP SDK 3.0

Completed OpenCL project should be uploaded via User dashboard (see instructions and example there), compilation and execution terminal output logs will be provided to the user.

The information send to hgpu.org will be treated according to our Privacy Policy

HGPU group © 2010-2015 hgpu.org

All rights belong to the respective authors

Contact us: