Como se mencionó Nicol, no hay constantes predefinidas.
Sin embargo, desde OpenGL 4.1 en adelante, su solución está garantizada al menos para funcionar y generar correctamente un valor infinito.
Véase, por ejemplo, en glsl 4.4:
4.7.1 rango y precisión
...
Sin embargo, dividiendo un no-cero por 0 resultados en la apropiadamente IEEE Inf firmado: si se implementan ceros positivos y negativos, se generará Inf correctamente firmado, de lo contrario pos se genera Inf.
Tenga cuidado cuando se utiliza una versión anterior de OpenGL sin embargo:
Por ejemplo, en glsl 4.0 que dice:
4.1.4 flotadores
...
Del mismo modo, el tratamiento de condiciones como se divide por 0 ma y dar lugar a un resultado no especificado, pero en ningún caso tal condición conduciría a la interrupción o terminación del procesamiento.
¿Para qué necesitas el infinito? – Shahbaz
Usar infinito ahorra mucha lógica en mi código: ' float t0 = (d> = 0.)? t: infinito; float t1 = (d> = 0.)? t: infinito; t = min (t0, t1); ' –
atb
Creo que elegir un valor suficientemente grande (basado en su aplicación) debería ser el truco. Digamos por ejemplo '1e20' – Shahbaz