vec3 viewRay = vec3(v_vertex.xy * (-u_farDistance/v_vertex.z), -u_farDistance);
ここでのv_vertexはビュー座標変換された頂点、u_farDistanceはカメラのクリップ深度です。
viewRayとゆう変数に格納されているので、スクリーン位置での頂点情報のような気がしますが、
頂点のxyと-u_farDistance/v_vertex.zを掛けるのは少し意味が違う気がしています・・
この変数の表す値が何なのかアドバイスお願いいたします
viewRay がどう使われているのか追ってみたらわかるんじゃないですか?
viewRayは float linearDepthとゆう深度値(0~1)の値と掛け合わされており、この値は後半で色々と使われているのですが、元となる式から解らないので想像もつきません。
通常は z 座標のことを深度と言います。クリップ深度を実際の深度で割った物を実際の xy 座標にかけていると仮定するなら、クリップ内の xy がそれで求まるはずですが、たったこれだけの情報からでは推測の域を出ません。この後を追って確かめて下さい。
とゆう事は、質問文で書いた式を、vec2 viewxy=vec2(v_vertex.xy*(u_farDistance/v_vertex.z))とすれば、クリップ内のxyとゆう事ですね
一度そこから掘り下げて調べてみることにします。ありがとうございます!
いや、知りませんよ。私の勝手な推測です。
回答1件
あなたの回答
tips
プレビュー