Notas de Shader: conceptos básicos de matemáticas 3D
En el mundo 3D, para determinar la ubicación de diferentes vértices, es necesario utilizar la representación de coordenadas. El valor de las dos coordenadas se posiciona en función de un punto de referencia fijo, que es el origen de la. coordenadas.
En circunstancias normales, las coordenadas del origen son generalmente (0, 0).
Si se gestionan todas las coordenadas juntas, forman un sistema de coordenadas. Un sistema de coordenadas completo incluirá el origen, la dirección y las coordenadas.
El 3D implica varios sistemas de coordenadas, que se distinguen de las dimensiones. Todos los sistemas de coordenadas se pueden dividir en sistemas de coordenadas rectangulares planas y sistemas de coordenadas rectangulares espaciales.
En el sistema de coordenadas espaciales, se puede dividir en sistema de coordenadas para zurdos y sistema de coordenadas para diestros según las diferentes direcciones de coordenadas.
Si el pulgar se establece como el eje x, el dedo índice se establece como el eje y y el dedo medio se establece como el eje z, los sistemas de coordenadas de las manos izquierda y derecha son como siguiente:
En matemáticas, las coordenadas pertenecen a Una cantidad escalar sólo representa el tamaño, no la dirección.
Aquellos que representan información de longitud y dirección al mismo tiempo se denominan vectores, o "vectores". El vector normal del vértice, el vector tangente, etc. son todos vectores.
Supongamos que el punto inicial del vector bidimensional a es A y el punto final es B. Usando las coordenadas de B menos las coordenadas de A, se puede calcular un vector a.
La fórmula de cálculo del vector bidimensional a es la siguiente:
Si la fórmula se extiende al espacio tridimensional, suponiendo que el punto inicial A y el punto final B del vector tridimensional a, la fórmula de cálculo del vector tridimensional a es la siguiente:
Dos vectores son vectores opuestos si son iguales en longitud pero opuestos en dirección.
El vector opuesto al vector cero es él mismo.
Desde un punto de vista geométrico, si el punto inicial de un vector se usa como punto final y el punto final original se usa como punto inicial, el vector final es el vector opuesto al original. vector.
Supongamos que el punto inicial A del vector a, el punto final B y el vector opuesto b de a se expresan de la siguiente manera:
El vector contiene longitud y dirección La longitud. del vector se llama módulo del vector. Por ejemplo, el módulo del vector a se expresa como | a |.
Como se muestra en la figura, a través del teorema de Pitágoras,
La fórmula para calcular la longitud del módulo del vector bidimensional a es:
Como se muestra En la figura, a través de los dos teoremas de Pitágoras, Obtener
"Vector unitario" se refiere a un vector con longitud de módulo 1.
En muchos casos, la dirección del vector es más digna de atención que la longitud del vector, como la dirección de iluminación de la luz, la dirección de visión de la cámara, etc. Para facilitar el cálculo, este vector se puede convertir en un vector unitario. Este proceso de conversión se denomina normalización de vectores (Normalizar).
Desde un punto de vista algebraico, dividir un vector distinto de cero por su propia longitud puede escalar su propia longitud a 1. La longitud de un vector cero es 0 y 0 como dividendo no tiene significado en matemáticas.
Por lo tanto, el vector normalizado del vector a distinto de cero es:
En comparación con el vector original, el vector unitario solo cambia en longitud y la dirección permanece sin cambios.
Desde un punto de vista geométrico, la operación de suma de vectores satisface la regla del triángulo.
La operación de suma de vectores se puede generalizar a la suma de múltiples cantidades. El resultado final es desde el punto inicial del primer vector hasta el punto final del último vector, y la longitud es la distancia entre ellos. el punto inicial y el punto final.
Desde una perspectiva algebraica, la suma de vectores es la suma de componentes idénticos.
La operación de resta de vectores puede entenderse como la operación de suma de un vector y el vector opuesto de otro vector, que también satisface la regla del triángulo.
La operación de resta de los vectores a y b se transforma en la operación de suma del vector opuesto:
Se restan dos vectores con el mismo punto inicial, y el vector resultante es el final punto del segundo vector. El punto final del primer vector tiene una longitud igual a la distancia entre los dos puntos finales.
Algebraicamente hablando, la resta de vectores es la resta de componentes idénticos. La fórmula de cálculo es la siguiente:
Multiplicar un vector por un escalar produce el efecto de escalamiento vectorial. Como se muestra en la figura:
Suponiendo que el vector a = (x, y, z), la fórmula para escalar el vector k veces es:
El producto escalar de los vectores a y b es escrito como a .
En álgebra, el producto escalar también se llama producto interno. El resultado del producto escalar de dos vectores es la suma de todos los componentes correspondientes multiplicados. El resultado del producto escalar es un valor numérico.
La fórmula de cálculo del producto escalar es:
En geometría, el resultado del producto escalar de dos vectores es el producto de la longitud de proyección de un vector sobre el otro vector y la longitud de este vector.
La fórmula de cálculo del producto escalar es:
El producto vectorial de vectores también se llama producto exterior y el resultado del producto vectorial es un vector. El producto cruzado de los vectores a y b se escribe a × b .
La fórmula de cálculo del producto vectorial es:
En geometría, el vector obtenido por el producto vectorial es perpendicular al plano donde se encuentran a y b, y la longitud es igual al área del paralelogramo compuesto por los vectores a y b, este vector se llama vector normal. Como se muestra en la figura:
Suponiendo que el orden de los dos vectores del producto vectorial se invierte, la dirección del vector obtenido por el producto vectorial de b y a será hacia abajo.
Las operaciones vectoriales más utilizadas son las siguientes:
Los vectores se pueden representar mediante matrices dispuestas horizontalmente. Suponiendo que las matrices de las mismas dimensiones continúen dispuestas verticalmente, la matriz final es una. matriz (Matriz).
La dimensión de un vector representa el número de números contenidos en el vector. De manera similar, la dimensión de una matriz representa el número de filas y columnas contenidas en la matriz. Por lo general, r (la abreviatura de raw) se usa para representar el número de filas, c (la abreviatura de columna) se usa para representar el número de columnas y la matriz en sí está representada por una letra mayúscula en cursiva negra, como M.
Una matriz M de 3×3 y todos sus componentes correspondientes se pueden expresar de la siguiente manera:
Una matriz con el mismo número de filas y columnas se llama matriz cuadrada.
Los componentes de la matriz cuadrada con números de fila y de columna iguales se denominan elementos diagonales, y los demás componentes se denominan elementos no diagonales. Una matriz cuyos elementos no diagonales son todos ceros se llama matriz diagonal.
En una matriz diagonal, la matriz cuyos elementos diagonales son todos 1 se llama matriz identidad.
El resultado final que se obtiene al multiplicar cualquier matriz por la matriz identidad es el mismo que la matriz original. La matriz identidad es a las matrices lo que 1 es a los escalares.
Supongamos que una matriz r×c M se invierte a lo largo de la diagonal. La nueva matriz resultante se llama matriz transpuesta de la matriz M (Transpose Matrix).
Reglas importantes para transponer matrices: transponer una matriz y luego transponerla nuevamente La matriz resultante será la misma que la matriz original. La fórmula es la siguiente:
Similar a los vectores. , las matrices también pueden ser Cuando se multiplica por un escalar, no es necesario escribir un símbolo de operación en el medio. El resultado después de la multiplicación tiene la misma dimensión que la matriz original, y luego cada componente se multiplica por este escalar. La fórmula es la siguiente:
Cuando el número de columnas de la primera matriz es igual al número de filas de la segunda matriz, las dos matrices se pueden multiplicar entre sí, y el número de filas de la matriz obtenida es igual al número de filas de la primera matriz. El número de columnas es igual al número de columnas de la segunda matriz.
En Shader, los vectores también se pueden multiplicar por matrices. Cuando se multiplica, el vector puede considerarse como una matriz con un número de fila de 1 o un número de columna de 1.
El vector (x, y, z) se puede escribir horizontalmente como una matriz de 1×3, llamada vector fila:
También se puede escribir como una matriz de 3×1 , llamado columna Vector:
El significado geométrico de la multiplicación de vectores y matrices es realizar la transformación espacial de vectores.
En 3D, todas las transformaciones se realizan a través de matrices, incluidas la traslación, rotación y escalado de uso común. Además, las transformaciones entre espacios de coordenadas también se realizan a través de matrices.
Supongamos el vector v = (x, y, z), que se puede expresar como
Supongamos que los dos vectores de coordenadas del sistema de coordenadas del plano son p = (1, 0), q = (0, 1), como se muestra en la figura después de girar en sentido antihorario alrededor del origen:
Las direcciones de rotación en los sistemas de coordenadas izquierdo y derecho son completamente diferentes. El método para juzgar la dirección de. rotación en los dos sistemas de coordenadas: primero extienda las coordenadas Con la mano correspondiente, sostenga el eje de rotación y mantenga la dirección del pulgar consistente con la dirección positiva del eje de rotación. La dirección de los otros cuatro dedos es la dirección positiva. de rotación. Como se muestra en la figura, la dirección que muestra la flecha de arco es la dirección de rotación positiva del sistema de coordenadas de la derecha.
Las direcciones de rotación correspondientes de los sistemas de coordenadas izquierdo y derecho se resumen a continuación:
Aquí solo explicamos la rotación alrededor del eje de coordenadas.
Rote el sistema de coordenadas espaciales alrededor del eje x. La dirección de rotación en el sistema de coordenadas espaciales es como se muestra en la figura:
No todas las coordenadas en el eje x. cambiar desde la dirección positiva del eje x Observando el sistema de coordenadas en la dirección negativa, la rotación del eje y y el eje z es exactamente la misma que la rotación del sistema de coordenadas del plano, como se muestra en la figura:
La matriz de transformación final del ángulo de rotación alrededor del eje x es:
La dirección de rotación del sistema de coordenadas espaciales alrededor del eje y es como se muestra en la figura:
Al observar el sistema de coordenadas desde la dirección positiva del eje y hasta la dirección negativa, la rotación del eje x y del eje z se muestra en la figura:
La dirección de rotación del sistema de coordenadas espaciales alrededor del eje z se muestra en la figura:
Al observar el sistema de coordenadas desde la dirección positiva del eje z hasta la dirección negativa, la rotación del El eje x y el eje y son como se muestra en la figura: