Red de conocimiento informático - Computadora portátil - 3. Creación de instancias: dibuja 100 cuadrados.

3. Creación de instancias: dibuja 100 cuadrados.

(1) Preparar el búfer de atributos de vértice

(2) Calcular la matriz mvp

(3) Pasar los datos al sombreador de vértices y al sombreador de fragmentos. para dibujar gráficos

Coordenadas de cuña (x, y, z, w), diseñadas para ser compatibles con operaciones de traslación de puntos, permitiéndonos utilizar las mismas fórmulas para calcular puntos y direcciones.

Divide (x, y, z, w) por w al mismo tiempo para obtener las coordenadas (x/w, y/w, x/w)

Coordenadas del cuadrado Zhi son principalmente compatibles con puntos Operación de traducción, la dirección de traducción no tiene significado en el espacio:

Rotar el punto (x, y) al punto (x', y')

Ese es el Orden del problema de multiplicación de matrices, dejemos que la matriz de rotación sea R. La matriz de traslación es T

En el sistema de coordenadas xy, hay un punto P(x0, y0), que se expresa como: Los valores del punto P(x0, y0) relativos a el origen del sistema de coordenadas xy son x0 e y0.

Después de convertir al sistema de coordenadas x'y', se convierte en P(x0', y0'), expresado como: punto P(x0', y0') relativo al sistema de coordenadas x'y' Los valores del origen son x0' e y0'

Las posiciones relativas entre ellos permanecen sin cambios, pero los métodos de representación son diferentes.

Esto es lo mismo que Xiao Ming diciendo que la copa está a mi derecha, o Xiao Tang diciendo que la copa está a mi izquierda. La siguiente es la conversión de (la copa está a mi derecha) a (la copa está a mi izquierda)

(1) Para convertir la descripción del objeto de coordenadas xy a coordenadas x'y', es Es necesario crear una Transformación x del eje 'y' superpuesto al eje xy, lo que requiere dos pasos:

Por lo tanto, esta es una rotación después de la traslación: M = R * T

Ejemplo: Hipótesis El ángulo entre el eje x' y el eje x es de 45 grados, y el ángulo entre el eje x' y el eje x es de 45 grados. El ángulo entre el eje x' y el eje x es de 45 grados. El origen de coordenadas del sistema x'y' es (2, 2). Transforma el punto P (1, 1) al sistema x'y'. La transformación se puede obtener a partir de la relación geométrica. El valor de las coordenadas del punto posterior P es (-√2, 0)

(2) Los elementos de cualquier matriz de rotación se pueden expresar como un conjunto de vectores unitarios ortogonales. de los elementos

Matriz de rotación La matriz inversa de se puede expresar como un conjunto de vectores unitarios ortogonales transponiendo la matriz o evaluándola tomando el valor negativo del ángulo de rotación. O tome un valor negativo para el ángulo de rotación

(1) Ángulo del eje: gire un ángulo determinado alrededor de un eje determinado K (x, y, z) (vector). Es decir, el eje de coordenadas original {A} se gira un ángulo dado alrededor del vector K (x, y, z) dado para obtener el sistema de coordenadas {B}

Nota: Vector K ( x, y, z ) es el vector unitario

Su matriz de rotación es:

(2) También se puede explicar así: el vector V gira un ángulo dado alrededor el vector K, y el vector V(rot)

Derivación de la fórmula: ver: /video/BV1h7411c7zK?from=searchamp;seid=5987430286330119296

Derivación de la fórmula (TODO)

Implica: ángulo de Euler, cuatro La relación entre elementos, matrices de rotación y ángulos de eje

De la figura anterior, podemos saber:

Transformar las coordenadas del objeto en coordenadas mundiales:

Transforma las coordenadas mundiales en coordenadas oculares

Transforma las coordenadas oculares en coordenadas de recorte

Transforma las coordenadas superiores e inferiores del objeto a t ( superior) y b (inferior) respectivamente, y las coordenadas delantera y trasera an (cerca) y f (lejos).

Un cuadrado con coordenadas izquierda y derecha l (izquierda) y r (derecha):

(x, y, z, 1) y (kx, ky, kz, k!=0z) y (xz, yz, z^2, z =0) en el espacio tridimensional!

(1) Para cualquier punto en el plano n, la componente z de sus coordenadas no cambia

(2) Para cualquier punto en el plano f, la componente z de sus coordenadas no ha cambiado

En la siguiente figura, podemos ver que existe una relación triangular similar entre las coordenadas (x, y, z) y (x', y', z')

La matriz de proyección es una proyección en perspectiva, que comprime el cuerpo trapezoidal en un cuerpo rectangular, y luego es la proyección ortogonal, que proyecta el cuadrado al origen y lo comprime en un cuadrado con una longitud de lado de 2 (-1); , 1)

¿Qué son los valores negativos en OpenGL? (TODO)

¿Por qué OpenGL tiene valores negativos? (TBD)

Dadas fovY, nearZ y la relación de aspecto (16:9 o 4:3, etc.), puedes encontrar las coordenadas superior, inferior, derecha, izquierda, frontal y posterior del cubo

t(arriba), b(abajo) = - t, r(derecha), l(izquierda) = -r, n(cerca de Z), f(lejos de Z)

t(arriba ), b(abajo) = -t, r(derecha), l(izquierda) = -r, n(cerca de Z), f(lejos de Z)

t(arriba), b(abajo) = - t, n(nearZ), f(farZ).(farZ)

Luego sustituya la fórmula de la matriz de proyección