Você está na página 1de 7

DAIE: Desenvolupament dAplicacions Informtiques a lEnginyeria EUETIB - UPC

Tutorial 4. Luces, materiales y texturas


El objetivo de este tutorial es introducir el uso de las luces, los materiales y las texturas para que las escenas que creemos sean ms realistas y espectaculares. Aunque no podremos utilizar todas las posibilidades que ofrece GLScene, s que veremos las opciones ms importantes. Tambin veremos cmo utilizar algunos efectos atmosfricos. 1. Tipos de luz y tipos de color 2. Texturas 3. Bibliotecas de materiales 4. Efectos atmosfricos

Copyright (c) 2005 Samir Kanaan. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections and no Back-Cover Texts. The most recent version of this document can be obtained from the following web address: http://webon.euetib.upc.es/samir/daie.html.

1. Tipos de luz y tipos de color


Para conseguir una escena realista y/o visualmente atractiva, es imprescindible aprender a manejar la iluminacin, los colores de los objetos y su reaccin a la luz. Al trabajar en 3D, lo primero que hay que saber respecto a la luz es que hay cuatro tipos de luz ; pero hay que tener en cuenta que la divisin de la luz en esos tres tipos no se debe a la naturaleza de la propia luz, sino a la forma en la que la reflejan los objetos. En los siguientes ejemplos se muestra el efecto de los distintos tipos de iluminacin y sus combinaciones sobre un cubo.

En este primer caso, no hay ninguna luz y el cubo se ve completamente negro, slo se percibe la silueta.

Aqu hay una iluminacin ambiental, que ilumina toda la escena por igual, independientemente de la situacin y distancia de los objetos a la fuente de luz. La imagen resultante es plana.

La iluminacin difusa es la ms comn; los objetos reflejan una parte de la luz que incide en ellos, lo que depende de la situacin de la luz e ilumina cada punto de una forma distinta, dando sensacin de volumen.

La iluminacin especular tiene un comportamiento similar a la difusa, pero con la diferencia de que la luz se refleja en forma de brillos, como pueden ser los de los metales o los cristales.

Por ltimo, los objetos pueden tener una cierta cantidad de luz de emisin, que como su nombre indica es emitida por ellos sin necesidad de ninguna fuente de luz. Esta luz emitida no ilumina a los objetos circundantes.

En esta primera combinacin de luces tenemos luz ambiente azul y luz difusa amarilla; las zonas iluminadas directamente tienen verde (azul + amarillo), y la zona trasera queda azul, el color ambiente.

Al aadir a la combinacin anterior luz especular plateada, se observa un brillo en la cara iluminada; da la sensacin de ser un objeto ms duro que el anterior, ms metlico.

En esta ltima combinacin hay iluminacin de emisin azul y especular roja, dando la combinacin violeta en la cara iluminada.

Cuando aadimos una fuente de luz a una escena, es posible configurar el color de su luz ambiental, difusa y especular (por defecto la primera y la ltima son negras y la difusa blanca). Digamos que es posible elegir qu tipos de luz emite una fuente, y eso condicionar la forma en que esa fuente de luz afectar a los objetos que alcance.

Por otra parte, para que los objetos de la escena reaccionen frente a una luz, deben tener un color. Los colores de un objeto corresponden a los tres tipos de luz ambiente, difusa y especular, y gobiernan la forma en la que el objeto se ve cuando le llega luz de cada tipo. Un objeto puede tener color difuso azul pero color especular blanco, y se vera azul con brillos blancos (siempre que le llegara luz blanca tanto difusa como especular). Para que un determinado tipo de color se vea en un objeto, tiene que llegarle luz de ese tipo. Por otra parte, los objetos pueden tener un color de emisin, que es el nico que no necesita ninguna luz para poderse ver. Antes de hacer pruebas con los colores de los objetos hay que hacer una ltima distincin. En GLScene la superficie de los objetos es un elemento sin grosor y con dos caras: la exterior, que es la que vemos, y la interior. En general nos interesar trabajar con la exterior, aunque en algunos casos tambin es necesario acceder a las propiedades de la interior. Por esa razn GLScene distinguire entre FrontProperties (exterior) y BackProperties (interior). Las propiedades relacionadas con el aspecto de un objeto se encuentran englobadas en la propiedad Material, que a su vez contiene las FrontProperties y BackProperties recin explicadas y otras propiedades interesantes, como Texture, que utilizaremos en el prximo apartado. Vamos a intentar reproducir todas las configuraciones de luz del principio del tutorial. Para ello necesitaremos una luz en la que iremos activando los diferentes tipos de luz en color blanco, y un cubo (u otro objeto) en el que habr que activar tambin cada tipo de color.

