【发布时间】:2013-04-11 06:13:25
【问题描述】:
一直在使用 WebGL 库 Three.js 开发游戏引擎。我有基本的地形碰撞工作到我可以找到用户站立的脸的地步。使用面顶点的平均或最大 Y 位置是不够的。
我可以使用什么公式来找到对象相对于“站立”的地形面的确切 Y 位置?假设我知道面的四个顶点位置和对象矢量位置。
平面是由高度图增强的 THREE.PlaneGeometry(2000,2000,128,128)。上图是它的一张脸。
【问题讨论】:
-
有一个geometry.computeCentroids() 函数可以使用,然后使用人脸的质心。
-
我已经完成了 geo.computeCentroids() 但问题是角色并不总是站在脸的中心。
-
既然你在做碰撞,你已经在发送光线(我假设)。当您成功找到一张脸时,为什么不进行射线平面相交以找到确切的位置。不知道three.js是否有这个构建。
-
我正在使用另一种方法来查找人脸。射线投影性能不如我希望的那么好。不管怎样,我只能找到一张脸。我需要知道我站立的那部分面部的精确 y 位置。由于这张脸内没有顶点(仅在拐角处),因此只能使用我不知道的某种数学来推断这些数据。
标签: math three.js game-engine collision terrain