0

私の頂点シェーダーでは、頂点ごとにワールド空間の位置を通過します。ユニフォームを使用して、ワールド座標でのカメラの位置をフラグメント シェーダーに渡します。質問の答えとは関係なく、両方の値が必要です。

ベテックス シェーダーで vec3 cameraToSurface (ワールド スペース) を計算し、それをフラグメント シェーダーに渡し、そのプロセスで補間することをお勧めします。それとも、フラグメント シェーダーのフラグメントごとにそのベクトルを再計算する必要がありますか? これは単純な ( vec3 a - vec3 b ) 操作です。

基本的に:単純な差分操作の場合、vec3 を頂点からフラグメント シェーダーに渡すか、そこで再計算する必要がありますか? 頂点シェーダーとフラグメント シェーダーの間で vec3 を補間するコストはいくらですか?

4

1 に答える 1

1

頂点シェーダーで計算し、補間ハードウェアに任せます。

ただし、カメラの位置は固定されており、すべての頂点で同じであるため、シェーダーで計算する理由がまったくわかりません。CPUで計算し、ユニフォームを使用します。ワールド空間でのカメラと頂点の関係は、単に頂点ビュー空間の位置であるため、現在計算しているものは何であれ、おそらく単純化できます。

于 2013-04-17T20:16:39.467 に答える