Transformación de Normales

Transcripción

Transformación de Normales
Transformación de Normales
Sistemas Gráficos 66.71
UBA
2013
Sistemas Gráficos 66.71 (UBA)
Transformación de Normales
2013
1 / 10
Definición
Como parte del modelado de una escena, los vértices que definen las
primitivas de los objetos son transformados mediante la matriz de
Modelado.
¿Cómo deben ser transformadas las normales del objeto?
Sistemas Gráficos 66.71 (UBA)
Transformación de Normales
2013
2 / 10
Definición
Como parte del modelado de una escena, los vértices que definen las
primitivas de los objetos son transformados mediante la matriz de
Modelado.
¿Cómo deben ser transformadas las normales del objeto?
Cuando trasladamos, rotamos y escalamos una primitiva, ¿qué debemos
hacer con la normal?
Sistemas Gráficos 66.71 (UBA)
Transformación de Normales
2013
2 / 10
Análisis
Tomemos el triángulo definido por V1 , V2 , V3 cuya normal es
N = (nx , ny , nz )
Sistemas Gráficos 66.71 (UBA)
Transformación de Normales
2013
3 / 10
Análisis
Supongamos que el triángulo es trasladado en T = (0, 2, 0) y asumiendo
que N = (1, 1, 1), si aplicamos la misma matriz de transformación tanto a
los vértices como a las normales la normal transformada NT = (1, 3, 1)
Lo cual repesenta una superficie distinta a la normal N.
Sistemas Gráficos 66.71 (UBA)
Transformación de Normales
2013
4 / 10
Análisis
Supongamos que el triángulo es trasladado en T = (0, 2, 0) y asumiendo
que N = (1, 1, 1), si aplicamos la misma matriz de transformación tanto a
los vértices como a las normales la normal transformada NT = (1, 3, 1)
Lo cual repesenta una superficie distinta a la normal N.
Deja de ser perpendicular al triángulo.
Sistemas Gráficos 66.71 (UBA)
Transformación de Normales
2013
4 / 10
Análisis
Igualmente sucede con una operación de escalado
Sistemas Gráficos 66.71 (UBA)
Transformación de Normales
2013
5 / 10
Matriz Normal
Necesitamos calcular una matriz que solamente aplique las rotaciones.
Sistemas Gráficos 66.71 (UBA)
Transformación de Normales
2013
6 / 10
Matriz Normal
Necesitamos calcular una matriz que solamente aplique las rotaciones.
Esta matriz la denominamos “Martix Normal”.
Se aplica a las normales de un objeto.
Sistemas Gráficos 66.71 (UBA)
Transformación de Normales
2013
6 / 10
Matriz Normal
Si pensamos al triángulo como incluido en un plano homogéneo entonces
se cumple que:
N.Vi = (nx , ny , nz , nw ) (vx , vy , vz , vw ) = 0
En el caso del triángulo esto se cumple para cualquiera de sus vértices:
N.V1 = (nx , ny , nz , nw ) v1x , v1y , v1z , v1w = 0
La condición de perpendicularidad debe mantenerse luego de aplicada la
transformación de modelado.
Sistemas Gráficos 66.71 (UBA)
Transformación de Normales
2013
7 / 10
Matriz Normal
Sea:
Vi vértice del triángulo
N normal del triángulo
MV matriz de Modelado y de Vista (ModelView)
MN matriz Normales
Queremos encontrar MN tal que el producto escalar:
(MN N) (MV Vi ) = 0
Expresado como producto de vectores:
(MN N)T (MV Vi ) = 0
Sistemas Gráficos 66.71 (UBA)
Transformación de Normales
2013
8 / 10
Matriz Normal
(MN N)T (MV Vi ) = 0
N T MNT MV Vi = 0
Entonces surge la condición:
MNT MV = I
MNT = MV −1
MN = MV −1
Sistemas Gráficos 66.71 (UBA)
T
Transformación de Normales
2013
9 / 10
Matriz Normal
La matriz de Normal se calcula en la aplicación, porque es una variable
común a todos los procesadores
Sistemas Gráficos 66.71 (UBA)
Transformación de Normales
2013
10 / 10
FIN
Sistemas Gráficos 66.71 (UBA)
Transformación de Normales
2013
11 / 10

Documentos relacionados