0
私はWebGLレンダラを持っています。ランダムなワールド座標をフラグメントシェーダのスクリーン座標に変換したいと思います。フラグメントシェーダのスクリーン位置をワールド位置にするglsl
これにより、「計算された画面座標」と現在の断片画面座標を比較することができます。
私はそうするために必要なすべての情報を持っています。私は信じています。そうする正しい方法がわからないだけです。
...
// available information:
// uCanvasWidth (float)
// uCanvasHeight (float)
// modelMatrix (mat4)
// modelViewMatrix (mat4)
// projectionMatrix (mat4)
vec4 someWorldCoordinates = vec4(1., 2., 3., 1.);
// map it to screen coordinates?
vec4 screenCoordinates = ???
// compare to current fragment location
if(screenCoordinates.x > gl_FragCoord.x){
// do stuff
}
...
これは逆の 'screenSpace.y'を与えると思います。 –
これは忘れていて、固定しています:) –
これは 'screenSpace =(ndx.xy * .5 + .5)* vec2(viewportWidth、viewportIHeight)+ vec2(viewportLeft、viewportRight); – gman