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