何时在OpenGL中执行3D碰撞检测
When to perform a 3D collision detection in OpenGL?
我正在制作一个使用各种高级图形方法的程序。目前,两个Wavefront对象模型被导入并呈现在屏幕上。我试图实现这两个对象之间的蛮力三角形-三角形碰撞检测,但我担心的是何时执行这些操作。在这个程序中我不会有动画和运动,我所要做的就是当我翻译(glTranslate)一个对象使它与另一个对象碰撞时,给碰撞的三角形上色。
我的碰撞检测功能应该与我的初始模型顶点工作,还是我需要以某种方式获得当前坐标?
最好将移动(如果你愿意的话)从绘图中分离出来。你可以使用空闲函数或计时器函数来移动波阵面并检查碰撞,并简单地将三角形标记为碰撞(或任何你想要表示它们碰撞的东西),然后强制重新绘制屏幕,你的绘图代码应该简单地清除屏幕并重新绘制所有顶点,并根据它们是否被标记为碰撞适当地着色。
碰撞检测很可能与你的模型顶点一起工作,但你需要跟踪你的对象在"空间"中的位置,以便适当地进行数学计算。
最好将这两个模块分开:渲染和物理/碰撞。
因此一个对象有两个表示:一个用于渲染(纹理,模型几何,材料等),一个用于物理(边界框,字空间位置等)
- 物理不必如此完美,通常只需要一些网格近似。所以对于房屋物体,我们只使用边界框或边界球来测试碰撞。 另一件事是碰撞层次:从低分辨率到高分辨率。首先只测试边界球体(便宜的测试),然后逐渐移动到三角形到三角形碰撞测试(相当昂贵)
相关文章:
- 落砂模拟碰撞检测C++和SFML
- SFML 中的重力和碰撞检测
- 我的碰撞检测中的奇怪行为
- 如何为球形物体和三角形地形提供高效的碰撞检测和响应
- 圆形与方形碰撞检测以及需要响应C++ |OpenGL。我的问题就是这个"I need to keep the circle outside the square"
- 在Qt3D中进行碰撞检测的预期方法(或好方法)是什么?
- 在碰撞检测方面苦苦挣扎.如何正确检测碰撞?
- 三角形-三角形碰撞检测问题
- 不同类别之间的C SFML碰撞检测
- 使用D3DXVECTOR C 的碰撞检测,发生碰撞后该怎么办
- 当我发生碰撞检测时,矢量迭代器不兼容
- 如何使用灵活的碰撞库在两个点云或点云与机器人末端执行器模型之间进行碰撞检测
- 优化碰撞检测C
- 使用碰撞检测来增加SFML 2.4中的游戏分数的问题
- 使用OnComponentHit UE4 C++进行碰撞检测
- 体素世界中的碰撞检测
- 3D 导航和碰撞检测
- 创建和使用AABB碰撞检测3d (OpenGL)
- GJK碰撞检测实现从2D到3D
- 何时在OpenGL中执行3D碰撞检测