Graphics 基于硬件生成原语的碰撞检测

Graphics 基于硬件生成原语的碰撞检测,graphics,collision-detection,shader,Graphics,Collision Detection,Shader,有很多关于碰撞检测的文献,我读了其中的大部分,对大多数技术都相当熟悉。然而,有一件事让我困惑了一段时间,我想,既然StackOverflow可以让我一下子接触到一大群才华横溢的人,我会先问一下,然后再在书架上翻找 在这个时代,越来越多的工作被委托给GPU而不是CPU,在很多情况下这是一件好事。例如,有用于创建新几何体的几何体着色器,或者(稍微不太新,但仍然非常有趣)顶点着色器,您可以在一个时间点通过一组顶点,然后从中获得一些优雅的效果。但是我考虑的是,由于这些原语只存在于图形硬件上,您如何使用这

有很多关于碰撞检测的文献,我读了其中的大部分,对大多数技术都相当熟悉。然而,有一件事让我困惑了一段时间,我想,既然StackOverflow可以让我一下子接触到一大群才华横溢的人,我会先问一下,然后再在书架上翻找

在这个时代,越来越多的工作被委托给GPU而不是CPU,在很多情况下这是一件好事。例如,有用于创建新几何体的几何体着色器,或者(稍微不太新,但仍然非常有趣)顶点着色器,您可以在一个时间点通过一组顶点,然后从中获得一些优雅的效果。但是我考虑的是,由于这些原语只存在于图形硬件上,您如何使用这些原语执行可靠的碰撞检测?让我们假设我有一种非常简化的网格,它在顶点着色器中被置换(我没有具体的问题,我更喜欢玩这个想法,我还没有深入研究几何体着色器)

到目前为止,我考虑的是从适当的角度进行单独的“渲染”过程,或多或少关闭着色,可能是低分辨率网格,渲染第二个基本体的内部(面向内翻转)以及我要测试的网格,并对网格执行遮挡查询。如果网格被完全遮挡,就不会有相交。这当然需要我的第二个基元是凸的

不知何故,我觉得随着原语数量的增加,这种测试将非常昂贵(即使可以直接剔除大部分原语)。还有其他人有其他想法或技巧吗?我对opengl和cg比directx更熟悉,但是如果你在directx中有一些例子,我想我可以找出opengl的对应部分


感谢所有想法,请集思广益。:)

听起来丹·霍恩(Dan Horn)在《GPGPU应用程序的流缩减操作》中的文章正是您想要的。像所有章节一样,它是免费的。

有趣的是,我实际上拥有这本书(也有相当长的一段时间…),但出于某种原因,我忽略了这一部分。