1

WPFでピクセルシェーダーを試してみようとしていますが、次のコードを試してみたいと思います。

-1.0 + 2.0 * gl_FragCoord.xy / resolution.xy

しかし、どの範囲の値が生成されるかはわかりません。私はフィルターとして画像に私のものを適用していて、uとvの値[0-1]にアクセスできます。私がこれをするとき:

-1.0 + 2.0 * {U,V};

同じ結果が得られません。上記も正規化された値の範囲でなければならないことは知っていますが、-1から1、または0から1などかどうかはわかりません。

何か案は?

4

2 に答える 2

2
  • gl_FragCoord.xy / resolution.xy範囲[0,1]を与えます。
  • 2を掛けると、範囲[0,2]が得られます。
  • 1を引くと、範囲[-1,1]が得られます。

例: http: //glsl.heroku.com/e#7712.0

于 2013-03-23T02:29:02.287 に答える
0

コンパイラのようにこれを読みます。-1.0 + 2.0getはに削減され1.0ます。すると、ステートメントはになり1.0 * glFragCoord.xy / resolution.xyます。1 * x = x、とすると、方程式はになりglFragCoord.xy / resolution.xyます。

実際には、[0、1/resolution]の範囲になります。

方程式の意味-1.0 + (2.0 * glFragCoord.xy / resolution.xy)が[0、2 /解像度]である場合、サブプラクティス1は[-1、(2 /解像度)-1]になります。

于 2013-03-23T02:32:49.400 に答える