¿Cómo es tomar CS 184 (Fundamentos de gráficos por computadora) en Berkeley?

Tomé CS 184 en la primavera de 2000. Lo recuerdo como la clase más desafiante que he tomado (incluido el plan de estudios EECS en UC Berkeley y los cursos interuniversitarios MBA + en Yale).

Más allá de esas impresiones, mi memoria se vuelve borrosa. Recuerdo que pensé que era genial que, para simplificar las operaciones geométricas, utilizaras el espacio @ 4 dimensional (que te permite reducir problemas difíciles a matrices simples). Recuerdo haber pensado que las matemáticas eran elegantes, y cuando intenté profundizar, me dolió el cerebro.

CS 184 me expuso al amplio alcance de Computer Graphics y me dio una idea de la profundidad aterradora. Vi transformaciones básicas, proyección, varios métodos de sombreado, modelado de movimiento y física, y mucho más, incluidos los problemas de vanguardia de la época (como recuerdo, renderizar el cabello era una frontera prometedora). Y en cada uno de esos temas, encontré problemas de gran complejidad, combinando programación de alto rendimiento con disciplinas como matemática vectorial legítima, óptica, cinemática y muchas otras cosas que apenas entendía.

Recuerdo un dulce proyecto final en esa clase, donde usamos OpenGL bastante primitivo para producir una escena animada e interactiva de nuestra elección. Elegí una montaña rusa, porque puedes jugar con la cámara de la cámara de forma divertida (como cambiar el punto de vista dentro o fuera de la montaña rusa). Me gustó ese proyecto, aunque creo que tuve que recurrir al hacker feo para entregarlo a tiempo. Mi montaña rusa ocasionalmente se volteaba de cabeza a medida que atravesaba la pista, una curva aleatoria de bezier 3d que generaba cada vez que se ejecutaba el programa. Creo que descubrí que el carrito volcó cuando la segunda derivada de la curva (frente al eje y) cambió de signo. Se me acabó el tiempo antes de descubrir cómo evitar un volteo, y terminé hackeándolo para simplemente voltear el carro hacia arriba si había una segunda derivada reciente de cero. Mi montaña rusa era un artilugio inductor de vómitos con carretas que se volteaban al azar.

Finalmente, en CS 184 aprendí que, aunque había seguido la industria gráfica (modelado, trazado de rayos, animación, etc.) durante años, lo esencial era demasiado esotérico para que lo siguiera en serio. Muchas habilidades de juego de mesa para un programador de Gráficos no se transfieren a otras áreas de programación, y estaba más interesado en construir nuevas empresas que nuevos renderizadores.

Me alegro de haber tomado la clase y se lo recomendaría a otros. Es satisfactorio tener una comprensión (ciertamente débil) de cómo se hacen las imágenes bonitas en películas y juegos. CS 184 me dio un profundo respeto por el campo y un buen sentido de mis capacidades y limitaciones como programador.