Un rastreador.
En serio, el trazado de rayos tiene una curva de aprendizaje tan superficial e involucra muchas técnicas informáticas comunes como OOP, clasificación, álgebra lineal, vectorización, paralelización, partición espacial, GPGPU, uso de datos fuera del núcleo, recursividad, etc.
Todos estos son opcionales. Puede comenzar de manera extremadamente simple y escribir un rastreador de rayos lento pero fácil con solo unas pocas líneas de código. Y puede llevarlo en la dirección que desee. Puedes ir rápido y hacky, o lento y realista.
Aprenderá muchas técnicas gráficas que también se pueden usar en otros dominios como juegos o imágenes médicas, como antialiasing, profundidad de campo, geometría 3D, representación de volumen, iluminación global, vectores de reflexión / refracción, mapeo de texturas, mapeo de relieve, mapeo normal , mapeo de paralaje, mapeo de sombras, mapeo de desplazamiento, etc.
- ¿Qué se perdió uno si no asistió a una universidad de primer nivel (Ivy League o equivalente)?
- ¿Cuáles son algunos programas internacionales de posgrado similares al laboratorio de medios del MIT?
- ¿Cuál es un concepto intuitivo importante que se omite en las clases de matemáticas tradicionales a favor del aprendizaje mecánico?
- ¿Cuál es la materia educativa más fácil en el mundo de hoy?
- ¿Qué puedo esperar al obtener un título en informática?
Otra cosa fantástica sobre el trazado de rayos es la depuración visual. A menudo coloreo mis superficies con vectores normales o reflejados solo para ver qué sucede.
Probablemente comenzará por las esferas de trazado de rayos, son las más fáciles. Luego otras formas como cajas y cilindros. Los triángulos de trazado de rayos (bueno, mallas de triángulos) son extremadamente importantes, pero también podría intentar intersectar otras cosas interesantes como superficies implícitas, torii y fractales 4D Julia.
Oh, el trazado de rayos es muy divertido y todos pueden disfrutar de los resultados.
De todos modos, esa es mi sugerencia.
Aquí hay un raytracer en tiempo real que escribí hace muchos años. Muestra algunas de las técnicas que utilicé para acelerarlo: