0

openglコードのglPerspectiveでnearとfarの値を渡す必要があります。頂点シェーダーでModelViewMatrixを乗算することにより、目の空間にあるすべての頂点を取得しています。私の問題は、この値から最小値と最大値を見つけて、その値をglPerspectiveに渡す必要があることです。どうすればいいですか?それらを頂点シェーダーまたはクライアントスペース(Cコード)で計算する必要がありますか?

4

1 に答える 1

0

通常、nearとfarは計算されませんが、妥当な値に設定されます。'near'は、nearオブジェクトがクリップされないように十分に近くなければなりませんが、すべてのzバッファ精度が失われるほど近くにはなりません。「far」は、レンダリングしたいものに対して十分に離れている必要があります。

いずれにせよ、行列はシェーダーに渡されるため、頂点シェーダーはそれらを計算するのに最適な場所ではありません。そのため、そこまで到達する前に値を知る必要があります。

(高精度が必要なシャドウなどの場合、近く/遠くを動的に計算することは実行可能/便利です。この場合、レンダリングするオブジェクトのバウンディングボリューム、またはその他のそのような近似に基づいて計算します)。

于 2012-12-15T21:43:09.330 に答える