2012-08-23 12 views
12

Estoy un poco sorprendido de que no lo saben ya, pero nunca está de más que admitir que todavía está aprendiendo :)¿Cuál es la lógica para determinar un vector mínimo/máximo en GLSL?

En GLSL hay min y max funciones que, de acuerdo con su documentation:

retorno del menor/mayor de dos valores

Pero, ¿cómo es que se determine cuando los valores son los vectores? Obviamente (1, 1) sería menor que (2, 2), pero ¿cuál es el valor mínimo o el máximo de (1, 3) y (4, -2)? ¿Dónde se describe formalmente esa lógica?

Respuesta

29

Citando del first source that I could find (PDF), en la parte superior de § 8.3 Funciones comunes, página 132:

Estos todos funcionan componente a componente. La descripción es por componente.

Casi todas las funciones que operan en los vectores pero que realmente solo tienen sentido para un escalar operan por componentes. (Esto incluye abs, sign, floor, trunc, round, roundEven, ceil, fract, mod, modf, min, max, clamp, mix, step, smoothstep, y mucho más.)

Así, por ejemplo, , el mínimo de (1, 3) y (4, -2) es (1, -2).

+1

¡Impresionante! Eso es lo que asumí, pero me estaba costando encontrar documentación para verificarlo. ¡Gracias! – Toji

Cuestiones relacionadas