Este artículo técnico explica cómo obtener el origen y la dirección de los rayos de cámara en coordenadas de mundo a partir de la matriz mundo-a-clip space utilizada en rasterización. El objetivo es disponer de un método que funcione tanto con proyección perspectiva como ortográfica, sin necesidad de ajustar nada por modelo de cámara, lo que resulta especialmente relevante ahora que el ray tracing convive con la rasterización y empieza a considerarse para la visibilidad primaria.
El autor parte de las coordenadas homogéneas y del espacio de recorte, repasando las convenciones de los planos near y far en Direct3D, OpenGL y Vulkan, y unificándolas mediante una variable que vale 0 (Direct3D) o −1 (OpenGL clásico). A partir de ahí, el origen del rayo se calcula transformando al espacio de mundo el punto del plano near y deshomogenizando: un cálculo directo y estable. Para la dirección, en cambio, el método obvio de restar un punto del plano far y otro del plano near produce serios problemas de cancelación numérica: una cámara en movimiento continuo genera un patrón tembloroso y artefactuoso, como muestra la figura incluida.
La entrada propone, por tanto, un esquema alternativo más robusto frente a la cancelación y ofrece el código GLSL correspondiente, liberado al dominio público, para que pueda copiarse sin más. El artículo también discute la incompatibilidad de notación matemática entre Direct3D/HLSL y OpenGL/GLSL (matrices transpuestas y orden de multiplicación invertido) y aporta contexto para que el lector adapte las fórmulas a su API. Se trata de un recurso útil para desarrolladores de motores gráficos que estén migrando de rasterización a ray tracing sin renunciar a las matrices de transformación ya existentes.
