2011-01-11 14 views
7

Primero, comencemos con mi experiencia matemática. Tomé el cálculo I - IV y las ecuaciones diferenciales. Tomé un curso de gráficos por computadora del primer semestre en el que implementamos prácticamente nuestra propia línea de gráficos, que incluía el sombreado con Phong sin API gráfica.Gráficos por computadora: Matemáticas al código

Este semestre estoy tomando un curso avanzado de Computación Gráfica Avanzada y al leer las matemáticas involucradas, me pierde. Esta clase es básicamente una clase de síntesis de imágenes. Construiremos un rastreador de rayos en nuestro primer proyecto y continuaremos a partir de ahí.

Al leer en gráficos avanzados por computadora, por lo general voy a obtener un montón de matemáticas. Entiendo que los gráficos por computadora son matemáticos pesados, pero estoy teniendo problemas al tratar de averiguar exactamente cómo se supone que debo implementar las matemáticas en el código. Realmente voy a necesitar aprender esto para destacar en CG.

Por ejemplo, este artículo de la GPU Gems: http://http.developer.nvidia.com/GPUGems/gpugems_ch01.html Hay un montón de matemáticas, pero no tengo idea de por dónde empezar a aplicar las matemáticas si quiero.

Entonces, ¿hay algo que me falta? ¿Debo mirar las matemáticas y ser capaz de derivar el código? ¿Hay tutoriales/libros por ahí que puedan ayudarme a entender lo que tengo que hacer?

+3

¿Cuánto álgebra lineal ha tomado? La mayoría de los gráficos por computadora se aplica álgebra lineal. –

+0

He tomado álgebra lineal también.Me olvidé de mencionar eso. Nunca tengo problemas con el álgebra lineal, son las integrales complejas y cómo traducirlas al código. – Oscar

+1

No veo integrales complejas en ese artículo. ¿Con qué poco estás teniendo problemas? –

Respuesta

0

Ese artículo está utilizando FFT o, en realidad, FFT inversas para generar un campo de altura variable. Lea sobre FFT. Para hacer una 2d, primero debes hacer 1d FFT en las filas, luego las columnas. Una vez que tiene el campo de altura, las derivadas parciales se obtienen probablemente tomando la diferencia de alturas adyacentes a lo largo del eje xoy dependiendo de qué parcial sea. A simple vista, no veo integrales ahí, pero sí aparecen en algunos documentos gráficos y existen métodos para evaluarlos.

también puedo recomiendo buscar en todo el foro ompF más en: http://ompf.org/forum/

+0

Después de mirarlo nuevamente, no tiene integrales. Todavía tengo problemas cuando trato de traducir al código. Veré el sitio web. – Oscar

0

Un consejo que puedo dar más allá de "estudiar más matemáticas y la práctica" es que algunas construcciones matemáticas en general, tienen una construcción análoga en el código que sólo puede no ser obvio

Las integrales (y las sumas) a menudo se realizan como bucles en código o como sumas en marcos (en gráficos, este suele ser el caso). Los derivados y parciales son cambios entre los valores que normalmente se manifiestan como deltas en los cuadros o entre elementos discretos como los píxeles.

Estas reglas no son válidas al 100% pero si puede comenzar a ver los elementos matemáticos más espantosos en términos de qué código generan, será más fácil de absorber. Es importante trabajar desde una base sólida, así que asegúrate de tener los fundamentos bajos y el resto viene con experiencia y práctica.

1

La programación para el tipo de matemática que se ve en el artículo de gemas de la GPU generalmente caería bajo el análisis numérico. El lado más aplicado del análisis numérico se trataría en un curso o libro sobre métodos numéricos o programación científica. Sugiero comenzar por el artículo de wikipedia en numerical analysis y ver algunos de los artículos vinculados específicos. Una vez que conoce los nombres de algunos métodos relevantes, el código de muestra es fácil de encontrar.

Un consejo: una gran parte de la implementación de derivados e integrales en realidad es aprender a manejar los límites (en el sentido matemático) en sus programas. A menudo, eso no está explícitamente establecido.

Cuestiones relacionadas