-3

似乎相机后面的所有东西都倒置了或其他东西: 当前截图

这是原始模型: 原始模型

所以相机位于“框架”的右侧开口处。

这是深度计算(我认为问题出在这里):

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
    };
}
4

1 回答 1

4

当点有 时,这也发生在我身上z <= 0,因为那时投影公式无效。只是不要以点得到的方式旋转对象z <= 0

它是倒置的,因为公式y = 1 / x是围绕原点点对称的。所以 for x <= 0theny变成-y。例如1 / 2 = 1 / 2,,但是 1 / -2 = - 1 / 2

说到这一点,我想说你最好改变你的引擎,以便将值映射z <= 0z = 1(或更小的东西)。当然,这是一个廉价的把戏。对此可能有更有意义的技术。

于 2011-05-30T17:41:46.713 回答