Opengl:像素重叠(碰撞检测)

Opengl:像素重叠(碰撞检测),opengl,collision-detection,pixel,overlapping,Opengl,Collision Detection,Pixel,Overlapping,我正在尝试做一个圆圈之间的碰撞检测例行程序(凝结),因为对这个非常陌生,我首先做了一个检测,检查每个圆圈。现在我有了创建某种边界框的想法,以便只更精确地检查足够近的圆(当有一组凝固的圆时效率更高) 现在,在我选择了要仔细观察的对象之后,要进行更精确的检测,openGL是否可以通过检测像素重叠来查看两个对象是否重叠 欢迎提供其他一些优化碰撞检测的技巧:) 谢谢。OpenGL没有此类内置功能,尽管您可以在较旧版本中对“反馈”渲染模式进行Bastarize(OpenGL没有此类内置功能,尽管您可以在较

我正在尝试做一个圆圈之间的碰撞检测例行程序(凝结),因为对这个非常陌生,我首先做了一个检测,检查每个圆圈。现在我有了创建某种边界框的想法,以便只更精确地检查足够近的圆(当有一组凝固的圆时效率更高)

现在,在我选择了要仔细观察的对象之后,要进行更精确的检测,openGL是否可以通过检测像素重叠来查看两个对象是否重叠

欢迎提供其他一些优化碰撞检测的技巧:)


谢谢。

OpenGL没有此类内置功能,尽管您可以在较旧版本中对“反馈”渲染模式进行Bastarize(OpenGL没有此类内置功能,尽管您可以在较旧版本中对“反馈”渲染模式进行Bastarize)( openGL是否可以通过检测像素重叠来查看两个对象是否重叠

OpenGL没有冲突检测例程

OpenGL提供了一个可以用来获取在特定区域中渲染的对象列表的方法,但这不会有用,因为要检测重叠,您需要知道重叠可能发生的区域

通过滥用模具缓冲区,您可以获得重叠的像素列表(以及在某个像素上绘制了多少对象),但为此,您必须从模具缓冲区读取数据并手动遍历每个像素。这将更快(10..100倍)手动检查圆碰撞。除非使用8个或更少的对象,否则将无法使用模具缓冲区确定在像素上绘制的对象

欢迎提供其他一些优化碰撞检测的技巧

使用树或“扫描和修剪”算法

openGL是否可以通过检测像素重叠来查看两个对象是否重叠

OpenGL没有冲突检测例程

OpenGL提供了一个可以用来获取在特定区域中渲染的对象列表的方法,但这不会有用,因为要检测重叠,您需要知道重叠可能发生的区域

通过滥用模具缓冲区,您可以获得重叠的像素列表(以及在某个像素上绘制了多少对象),但为此,您必须从模具缓冲区读取数据并手动遍历每个像素。这将更快(10..100倍)手动检查圆碰撞。除非使用8个或更少的对象,否则将无法使用模具缓冲区确定在像素上绘制的对象

欢迎提供其他一些优化碰撞检测的技巧


使用树或“扫描和修剪”算法。

是的,我使用了这种算法,但由于圆凝结,我将计算从组中心到最远圆的距离,然后将组视为一个大圆(从中心到最远圆的距离)如果它与另一个组或圆重叠,我会更精确地检查。是的,我会使用它,但因为这些圆凝结,我会计算从组的中心到最远的圆的距离,然后就好像组是一个大的圆(从中心到最远的圆的距离)如果它与另一个组或圆重叠,我会更精确地检查。