J'ai un moteur de rendu WebGL et je souhaite transformer les coordonnées du monde aléatoire en coordonnées d'écran dans les fragments fragmentés.Position du monde pour positionner l'écran dans le fragment shader glsl
Cela me permettra de comparer les "coordonnées d'écran calculées" aux coordonnées d'écran du fragment actuel.
J'ai toutes les informations nécessaires pour le faire, je crois, mais je ne sais pas quelle est la bonne façon de le faire.
...
// 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
}
...
Je pense que cela vous donnera un 'screenSpace.y' inversé. –
Oui, vous avez raison, oublié à ce sujet, corrigé :) –
devrait-il être 'screenSpace = (ndx.xy * .5 + 0,5) * vec2 (viewportWidth, viewportIHeight) + vec2 (viewportLeft, viewportRight);'? – gman