0

私は次のような本を読んでいます。For perspective projection, avoid setting your near or far plane to zero or a negative number. Mathematically this just doesn’t work out.

near次のような行列のおよびfarパラメータを参照しています。

static Matrix4<T> Frustum(T left, T right, T bottom, T top, T near, T far)
{
    T a = 2 * near / (right - left);
    T b = 2 * near / (top - bottom);
    T c = (right + left) / (right - left);
    T d = (top + bottom) / (top - bottom);
    T e = - (far + near) / (far - near);
    T f = -2 * far * near / (far - near);
    Matrix4 m;
    m.x.x = a; m.x.y = 0; m.x.z = 0; m.x.w = 0;
    m.y.x = 0; m.y.y = b; m.y.z = 0; m.y.w = 0;
    m.z.x = c; m.z.y = d; m.z.z = e; m.z.w = -1;
    m.w.x = 0; m.w.y = 0; m.w.z = f; m.w.w = 1;
    return m;
}

わかりました。しかし、私が得られないのは、作成者がすべてのデモ モデルを az of -7 で変換し、画面に表示されることです。しかし、視錐台の z の近辺と遠方がそれぞれ 5 と 10 に設定されている場合、なぜ画面上で -7 になるのでしょうか? 5 から 10 の間で az に変換されたオブジェクトだけが表示されるべきではありませんか?

4

1 に答える 1

0

カメラの znear と zfar の値は絶対数ではなく、カメラからの距離であるためです。彼らは常にポジティブです。それが数学の仕組みです。

于 2013-03-11T05:47:13.320 に答える