Temas matemáticos para la programación de gráficos en 3D [cerrado]

14

Entiendo que los siguientes temas matemáticos son necesarios para la programación de gráficos en 3D. He comenzado a hacer algunos de ellos en mi curso de matemáticas. ¿Alguien puede señalarme en la dirección de un recurso que explica cómo se aplican? ¿Qué problemas de gráficos / juegos se utilizan para resolver?

  • matemáticas vectoriales
  • matemática matricial
  • cuaterniones
  • álgebra lineal

Hasta donde puedo ver, estos son todos temas de álgebra lineal / matriz. ¿Hay otros temas requeridos?

Katherine Rix
fuente
Esta pregunta tiene buena información sobre eso: gamedev.stackexchange.com/questions/2029/…
michael.bartnett
@beardcp Podría ir tan lejos como duplicar.
El pato comunista

Respuestas:

10

El álgebra lineal es la disciplina más importante para la programación de gráficos en 3D simplemente porque es el lenguaje matemático para describir la geometría espacial. Sus otros tres temas son realmente solo subconjuntos de álgebra lineal:

  • Los vectores son una forma de pensar sobre puntos en el espacio
  • Las matrices son formas de pensar acerca de las transformaciones del espacio y los objetos: traducir objetos, escalarlos, etc.
  • Los cuaterniones son una representación natural de un subgrupo específico de esas transformaciones, las rotaciones
  • etcétera etcétera.

En cuanto a otras piezas matemáticas relevantes para la programación de gráficos en 3D, la que recomendaría que no tenga suficiente amor es la geometría computacional. Muchos problemas naturales se reducen a temas de geometría computacional:

  • Una de las formas más naturales de definir un volumen a partir de un conjunto de puntos (por ejemplo, para definir un volumen de audio donde se reproducirá un ruido de fondo específico, o un volumen de niebla, o similar) es encontrar el casco convexo de los puntos ; Hay buenos algoritmos para hacerlo en 2 y 3 dimensiones, pero incluso los algoritmos 2D no son obvios de inmediato.
  • El problema de poder determinar qué objetos están cerca de un punto dado o cerca unos de otros (por ejemplo, para reducir el número de objetos que deben verificarse para posibles colisiones, o para averiguar qué enemigos notarán a los jugadores en un momento punto dado) entra en el campo de los problemas de consulta geométrica y en los esquemas de partición espacial (y, por lo tanto, en estructuras como árboles BSP y octrees). Las mismas ideas generales también se utilizan para responder consultas de 'trazado de línea' (por ejemplo, '¿a qué golpea este rayo láser?

Después de eso, alentaría a buscar cálculos básicos y métodos particularmente numéricos para ecuaciones diferenciales; Estos son menos relevantes para los gráficos 3D per se que para la física 3D, pero en general los dos temas están bastante unidos (incluso para problemas simples de cinemática, por ejemplo, para animaciones de personajes y similares) y algunos conocimientos de ambos mejorar sustancialmente su conocimiento de cualquiera de los dos; Es difícil, si no imposible, trabajar la física relevante sin el mismo conocimiento básico de álgebra lineal que utilizan los gráficos, pero al mismo tiempo tener el conocimiento de física proporciona otro punto de referencia para comprender los temas en gráficos.

Steven Stadnicki
fuente
Esta fue una respuesta fantástica, Steven, gracias. Me encantaron sus resúmenes sobre cómo pensar sobre vectores, matrices y cuaterniones (lamentablemente, más informativo en 2 segundos que mi actual profesor de álgebra lineal). También me han dado una mejor comprensión de los tipos de desafíos de modelado que plantean los programadores de gráficos 3D. ¡Salud!
Katherine Rix
1

Si está familiarizado con las coordenadas cartesianas, entonces la aplicación de los temas anteriores a los gráficos de computadora debe ser bastante clara. Existen tutoriales como estos para OpenGL que ayudarán a aclarar la aplicación de las matemáticas para resolver problemas básicos de visualización, por ejemplo, cómo hacer que un modelo de marco de alambre parezca rotar. El artículo de Wikipedia sobre dibujo en perspectiva podría ayudar con un poco de antecedentes históricos.

Más allá de eso, hay muchos temas de visualización que se benefician de la formulación matemática. Por ejemplo, los sólidos 3D generalmente se representan mediante triangulaciones de su superficie. ¿Cómo mostramos solo esa parte de la superficie que un observador "debería" ver (algoritmos de superficie / línea ocultos)? Si un objeto se va a iluminar desde una fuente / dirección particular, ¿cómo interactúa esto con la perspectiva para proporcionar una representación de superficie convincente?

Más allá de eso, hay todo tipo de temas de modelado interesantes, como la animación de una niebla o una llama. Pero la transformación de coordenadas, como parece centrarse en su lista de temas, es un elemento básico de todos los avances posteriores.

hardmath
fuente
1

No todos son obligatorios. Las matemáticas de vectores están en todos los gráficos en 3D, es posible que pueda configurar la geometría sin conocer los puntos más finos de las matemáticas de vectores, pero cosas como los mapas de relieve se volverán realmente difíciles, y caerá en la física.

Los cuaterniones simplemente ofrecen una descripción diferente para algunas de las matemáticas, puede ser bueno tenerlo, pero ciertamente no es necesario ya que las matemáticas más convencionales son suficientes para describir cualquier cálculo que pueda hacer con los cuaterniones.

Las matemáticas de matriz y el álgebra lineal están estrechamente relacionadas, sobre todo, describen operaciones lineales en conjuntos de números. Pero, de nuevo, es solo otra forma de describir algunas cosas que podrían describirse con vectores y álgebra.

No sé si consideras que es solo una parte de las matemáticas básicas, pero la trigonometría también necesita estar en la lista.

aaaaaaaaaaaa
fuente
He visto algunas menciones de física hasta ahora. ¿Puede decirme a qué conceptos se refiere aquí? No he tocado el tema en 12 años (es decir, desde la escuela secundaria) y, francamente, lo odiaba. Sin embargo, quizás encuentre que su aplicación sea más fácil de soportar.
Katherine Rix
Física newtoniana, principalmente resolución de colisiones. Puede que no te hayan enseñado estas cosas en la escuela secundaria, pero todo es muy matemático, así que si te gustan las matemáticas, deberías ser bueno.
aaaaaaaaaaaa