2009-08-24 15 views
17

Me gustaría tener una idea de qué tipo de matemática suele ser necesaria para la programación del motor de juego en 3D? ¿Alguna matemática específica (como la geometría vectorial) o algoritmos de cálculo (como las transformaciones rápidas de Fourier), o todo esto está abstraído con DirectX/OpenGL, por lo que las matemáticas altamente complejas ya no son realmente necesarias?Matemáticas utilizadas en 3D (Juego) Programación del motor

+1

3D la programación de gráficos requiere una comprensión decente del álgebra lineal. [El tutorial de matemáticas vectoriales para gráficos 3D por computadora] (http://chortle.ccsu.edu/vectorlessons/vectorindex.html) es, de lejos, el mejor recurso para aprender vectores y matrices. También es interactivo porque al final de cada sección hay una pregunta de prueba para verificar y sellar la comprensión de ese tema. – legends2k

+0

Esta pregunta se debe mover a uno de los otros sitios de Intercambio de pila, como Game Development o Math. (No estoy seguro si eso es correcto, ya que esta pregunta incluye programación) – Andreas

Respuesta

14

matrices, trig, geometría sobre todo y un poco de álgebra lineal

Echa un vistazo aquí http://www.essentialmath.com/

+5

¡Y vectores, muchos vectores! – Marius

+2

Tantos vectores ... :( –

+0

De hecho, puede deshacerse de vectores, y hay ciertas ventajas importantes para él. Los tensores son más fáciles de usar. – ima

1

compleja de la matemáticas viene a jugar, pero lo más importante es la comprensión de los conceptos detrás de tales matemáticas y, a menudo no las matemáticas en sí. Siempre que comprenda cómo se junta todo, a menudo hay métodos auxiliares para muchos de los cálculos que necesitará. Por supuesto, eso depende en gran medida de la plataforma de desarrollo que esté utilizando también.

+0

¿Tienes alguna sugerencia de dónde aprender los conceptos y cómo se aplican a la programación de juegos? encuentra saltos en la enseñanza/cómo/para hacer los cálculos y no/cuándo/deberías usarlos. – TheGeoff

+0

@TheGeoff: la programación de gráficos 3D requiere una comprensión decente del álgebra lineal. [El tutorial de matemáticas vectoriales para gráficos 3D por computadora] (http://chortle.ccsu.edu/vectorlessons/vectorindex.html) es, de lejos, el mejor recurso para aprender vectores y matrices. También es interactivo porque al final de cada sección hay una pregunta de prueba para verificar y sellar la comprensión de ese tema. – legends2k

4

En su mayor parte, álgebra lineal y geometría computacional; Los cuaterniones se usan ampliamente y es necesario realizar un análisis numérico si está trabajando en un motor de física.

La cantidad que usaría las cosas diariamente depende de lo que esté haciendo. Si usted es un programador de gráficos y, por lo tanto, construye el motor de gráficos 3D, probablemente implemente o mantenga implementaciones de bibliotecas de clases y funciones que realmente hacen las matemáticas, por lo que sería relativamente importante conocer los detalles sangrientos. Si está utilizando la biblioteca como cliente o trabajando en otra parte del motor del juego (IA, audio, interfaz de usuario, cámara, etc.), entonces deberá comprender las matemáticas conceptualmente, pero sin dudas puede salirse con la suya sin saber cómo implementarlas. una matriz inversa en una pizarra de la parte superior de la cabeza.

Las API de gráficos no eliminan la necesidad de que alguien conozca esta matemática; están limitados al dibujo, por lo que toda la administración de escenas y la simulación mundial deben implementarse fuera de la API de gráficos. Por supuesto, también hay opciones de middleware, pero muchos estudios tienen sus propios sistemas.

Hay un buen número de recursos destinados a este mercado. Por ejemplo, en Amazon hay libros como 3D Math Primer For Graphics and Game Development, y probablemente también haya muchas cosas en línea.

16

Algebra lineal! Montones de álgebra lineal.

Éstos son sólo las clases y situaciones de ejemplo donde se necesitan

  • vector - posición, velocidad, normales
  • Matrix - transformaciones
  • Quaternion - rotaciones (ideal para los huesos animaciones)
  • Ray - detección de colisión de proyectiles
  • Plano - detección de colisiones proyectil
  • Frustum - hacer que el sacrificio
  • Esfera - procesamiento sacrificio, prueba de colisión rápida
  • Eje-Align cuadro delimitador - el sacrificio, las pruebas de colisión, el particionamiento espacial
  • Oriented Bounding Box - pruebas de colisión
  • convexo casco - colisión, el particionamiento espacial
  • etc.

Usted debe comenzar con vectores y matrices, ya que se pueden usar en cualquier parte del motor (gráficos, la física, AI, etc)

+0

Parece que se mueve principalmente y detección de colisión. –