INFOGRAFÍA 2 Práctica 3: Bump Mapping Bibliografía Alan Watt, “3D Computer Graphics”, November 1999, pp. 236--238. (Bump Mapping) Objetivo Escribir en C++ un programa que recibe como entrada una imagen 2D (bump map) y que, dada una superficie triangulada abierta, perturbe las normales de la superficie en función de la imagen 2D para lograr el efecto de Bump Mapping. Para conocer las coordenadas de textura de la imagen que se corresponden con cada uno de los vértices de la superficie, es necesario realizar una etapa inicial de asignación de dichas coordenadas (Texture Mapping). Sugerencias -Leer el artículo adjunto con atención. -Leer el código del framework con atención, hasta entender todos los pasos. -Invertir un buen tiempo en planear el código, no ponerse a programar directamente. -Hacer código modular: desglosar la tarea global en partes, hacer funciones para estas partes, llamar a las funciones desde un programa principal corto. -Prestar atención a las anotaciones del fichero “main.cpp” para ver qué es lo que debe implementarse. Pasos Bajar el archivo bump.tar Descomprimirlo con el comando: tar xvfz bump.tar .gz Ahora podemos compilar el código ejemplo: cd bump/src make ­k Ejecutar el siguiente script desde el directorio base: cd .. ./execute.sh prueba Este código crea una superficie triangulada abierta y la renderiza. El código también posee la función textureMapping(), que asigna a cada uno de los vértices de la superficie las coordenadas de textura (u,v) de una imagen de entrada en formato TGA (guardada en la carpeta “data”). Las instrucciones para completar la implementación del Texture Mapping se encuentran en el código. Implementar por completo el algoritmo de Bump Mapping según se explica en el artículo de la bibliografía. Experimentos Probar con diferentes bump maps y deducir los posibles problemas del algoritmo. Entrega Fecha límite: 01/12 a las 8:00AM. No se aceptan entregas tardías, no se hacen excepciones. Defensa: 01/12 a las 12:30 (asistencia obligatoria). Qué se entrega: -Informe: introducción, el algoritmo, explicación del código, experimentos, conclusiones. En formatos html, ps, pdf o rtf. -Código C++, comentado. Formato: ascii.