在Java中实现Sweep和Prune
我遵循ThinMatrix的游戏开发教程,使用OpenGL和LWJGL,并坚持在我的游戏中实现碰撞检测。我已在网上查阅这些网页——在Java中实现Sweep和Prune,java,collision-detection,Java,Collision Detection,我遵循ThinMatrix的游戏开发教程,使用OpenGL和LWJGL,并坚持在我的游戏中实现碰撞检测。我已在网上查阅这些网页—— 但是我不知道任何C++,不能转换代码。如何在java中使用sweep和prune实现broadphase碰撞检测?您试图实现的目标并不是很琐碎,在这里可能回答得太多,但让我们试着描述一些基本步骤来开始 据我所知,ThinMatrix的教程系列中,您必须首先实现轴对齐边界框(AABB),并将其环绕在实体周围,因为您需要用于宽相位检测的边界框。您可以简单地加载一个
<>但是我不知道任何C++,不能转换代码。如何在java中使用sweep和prune实现broadphase碰撞检测?您试图实现的目标并不是很琐碎,在这里可能回答得太多,但让我们试着描述一些基本步骤来开始 据我所知,ThinMatrix的教程系列中,您必须首先实现轴对齐边界框(AABB),并将其环绕在实体周围,因为您需要用于宽相位检测的边界框。您可以简单地加载一个
1x1x1
cube模型并相应地缩放变换矩阵,但您将如何缩放它
在解析obj文件的过程中,记住每个模型的最小和最大顶点位置(minX,minY,minZ,maxX,maxY,maxZ
)
然后,您必须重新缩放1x1x1边界框,以便计算边界框的scaleX、scaleY、scaleZ
,并确保它也尊重原始实体的比例:
float scaleX = (maxX - minX) * model.getScale();
float scaleY = (maxY - minY) * model.getScale();
float scaleZ = (maxZ - minZ) * model.getScale();
然后,您必须计算transformationMatrix并将您的缩放值应用到多维数据集。ThinMatrix实现了方法math.createTransformationMatrix(…)
,您必须使用三个新参数对其进行扩展
在某个时刻,你最终会得到一个类似于此的AABB:
在此基础上,我建议整合现有的物理库,如: