¿Qué debe escribir cada programador de gráficos [cerrado]

18

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.

Cristina
fuente
2
Similar a esta pregunta: gamedev.stackexchange.com/questions/854/…
Bryan Denny

Respuestas:

22

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.

Charlie
fuente
Interesante, estaba pensando en sugerir un rastreador de rayos, un ejercicio matemático muy agradable. No estoy de acuerdo con que diferir sea una palabra de moda de la semana, es, como el trazado de rayos, un cambio bastante grande en la forma de abordar su renderizado, que, para un programador de gráficos, parece ser algo que debe tener en cuenta.
Kaj
Yo diría que la optimización no es tan importante como lidiar con mallas arbitrarias, que es un paso que muchas personas nunca llegan con los trazadores de rayos.
Jonathan Fischoff
En segundo lugar (¿tercero?) Esta sugerencia, con la advertencia de que (como se mencionó) necesita soportar mallas, y no solo detenerse en brillantes esferas en un tablero de ajedrez. Puntos de bonificación por cualquier intento de iluminación global. Incluso si no lo optimiza en gran medida en algo realmente utilizable , debe esforzarse por comprender qué bits son lentos y por qué.
JasonD
Y una advertencia con esta sugerencia: si bien la luz que viaja a través de un medio es todo lo que hay en los gráficos, le dará muy poca capacitación en lo que necesita en entornos de producción reales (actuales).
Kaj
1
Escribir un trazador de rayos fue lo más útil que aprendí en la clase de gráficos de mi universidad
Bryan Denny el
7

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.

bluescrn
fuente
más o menos esto. salvo esto, un sprite blitter con soporte alfa. ..o al menos algo, CUALQUIER COSA, donde manipulas píxeles por sus valores de bit.
Lassi Kinnunen
6

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.

Kaj
fuente
2

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.

RCIX
fuente
Estoy de acuerdo con su respuesta, sin embargo, es demasiado amplia y algunos recursos y enlaces a ellos no harían daño por una respuesta completa :).
lukas.pukenis