He visto esta pregunta en SO, pero aquí quiero que se centre en GFX.
Entonces, en su opinión, ¿qué aplicaciones / características debe escribir / cambiar cada aspirante a programador de GFX para mejorar?
Wiki de la comunidad ya que no hay una "respuesta correcta".
LE: No se refiere a juegos reales, sino a características gráficas, por ejemplo, cambiar algo en un motor (por ejemplo, cómo carga objetos), hacer un compositor, etc.
Respuestas:
Mi respuesta es siempre la misma: si no has escrito uno antes, escribe un raytracer.
Tendrá que lidiar con estructuras de optimización, precisión numérica y todo tipo de otros problemas, pero también trabajará directamente con las matemáticas de la luz de una manera que rara vez lo hace cuando se trata de todos los hacks y aproximaciones que conforman Un procesador de producción en tiempo real.
Elimine todo el edificio de los sistemas de carga, palabras de moda de la semana, diferido-esto o reenviar-eso, y finalmente se queda, con la luz viajando a través de un medio. Al final, eso es todo lo que hay para los gráficos.
fuente
Puede ser de poca utilidad práctica en estos días, pero escribir en un procesador de software, al menos uno básico (tal vez solo algunos cubos con textura giratoria), es un ejercicio que vale la pena.
Comprender cómo transformar, proyectar, recortar, ordenar en profundidad, rasterizar y mapear polígonos de mapas usted mismo le dará una mejor comprensión de lo que están haciendo el hardware 3D y las API de renderizado.
fuente
Si bien no representa el código, creo que escribir un compilador BSP y el código transversal que lo acompaña es un buen ejercicio en matemáticas vectoriales.
En segundo lugar, un renderizador diferido. No porque sea la respuesta final al renderizado, sino que le dará una idea de otro enfoque para el renderizado.
fuente
Aprende la mecánica y las habilidades de escribir buenos sombreadores. Si bien no es 100% necesario en todos los casos, es una habilidad valiosa para saber.
fuente