OpenGL: sistema de coordenadas básico de matemáticas tridimensionales, vectores, matrices
1. Gráficos por computadora
Los gráficos por computadora son una ciencia que utiliza algoritmos matemáticos para convertir gráficos bidimensionales o tridimensionales en la forma de cuadrícula de un monitor de computadora. Es ampliamente utilizado en juegos, animación, simulación, realidad virtual (VR), realidad aumentada (AR) y otros campos.
En matemáticas, el campo que estudia los números naturales y los enteros se llama matemáticas discretas, y el campo que estudia los números reales se llama matemáticas continuas.
En los gráficos por ordenador, la clave para elegir unidades de medida para un mundo virtual es elegir la precisión discreta. Una visión errónea es que short e int son discretos, mientras que float y double son continuos. De hecho, todos estos tipos de datos son discretos. Por lo tanto, los gráficos por computadora tienen los siguientes principios:
El primer principio de los gráficos por computadora: Principio de aproximación: si parece correcto, es correcto.
2. Sistema de coordenadas cartesianas
El sistema de coordenadas cartesianas 2D es un marco para posicionar puntos con precisión. La representación estándar de las coordenadas 2D es (x, y), que creo que todos han aprendido en la escuela secundaria. Generalmente, el sistema de coordenadas cartesiano estándar tiene el eje x apuntando hacia la derecha y el eje y apuntando hacia arriba. Las coordenadas de la pantalla en los gráficos por computadora suelen ser el eje x hacia la derecha y el eje y hacia abajo. Como se muestra en la Figura 1.
El sistema de coordenadas cartesiano 3D es similar, añadiendo una tercera dimensión, el eje z. El sistema de coordenadas 3D se divide en dos sistemas de coordenadas completamente diferentes, el sistema de coordenadas para zurdos y el sistema de coordenadas para diestros. El método de evaluación es el siguiente: Sistema de coordenadas de la mano izquierda: estire la mano izquierda y haga que el pulgar y el índice formen una "L", con el pulgar hacia la derecha, el dedo índice apuntando hacia arriba y los otros dedos apuntando. adelante. En este momento, el pulgar, el índice y los otros tres dedos representan las direcciones positivas de los ejes x, y y z respectivamente. El sistema de coordenadas de la derecha es el mismo, excepto que la mano izquierda se reemplaza por la mano derecha. Como se muestra en la Figura 2.
Figura 2: Sistema de coordenadas para zurdos y sistema de coordenadas para diestros
El sistema de coordenadas para zurdos se usa ampliamente en gráficos por computadora y D3D, mientras que el sistema de coordenadas para diestros Se usa ampliamente en OpenGL y álgebra lineal, 3DSMax.
3. Múltiples sistemas de coordenadas
Cualquier sistema de coordenadas 3D puede extenderse infinitamente y puede incluir todos los puntos en el espacio. Por lo tanto, solo se necesita un sistema de coordenadas para describir todos los puntos. Sin embargo, se ha descubierto que es más conveniente utilizar diferentes sistemas de coordenadas en diferentes situaciones.
1. Sistema de coordenadas mundial
El sistema de coordenadas mundial es un sistema de coordenadas especial que describe el marco de referencia requerido por otros sistemas de coordenadas. Es el sistema de coordenadas más grande y externo de un sistema de coordenadas. Los conceptos de "hacia el este" y "hacia el sur" sólo están disponibles en el sistema de coordenadas mundial.
2. Sistema de coordenadas del objeto
El sistema de coordenadas del objeto es un sistema de coordenadas relacionado con un objeto específico. Cada objeto tiene un sistema de coordenadas independiente. Los conceptos de "frente", "atrás", "izquierda" y "derecha" sólo tienen significado en el sistema de coordenadas del objeto.
3. Sistema de coordenadas de la cámara
El sistema de coordenadas de la cámara es un sistema de coordenadas estrechamente relacionado con el observador. Es un sistema de coordenadas de objeto especial que se define en la pantalla de la cámara. área. En el sistema de coordenadas de la cámara, la cámara está en el origen, el eje x está a la derecha, el eje z está hacia adelante (hacia la pantalla o la dirección de la cámara) y el eje y está hacia arriba (no por encima). el mundo pero por encima de la propia cámara).
4. Sistema de coordenadas inercial
El sistema de coordenadas inercial simplifica la conversión del sistema de coordenadas mundial al sistema de coordenadas del objeto. Su origen coincide con el sistema de coordenadas del objeto y el eje de coordenadas es paralelo al sistema de coordenadas mundial.
La importancia de introducir el sistema de coordenadas inerciales es que la transformación del sistema de coordenadas del objeto al sistema de coordenadas inerciales solo requiere rotación, y la transformación del sistema de coordenadas inerciales al sistema de coordenadas mundial solo requiere traducción.
4. Vector
Para los programadores, un vector es una matriz. El número de "números" contenidos en la matriz es la dimensión del vector. Los vectores en gráficos por computadora en general analizan principalmente vectores de 2 dimensiones, 3 dimensiones y 4 dimensiones. Los dos primeros se usan generalmente para representar la posición y el desplazamiento en espacios bidimensionales y tridimensionales, y los vectores de 4 dimensiones generalmente se usan para el color (RGB y transparencia alfa).
Cualquier punto puede representarse mediante un vector partiendo del origen.
El siguiente es uno de los puntos clave de este capítulo, las reglas de operación vectorial (los ejemplos son todos vectores tridimensionales):
1. Vector negativo
Significado geométrico: el vector se vuelve negativo, obtendrá un vector de igual tamaño y de dirección opuesta al vector original.
2. Módulo del vector
En la fórmula anterior, sqrt representa la raíz cuadrada.
Significado geométrico: la longitud del vector
3. Multiplicación de escalares y vectores
Significado geométrico: escalar la longitud del vector por el factor |k |, si k lt 0 significa que la dirección del vector está invertida.
4. Suma y resta de vectores
Significado geométrico: La explicación geométrica de la suma de los vectores a y b es: trasladar el vector de modo que la cabeza del vector a se conecte con la cola del vector b, y luego dibuja un vector desde la cola de a hasta la cabeza de b. Esta es la "regla del triángulo" de la suma de vectores. La resta es similar.
5. Producto escalar vectorial
El término "producto escalar" proviene del signo de punto en la notación a·b, y el signo de producto escalar en el producto escalar no se puede omitir. Su prioridad es mayor que la suma y la resta.
Significado geométrico: Cuanto mayor sea el resultado del producto escalar, más cerca estarán los dos vectores.
a·b = || a || || b || cosθ
θ es el ángulo entre dos vectores
6. Producto cruzado de vectores p >
El término "producto cruzado" proviene de la cruz en la notación aXb. No se puede omitir el signo del producto cruzado. La multiplicación cruzada tiene mayor prioridad que la multiplicación de puntos.
El producto cruzado no satisface la ley asociativa. Satisface la ley conmutativa inversa: aXb = -(bXa)
Significado geométrico: aXb es perpendicular a a y b, apunta directamente sobre el plano donde se encuentran a y b, y tiene el tamaño de un paralelogramo con a y b como dos lados El área es ||a|| ||b||
5. Matriz
Para los programadores, un vector es una matriz unidimensional y una matriz es una matriz bidimensional. Un vector es una matriz de escalares y una matriz es una matriz de vectores.
Las reglas de operación de la matriz son las siguientes:
1. Multiplicación de escalares y matrices
2. Multiplicación de matrices
Solo cuando se cumplen ciertas condiciones, solo se pueden multiplicar dos matrices. Una matriz A rXn se puede multiplicar por una matriz B nXc. El resultado es una matriz rXc, registrada como AB. La multiplicación de matrices satisface la ley asociativa pero no la ley conmutativa.
La situación de la multiplicación de matrices tridimensionales:
El significado geométrico de la matriz: la matriz es muy abstracta, en términos generales, una matriz cuadrada (una matriz con un igual. número de filas y filas) puede describir cualquier transformación lineal. Las fórmulas de matrices y transformaciones lineales se describirán en detalle a continuación.
6. Transformación matricial y lineal
1. Rotación
2. Escalado
Tome el vector unitario n como dirección de escala, y k como La matriz de escala del factor es:
3. Proyección ortogonal
La matriz de proyección al plano perpendicular al vector unitario n es:
4. Simetría
p>La matriz de transformación especular de un plano que pasa por el origen y es perpendicular a n es:
5. Combinación de transformaciones
Combinación de Las transformaciones son muy comunes en el renderizado. Imagine que hay objetos en cualquier dirección y en cualquier posición que deben representarse ante las cámaras en cualquier dirección y en cualquier posición. Para hacer esto, debemos transformar todos los vértices del objeto del sistema de coordenadas del objeto al sistema de coordenadas mundial, y luego del sistema de coordenadas mundial al sistema de coordenadas de la cámara.
La transformación matemática es la siguiente:
De esta manera, todas las matrices se pueden combinar fuera del ciclo de renderizado, de modo que al realizar la multiplicación de matrices dentro del ciclo, solo es necesario una matriz. multiplicarse (Guarde una multiplicación de matrices y la eficiencia se puede mejorar mucho).
Eso es todo por el sistema de coordenadas en gráficos tridimensionales, los significados matemáticos y geométricos de vectores y matrices, y las fórmulas. Este artículo cubre la mayor parte de los primeros ocho capítulos de "Conceptos básicos de matemáticas 3D: gráficos". y desarrollo de juegos". El conocimiento teórico puro es aburrido, pero el mundo virtual tridimensional es rico y colorido. Espero que los lectores de este artículo lo traten como notas sobre el conocimiento básico de los gráficos tridimensionales.