2. Texturas
Adems de cambiar los colores de los objetos, al trabajar en 3D es posible aadir texturas, o lo que es lo mismo, imgenes que representan materiales y que se utilizan para recubrir los objetos y as darles una apariencia ms realista: piedra, madera, tela, etc. Dentro de la propiedad Material se encuentra la propiedad Texture, que es la que nos permite asignar una textura a un objeto y configurar la forma en que se aplicar la textura al objeto.

Aunque como veis hay muchas opciones dentro de Texture, las ms importantes son Disabled, que indica si la textura est desactivada, e Image , que es la que nos permite cargar el archivo con la imagen de la textura. NOTA: cuando en un programa utilicis recursos adicionales, como por ejemplo las imgenes con las texturas, guardadlos en la misma carpeta que el resto del programa (o en una subcarpeta) y copiadlos junto con el programa, o las texturas no aparecern si ejecutis el programa en otro ordenador. Si tomamos una escena inicial con un cubo y una luz blanca, y al cubo le ponemos como textura el fichero metal.bmp , incluido en el programa de ejemplo de este tutorial, obtendremos algo como esto:

NOTA: la imagen utilizada debe estar en formato bmp, si no suele dar bastantes problemas. Lgicamente, hay que poner Disabled a False para que la textura no est desactivada.
5

3. Bibliotecas de materiales
Cuando creemos una escena ms compleja, ser habitual que los materiales se utilicen en varios objetos. Aunque es posible ir elemento a elemento asignndoles el material deseado, esto tiene tres inconvenientes: en primer lugar, resulta muy tedioso el ir repitiendo las asignaciones de material para cada objeto; en segundo lugar, si en algn momento decidimos cambiar las caractersticas de un material (hemos mejorado la textura de las paredes, o hemos encontrado una combinacin mejor de colores para las piezas de la carrocera del coche), tenemos que ir cambiando el material objeto a objeto; en tercer lugar, repetir una misma textura en diferentes objetos supone un gasto de memoria innecesario. La solucin a estos tres problemas la proporciona un nuevo componente, la biblioteca de materiales (GLMaterialLibrary), que permite definir una coleccin de materiales y utilizar cada uno de ellos en tantos objetos como queramos.

Para utilizar una biblioteca de materiales slo hay que crear un control de este tipo y hacer doble click en l; aparece una ventanita que permite ir aadiendo materiales, de los que podemos definir todas sus caractersticas. Para utilizar un material definido en una biblioteca slo hay que seleccionar el objeto en cuestin, referirse a la biblioteca en Material>MaterialLibrary y entonces elegir el material que queramos mediante Material>LibMaterialName .

4. Efectos atmosfricos
La creacin de efectos atmosfricos en 3D permite producir sensaciones bastante realistas de una forma relativamente sencilla. Aunque se pueden consegui r diferentes efectos, vamos a utilizar uno de los ms sencillos: la niebla. Partiendo de la escena anterior, seleccionemos el visor y, de ah, despleguemos la opcin Buffer; para activar la niebla hay que: Poner FogEnable a True. Entrar en FogEnvironment, y dentro de sta, Elegir un FogColor (por ejemplo clrLimeGreen) Mediante FogStart y FogEnd indicar dnde empieza y dnde acaba la niebla (por ejemplo, 0 y 25).

El resultado de activar los anteriores parmetros es el que se ve a continuaci n. Con ms objetos en una escena y distancias mayores, el efecto de la niebla resulta ms evidente, y en todo caso conseguir un buen efecto requiere jugar con las distancias y el inicio y final de la niebla, as como con FogMode , que controla cmo afecta la niebla segn la distancia.

Você também pode gostar