0

私は錐台カリングについて調査しましたが、ほとんどのソリューションは、メッシュ オブジェクトのバウンディング ボックスを見つける方法を示しています。私のポイントはメッシュではなく、サイズもありません。単に 3D ワールド空間の座標です。目標は、グラフィックス処理を軽減することではなく、単にワールド空間のポイントがカメラのビュー内にあるかどうかを確認することです。

これは、 http: //www.richardssoftware.net/2013/08/hardware-instancing-and-frustum-culling.html から取得した錐台平面を計算するための私のコードです。

public Frustum(Matrix vp)
{
    _frustum = new[] {
        //left
        new Plane(vp.M14 + vp.M11, vp.M24 + vp.M21, vp.M34 + vp.M31, vp.M44 + vp.M41),
        // right
        new Plane(vp.M14 - vp.M11, vp.M24 - vp.M21, vp.M34 - vp.M31, vp.M44 - vp.M41),
        // bottom
        new Plane(vp.M14 + vp.M12, vp.M24 + vp.M22, vp.M34 + vp.M32, vp.M44 + vp.M42),
        // top
        new Plane(vp.M14 - vp.M12, vp.M24 - vp.M22, vp.M34 - vp.M32, vp.M44 - vp.M42),
        //near
        new Plane(vp.M13, vp.M23, vp.M33, vp.M43),
        //far
        new Plane(vp.M14 - vp.M13, vp.M24 - vp.M23, vp.M34 - vp.M33, vp.M44 - vp.M43)
    };
    foreach (var plane in Planes)
    {
        plane.Normalize();
    }
}

これらの平面と Vector3 または Matrix のいずれかを使用して、ポイントがカメラ ビュー内にあるかどうかをどのように判断できますか?

4

0 に答える 0