基于区块链的毕业设计Collision Detection: The Gilbert-Johnson-Keerthi Algorithm and Bounding Volume Hierarchies – 碰撞检测:Gilbert-Johnson-Keerthi算法和包围体层次

本文提供基于区块链的毕业设计国外最新区块链项目源码下载,包括solidity,eth,fabric等blockchain区块链,基于区块链的毕业设计Collision Detection: The Gilbert-Johnson-Keerthi Algorithm and Bounding Volume Hierarchies – 碰撞检测:Gilbert-Johnson-Keerthi算法和包围体层次 是一篇很好的国外资料

Collision Detection: The Gilbert-Johnson-Keerthi Algorithm and Bounding Volume Hierarchies

We present optimized implementations of two 3D collision detection algorithms: The Gilbert-Johnson-Keerthi Algorithm (GJK) and Bounding Volume Hierarchies (BVH). Previous papers consider only the speedup from simplifying GJK to perform intersection tests on convex shapes. Our contribution is to use SIMD vectorizations and other optimizations to achieve a speedup of 13.5 times. BVH extends collision detection to general shapes. Our choice of k-DOP Bounding Volume (BV) quad trees allows efficient SIMD parallel intersection tests. Combined with half-precision floats we increased performance by up to 8.4 times compared to baseline.

Results

  • We have managed to achieve a maximum speedup of 13.5 for GJK.
  • We have managed to achieve a maximum speedup of 2.45 for BVH.

Files and Folders

  • 14_report.pdf: This file is the final version of our report. It contains brief explanations of the algorithms of interest, detailed explanations of the optimization methods we applied and our experimental results.
  • src: This folder contains full implementations of the algorithms and optimized versions.
  • test: This folder contains our unit test cases for the algorithms.
  • benchmarking: This folder contains the code used to measure execution times of the various implementations.

Project Setup

Currently only importing into CLion is confirmed to work. Running CMake directly (passing the desired C and C++ compiler flags explicitly) should probably also work.

For CLion

Open the outer folder in CLion as a project. Setup any Profile under Build, Execution, Deployment > CMake, passing the desired Compiler Flags (such as target architecture) as CMake options.

For now the C compiler flags are: -std=c11 -O3 -march=[MACHINE ARCHITECTURE] -mprefer-vector-width=512 -ffast-math.

[MACHINE ARCHITECTURE] can be:

  • skylake-avx512 (for the rented Intel Xeon D-2141I CPU bare metal server) for BVH
  • icelake (Intel Core i7-1068NG7) for GJK

The C++ flags are analogous.

Testing

Using GoogleTest

The test folder contains all tests. Tests are compiled in C++ using the GoogleTest library. They test the GJK and BVH code, which was written and compiled in C.

The tests can also be run from CLion conveniently, like unit tests in Java with JUnit. (Note: you will have to build the gjk target, before building and running the tester target).

Contributors

  • Mihai Zorca
  • Berke Egeli
  • Chris Müller
  • Liam van der Poel

Collision Detection: The Gilbert-Johnson-Keerthi Algorithm and Bounding Volume Hierarchies

我们提出了两种三维碰撞检测算法的优化实现:Gilbert-Johnson-Keerthi算法(GJK)和边界体层次(BVH)。以前的论文只考虑从简化GJK到对凸形状进行相交检验的加速。我们的贡献是使用SIMD矢量化和其他优化来实现13.5倍的加速比。BVH将碰撞检测扩展到一般形状。我们选择的k-DOP边界体积(BV)四叉树允许高效的SIMD并行交叉测试。再加上半精度浮动,我们的性能比基线提高了8.4倍

Results

  • 我们已经设法使BVH的最大加速比达到2.45
  • 14u report.pdf:此文件是我们报告的最终版本。它包含了感兴趣的算法的简要说明,我们应用的优化方法和我们的实验结果的详细说明

Files and Folders

  • src:这个文件夹包含算法和优化版本的完整实现
  • 测试:这个文件夹包含我们的算法单元测试用例
  • 基准测试:此文件夹包含用于测量各种实现的执行时间的代码
  • benchmarking: This folder contains the code used to measure execution times of the various implementations.

Project Setup

目前只有导入到CLion才能确认有效。直接运行CGube(显式传递所需的C和C++编译器标志)也可能会起作用。

For CLion

将CLion中的外部文件夹作为项目打开。在构建、执行、部署中设置任何配置文件>CMake,将所需的编译器标志(如目标体系结构)作为CMake选项传递

目前,C编译器的标志是:-std=c11-O3-march=[MACHINE ARCHITECTURE]-mprefer vector width=512-ffast math

  • skylake-avx512 (for the rented Intel Xeon D-2141I CPU bare metal server) for BVH
  • icelake (Intel Core i7-1068NG7) for GJK

Testing

Using GoogleTest

测试文件夹包含所有测试。测试是用GoGoestScript库在C++中编译的。他们测试用C编写和编译的GJK和BVH代码

测试也可以方便地从CLion运行,就像Java中的单元测试和JUnit一样(注意:在构建和运行tester目标之前,您必须构建gjk目标

Contributors

  • Mihai Zorca
  • Berke Egeli
  • Chris Müller
  • Liam van der Poel

部分转自网络,侵权联系删除区块链源码网

www.interchains.cc

https://www.interchains.cc/23034.html

区块链毕设网(www.interchains.cc)全网最靠谱的原创区块链毕设代做网站 部分资料来自网络,侵权联系删除! 最全最大的区块链源码站 ! QQ3039046426
区块链知识分享网, 以太坊dapp资源网, 区块链教程, fabric教程下载, 区块链书籍下载, 区块链资料下载, 区块链视频教程下载, 区块链基础教程, 区块链入门教程, 区块链资源 » 基于区块链的毕业设计Collision Detection: The Gilbert-Johnson-Keerthi Algorithm and Bounding Volume Hierarchies – 碰撞检测:Gilbert-Johnson-Keerthi算法和包围体层次

提供最优质的资源集合

立即查看 了解详情