相机后面的所有东西似乎都倒了回来或者其他东西:
这是原始型号:
因此相机位于“框架”的右侧开口。
这是深度计算(我认为问题出在这里):
function 3dto2d(x, y, z) {
var scale = cameradistance / (cameradistance - z);
return {
'x' : x * scale,
'y' : y * scale
};
}
有人知道这个问题吗?
编辑:我的答案在这里:
function 3dto2d(x, y, z) {
var scale = cameradistance / (cameradistance - (z >= cameradistance ? cameradistance - 1 : z));
return {
'x' : x * scale,
'y' : y * scale
};
}
答案 0 :(得分:4)
当点数为z <= 0
时,这也发生在我身上,因为投影公式无效。只是不要以点数z <= 0
。
它被反转,因为公式y = 1 / x
在原点周围是点对称的。因此,对于x <= 0
,y
变为-y
。例如,1 / 2 = 1 / 2
,但1 / -2 = - 1 / 2
。
要说明一点,我会说你最好改变你的引擎,以便将值z <= 0
映射到z = 1
(或更小的东西)。当然,这是一个廉价的伎俩。可能有更有意义的技术。