- Dr. Adarsh Krishnamurthy @k-adarsh
- Onur R. Bingol @orbingol
- Sambit Ghadai @sambitg92
- Aditya Balu @adityabalu
- Gavin Young
- Xin Huang
GPU Accelerated Voxelization Framework for 3D CAD models.
GPView voxelizes CAD models with a hybrid resolution. Supported CAD models are Wavefront (.obj) file and .off file formats. Output is in the form of binary .raw files with contiguous array.
Level1 resolution is a coarse level of voxelization and Level2 is a finer level of voxelization of particular Level1 voxels in a nested structure.
For more details visit IDEALab website.
- Sambit Ghadai, Aditya Balu, Soumik Sarkar, Adarsh Krishnamurthy; Learning localized features in 3D CAD models for manufacturability analysis of drilled holes, Computer Aided Geometric Design, 62:263-275, 2018.
- Gavin Young, Adarsh Krishnamurthy; GPU-accelerated generation and rendering of multi-level voxel representations of solid models, Computers & Graphics, 75:11-24, 2018.
- Sambit Ghadai, Xian Lee, Aditya Balu, Soumik Sarkar, Adarsh Krishnamurthy; Multi-Resolution 3D Convolutional Neural Networks for Object Recognition, NVIDIA GPU Technology Conference, arXiv:1805.12254, 2018.
- Sambit Ghadai, Aditya Balu, Adarsh Krishnamurthy, Soumik Sarkar; Learning and visualizing localized geometric features using 3D-CNN: An application to manufacturability analysis of drilled holes, NIPS Symposium on Interpretable Machine Learning, 2017.
- GLEW v1.13.0 libraries
- Freeglut v2.8.1 libraries
- CMake v3.7
- NVIDIA CUDA Toolkit 8.0 along with NVIDIA CUDA GPUs for GPU acceleration.
- Microsoft Visual Studio 12 2013 for Windows compilation.
- GCC v5.4.0 for Linux compilation.
Setup instructions for Windows and Linux can be found on wiki page.
Guidelines to voxelize CAD models using GPView can be found on the wiki page.
Triangle ray intersection test routine,
Tomas Muller and Ben Trumbore, 1997.
See article "Fast, Minimum Storage Ray/Triangle Intersection,"
Muller & Trumbore. Journal of Graphics Tools, 1997.
AABB-triangle overlap test code
by Tomas Akenine-Muller
Function: int triBoxOverlap(float boxcenter[3],
float boxhalfsize[3],float triverts[3][3]);