Visualización y Realismo: Problemas Capı́tulo 5. Carlos Ureña Almagro Dpt. Lenguajes y Sistemas Informáticos ETSI Informática y de Telecomunicación Universidad de Granada Curso 2012-13 Visualización y Realismo: Problemas Capı́tulo 5. Problema 5.1 Supongamos que se usa la técnica del mapa de perturbación de la normal para darle la apariencia rugosa a una superficie lisa: I Indica si es necesario modificar algo en el algoritmo de evaluación del MIL sencillo visto en teorı́a I Indica si es necesario modificar algo en el algoritmo de ray-tracing, en el caso en que la superficie rugosa sea especular perfecta (los cambios se refieren a cambios adicionales a sustituir la normal original por la normal modificada) Autor: Carlos Ureña. Fecha creación: May 23, 2013. Página: 2/11. Visualización y Realismo: Problemas Capı́tulo 5. Problema 5.2 Imagina una escena con 4 fuentes de luz puntuales y 6 esferas visibles, que se sintetiza por ray-tracing. La evaluación del modelo de iluminación local, para cada fuente de luz lleva el mismo tiempo que un test de intersección rayo-esfera. Calcula que fracción de tiempo se emplea en cálculo de intersecciones y que fracción se emplea en evaluación del modelo de iluminación local. Suponer que las esferas son totalmente difusas y ocupan el 50% de los pixels de la pantalla. Autor: Carlos Ureña. Fecha creación: May 23, 2013. Página: 3/11. Visualización y Realismo: Problemas Capı́tulo 5. Problema 5.3 En el algoritmo de ray-tracing existe un nivel de recursión máximo a partir del cual se devuelve el color negro, y que previene el problema que supondrı́a (en cuanto a tiempo de calculo y memoria) un excesivo número de niveles de recursión. Existe una técnica mejor que consiste en acabar la recursión cuando la contribución (del sub-árbol de rayos que queda por evaluar) al color del pixel está afectada de un factor de reflectividad muy bajo (inferior a un umbral prestablecido). Esto permite acabar con la recursión antes si las reflectividades son muy bajas. Indica que modificaciones concretas harı́as en el algoritmo de ray-tracing para implementar esto. Autor: Carlos Ureña. Fecha creación: May 23, 2013. Página: 4/11. Visualización y Realismo: Problemas Capı́tulo 5. Problema 5.4 Escribe el algoritmo que permite obtener las coordenadas (número de fila y columna) de un pixel de una de las seis imágenes de un mapa de entorno rectangular El algoritmo tiene como dato de entrada el vector reflejado r = (r x , ry , rz ) (que suponemos de longitud unidad) que expresa la dirección reflejada o simétrica respecto del vector hacia el observador v Es necesario suponer que las texturas se asocian a las caras de un cubo cuyos lados tienen 2 unidades de longitud, y cuyo centro es el origen de coordenadas, (0, 0, 0). El tamaño de las texturas es n x × ny pixels (todas el mismo). Cada textura es una matriz de ternas RGB. Autor: Carlos Ureña. Fecha creación: May 23, 2013. Página: 5/11. Visualización y Realismo: Problemas Capı́tulo 5. Problema 5.5 Suponamos una proyección perspectiva, en la cual el observador está situado en el origen de coordenadas, mirando hacia la parte positiva del eje Z. El plano de proyección es perpendicular al eje Z, y está a la distancia 1 del observador (es el plano Z = 1). Supongamos que se proyecta un segmento cuyos dos extremos tienen de coordenadas ( x, z) (−1, 2) y (3, 6) (las coordenadas Y son nulas). Verifica si el punto central al segmento se proyecta en el punto central del segmento entre las proyecciones de los dos vértices originales. A la vista del resultado razona si es exacta, o no lo es, la interpolación lineas de valores de Z, de color o de coordenadas de textura que se usa en Z-buffer. Autor: Carlos Ureña. Fecha creación: May 23, 2013. Página: 6/11. Visualización y Realismo: Problemas Capı́tulo 5. Problema 5.6 En el problema anterior describe como podemos solucionar el problema asociado a la no exactitud de la interpolación lineal de los valores en Z. Autor: Carlos Ureña. Fecha creación: May 23, 2013. Página: 7/11. Visualización y Realismo: Problemas Capı́tulo 5. Problema 5.7 Supón que se quiere implementar el algoritmo de sombras arrojadas por Z-buffer. Supón que conocemos la posición p del punto en el cual se quieren calcular las sombras, la posicion l del punto donde está la fuente de luz, ası́ como el origen o y los vectores u (horizontal) y v (en vertical) que definen la posición del plano de visión asociado al Z-buffer de sombras. Suponemos que el número de pixels de ese Z-buffer es n x × ny . Escribe el pseudocódigo del algoritmo que sirve para saber si el punto p está en sombra o iluminado por la fuente de luz. (suponer que el Z-buffer es una matriz de valores reales que expresan distancias en coordenadas del mundo) Autor: Carlos Ureña. Fecha creación: May 23, 2013. Página: 8/11. Visualización y Realismo: Problemas Capı́tulo 5. Problema 5.8 Describe los problemas que pueden surgir cuando se usa el Z-buffer para sombras arrojadas, y describe como podemos modificar el pseudocódigo del problema anterior o los parámetros del mismo para aliviar o eliminar dichos problemas. Autor: Carlos Ureña. Fecha creación: May 23, 2013. Página: 9/11. Visualización y Realismo: Problemas Capı́tulo 5. Problema 5.9 Supón que queremos evaluar el MIL en un punto p de una superficie con normal n. Conocemos también el vector u, tangente a la superficie en p en la dirección en las que crece la coordenada u de textura, ası́ como el vector v, tangente en la dirección en la que crece la coordenada v de textura. Tenemos una textura (de valores reales entre 0 y 1, con n x × ny pixels que queremos usar para hacer perturbación de la normal. Escribe el pseudocódigo de cálculo de la normal modificada n0 (tener en cuenta que los módulos de u y v no tienen que ser la unidad, sino que son proporcionales al ritmo de variacion de las coordenadas de textura, en concreto son derivadas vectoriales). Autor: Carlos Ureña. Fecha creación: May 23, 2013. Página: 10/11. Visualización y Realismo: Problemas Capı́tulo 5. fin de problemas del capı́tulo 5. Autor: Carlos Ureña. Fecha creación: May 23, 2013. Página: 11/11.