【发布时间】:2017-05-28 14:33:43
【问题描述】:
我一直在研究体素游戏有一段时间了,它使用的是我编写的算法。但是,我仍然坚持碰撞检测;因为我真的不知道从哪里开始。体素引擎并不复杂。
我只需要计算高度图的高度。
假设我相对于多边形的位置是 0.5,0.5(中心)。此时我将如何计算 y 位置?
【问题讨论】:
-
也许我错了,但体素的边长通常不是 1 个单位(例如像素),因此每个体素都有一个唯一的位置 (x,y,z),坐标相同在其 3D 空间中独一无二。碰撞检测应该“只”需要检查位置是否已经包含体素。
-
对不起,我应该更清楚一点:我所说的体素不是指它以体素渲染,而是一切都基于立方体(有点像我的世界是如何做到的)
-
您的图像是错误的还是您真的在 Y = 0 时有三个角,在 Y = 1 时有一个角?如果是这样,那不是体素,那是六面体。如果是这种情况,在六面体中,您通常对任何事情都使用三线性插值。搜索双线性插值。也就是说,Simon Kraemer 是绝对正确的,这不是一个好的碰撞检测方案。需要太多操作。在任何情况下,您都希望使用诸如碰撞盒之类的东西,以减少计算量。排除一开始的大部分碰撞。八叉树结构不会是一个坏主意。
-
我绝对不会对游戏中的每个立方体都使用这个计算,所以不用担心。
-
如果图片有误,您还没有回答。这个很重要。如果我们有一个六面体,我们做三线性插值,如果我们有一个体素,我们可以简单地添加值,正如西蒙所说。