sintesis de fundamentos de imagen 3D un enfoque practico a blender

Page 1






Titulo Síntesis de fundamentos de imagen en 3D un enfoque práctico a blender Diseño Jason Ojeda Primera edición 2015 2015 Centro de excelencia de software libre. Av. Carabobo con carrera 18. 18-45 San Cristóbal. Tel. 0276 3471777 Fax. 0276 3479823. e-mail: info@softwarelibre.com I.S.B.N: 987-34-2345-7264-810-4 Todos los derechos reservados. Queda prohibida la reproducción total o parcial de esta obra, sea por medios mecanicos o electrónicos, sin la debida autorizacion por escrito del editor. Imagen de portada: Entorno gráfico del programa blender.



Indice 6

Introducción

7 Introducción a la síntesis 3D 8 Introducción al Software Libre 12 El ciclo de producción 3D 19 Herramientas Libres para Síntesis 3D 22 Aplicación Profesional de Blender

28 Modelado 29 Introducción al Modelado 3D 42 Técnicas de Modelado 3D 54 Operadores Básicos 76 Subdivisión y Modo de Esculpir 83 Metabolas y Superficies Implícitas 85 Otras Herramientas y Técnicas

90 91 101 115

Materiales, Texturas e Iluminación Introducción a la Iluminación de Escenas Tipos de Fuentes de Luz y Parámetros Iluminación Práctica de una Escena



Introducción

E

n los últimos años se ha experimentado un crecimiento muy importante en el mundo del diseño por computador, y en concreto de la síntesis de imágenes tridimensionales. Las necesidades de personal cualificado en este sector son notables y continúan creciendo unidas al cada día mayor ámbito de aplicación del diseño 3D. Estas necesidades, igualmente patentes desde hace años en el mundo del Software Libre, han sido cubiertas con aplicaciones de calidad y uso profesional. En esta sesión se estudiarán los conceptos clave para entender en qué consiste el movimiento del Software Libre, junto con el ciclo de trabajo en producciones 3D empleando herramientas libres como Blender, Yafray, Gimp...

6


1. Introducción a la síntesis 3D

E

n los últimos años se ha experimentado un crecimiento muy importante en el mundo del diseño por computador, y en concreto de la síntesis de imágenes tridimensionales. Las necesidades de personal cualificado en este sector son notables y continúan creciendo unidas al cada día mayor ámbito de aplicación del diseño 3D. Estas necesidades, igualmente patentes desde hace años en el mundo del Software Libre, han sido cubiertas con aplicaciones de calidad y uso profesional. En esta sesión se estudiarán los conceptos clave para entender en qué consiste el movimiento del Software Libre, junto con el ciclo de trabajo en producciones 3D empleando herramientas libres como Blender, Yafray, Gimp...

Tabla de contenidos: 1.1. Introducción al Software Libre 1.2. El ciclo de producción 3D 1.3. Herramientas Libres para Síntesis 3D 1.4. Aplicación Profesional de Blender

7


1.1. Introducción al Software Libre

H

abitualmente existe confusión en lo referente al software libre; principalmente debido a que se confunde libertad con precio. Entendemos como software libre aquel que se basa en el cumplimiento de al menos, cuatro libertadres básicas: Libertad para utilizar el programa para lo que quieras. Libertad para estudiar el el programa (para poder realizar un estudio del programa es necesario disponer del código fuente; que es una descripción formal del programa en un lenguaje entendible por el programador). Libertad para redistribuir el programa, y compartir sus beneficios con quien tú quieras. Libertad para mejorar el programa y distribuir sus mejoras.

Figura 01. El dúo dinámico (GNU/Linux).

8


Si leemos con atención las libertades básicas anteriores, veremos que en ningún caso se menciona nada sobre el precio del software. Para que un programa sea considerado Software Libre, debe cumplir las condiciones anteriores. Existen multitud de licencias que son consideradas válidas para Software Libre. Una de ellas (y quizás la más extendida) es la GNU GPL (Licencia Pública General) de la FSF (Free Software Foundation). Es importante no confundir el software gratuito (habitualmente denominado Freeware), con el software libre.

Las licencias Freeware no permiten estudiar y mejorar el programa (por no disponer del código fuente). Esto es un impedimento crítico, ya que no permite la generación de software basado en estos programas, e impide el desarrollo económico local. Tampoco es correcta (aunque sí está muy extendida) la distinción entre Software Comercial y Software Libre. Un programa Libre puede ser comercial; se puede obtener un beneficio económico de él, y es totalmente lícito (y recomendable) ganar dinero realizando adaptaciones y dando soporte de este software. Es más correcto denominar Software Privativo al software que no es libre, porque nos priva de nuestras libertades básicas. Linux es el núcleo de un Sistema Operativo que se distribuye bajo una licencia de Software Libre. En realidad, cuando instalamos un Linux, estamos instalando el núcleo del Sistema Operativo y un conjunto de utilidades que forman parte del proyecto GNU (GNU is Not Unix). Es más correcto hablar de distribuciones de GNU/Linux, ya que están formadas por el núcleo del Sistema Operativo y las herramientas libres de

9


GNU. Existen muchas distribuciones de Linux; la mayoría basadas en Red Hat o Debian. Entre ellas podemos destacar Fedora (Red Hat), Suse, Mandriva (Mandrake), Debian, Ubuntu (basada en Debian), MoLinux (basa en Ubuntu), etc... Todas tienen un núcleo de Linux común, y se diferencian únicamente en los asistentes para la instalación del sistema y la configuración de periféricos. Una aplicación de GNU/Linux debería funcionar en cualquiera de estas distribuciones. Se puede encontrar multitud de Software Libre para otros sistemas operativos que no son Linux. De hecho, la mayoría de las aplicaciones libres de GNU/Linux se pueden encontrar también en Windows y Mac entre otros. Existen multitud de razones por las que es conveniente utilizar exclusivamente (en la medida de lo posible) software libre, entre otras podemos citar: El software libre favorece el Desarrollo Económico Local: Las inversiones, en vez de realizarse “alquilando” licencias a grandes multinacionales, se realizan en empresas de desarrollo nacionales. Esto es claramente positivo para la comunidad. El software libre favorece la Innovación: No se repite mil veces lo mismo; los programadores sólo se ocupan de programar nueva funcionalidad. El software libre es una clave Competitiva: Utilizando software libre los usuarios siempre pueden estar actualizados, normalmente con coste cero. No hay problemas de licencias utilizando Software Libre.

10


El software libre nos hace ser más libres: No existen formatos cerrados o propietarios. Las aplicaciones pueden compartir sus datos sin problema. Cada usuario puede utilizar el software que desee y, con seguridad, existirán conversores libres entre formatos de ficheros.

Figura 02. Linux, un núcleo de SO libre

11


1.2. El ciclo de producción 3D

P

odemos definir el ciclo de trabajo en producciones 3D estableciendo tres grandes fases de producción, cada una de las cuales tendrá asociadas un conjunto de tareas (algunas de estas tareas pueden no estar presentes en ciertos proyectos). Las fases de producción suelen completarse secuencialmente, y normalmente no hay que ejecutar tareas de una fase anterior, cuando ésta se ha completado. Las tareas dentro de una fase de trabajo siguen un orden aunque ajustes en tareas posteriores pueden requerir cambios en tareas que estaban completas. Estas tareas, en grandes proyectos, suelen desarrollarse en paralelo. Pre-producción La fase de preproducción comienza habitualmente con la escritura del guión. Tanto en pequeños como en grandes proyectos, suele ser la primera tarea, que será transformado visualmente en el storyboard. En pequeños proyectos suele estar clara desde el principio la magnitud de todas las etapas, mientras que en grandes proyectos es habitual encontrarse con limitaciones técnicas que requieran un cambio en el guión o en el storyboard. Con el guión definido, el equipo de desarrollo visual, habitualmente formado por ilustradores, establecen la dirección visual y el estilo del proyecto. Se eligen los colores clave que complementarán visualmente las metas de cada parte de la historia. De igual forma, se desarrollan las hojas de personajes, con los bocetos del aspecto que tendrán los personajes que serán incluídos en el proyecto. 12


Figura 03. Fases generales del proceso de síntesis 3D.

La fase de preproducción finaliza con la construcción del Storyboard. Mediante el Storyboard trasladamos el guión a imágenes. Estas imágenes serán tratadas como unidades que la fase de producción pueda gestionar como bloques de trabajo. El Storyboard deberá centrarse en cómo contar la historia, composición de cámara, acciones... sin prestar atención a detalles técnicos. Aunque hay algunos convenios más o menos establecidos, cada autor define su propio formato de Storyboard. A menudo incluye notación para indicar los movimientos de cámara y dar así más riqueza a la narración visual. 13


En el presente curso no se estudiarán de forma explícita las fases relativas a la pre-producción, aunque se incluirán referencias y guías para construir objetos y personajes tridimensionales que sean fácilmente adaptables al resto de etapas de producción.

Figura 04. Hojas de personajes preliminares del proyecto Peach (Big Buck Bunny) de la Blender Foundation

14


Producción En la etapa de producción se llevan a cabo las tareas más costosas del proyecto. Esta etapa está formada por una serie de fases que pueden o no ser necesarias (ver Figura 03). Sin embargo, hay una serie de fases clave que serán necesarias en prácticamente todos los proyectos de representación (ver Figura 05) que enunciaremos a continuación.

Figura 05. Las cinco etapas clave del proceso de producción: Modelado, Texturizado, Iluminación, Animación y Render.

Etapas básicas del proceso de producción: Modelado: En esta etapa se obtiene una representación tridimensional de los objetos que intervendrán en la escena. Existen multitud de técnicas y herramientas de modelado. Dependiendo de la forma a modelar y el acabado que se desee obtener, será mejor emplear una u otra. En la sesión 2 (Modelado) de este curso estudiaremos varias técnicas y herramientas de modelado disponibles en Blender.

15


Materiales y Texturas: Mediante los materiales, aplicamos propiedades básicas de reflexión de la luz, color, transparencia a las superficies de nuestros modelos. El material se aplica de forma constante a lo largo de toda la superficie del modelo. Las texturas permiten variar las propiedades del material. En la sesión 3 (Materiales e Iluminación) veremos las propiedades de materiales, técnicas de mapeado de texturas y parámetros modulables. Iluminación: En la búsqueda de la generación de imagen fotorrealista un punto clave es la simulación de la luz. Según las interacciones de la luz que sea capaz de simular el método de render que se utilice hablamos de iluminación global si se calcula la iluminación indirecta que proviene del rebote de la luz en los objetos de la escena, o de iluminación local si únicamente se tiene en cuenta la aportación directa de las fuentes de luz. En la sesión 3 (Materiales e Iluminación) estudiaremos los modelos de iluminación y las técnicas de iluminación de tres puntos. Animación: Tanto las herramientas de animación 2D como las 3D suelen emplear curvas de interpolación (en Blender se denominan curvas IPO) para calcular la posición del parámetro a animar (ya sea posición de un objeto, propiedades de material, etc...) entre frames clave. De esta forma, el usuario de la aplicación únicamente debe identificar esos fotogramas clave, establecer los valores de las propiedades en esos puntos y el software se encarga de calcular los valores intermedios. En animación de personajes suelen emplearse esqueletos internos de animación. Así, el animador establece las rotaciones de estos huesos y el programa calcula la deformación de debe aplicar a la superficie exterior. En la sesión 4 (Animación) se estudiarán los métodos básicos de animación mediante curvas IPO, así como la introducción de algunas técnicas avanzadas basadas en simulaciones físicas y animación jerárquica mediante esqueletos. 16


Render: En este paso se realiza el cálculo de la imagen 2D (de tipo mapa de bits, o imagen Raster) correspondiente a la escena que hemos definido. El motor de Render tiene en cuenta todos los parámetros definidos en las etapas anteriores, y trata de realizar una simulación física (más o menos aproximada, según el método de renderizado a utilizar) de la interacción de la luz en la escena. Existen varios métodos de render, siendo norma habitual que a mayor realismo, mayor tiempo de cómputo. El tiempo de render es un parámetro importantísimo a tener en cuenta a la hora de afrontar proyectos complejos. En la sesión 5 (Render y Postproducción) estudiaremos algunos métodos de render y su utilización desde Blender. En concreto utilizaremos el método de RayTracing, AmbientOcclusion, Radiosidad (Radiosity) y PathTracing mediante el trazador de rayos libre Yafray. Post-producción La etapa de postproducción toma como entrada las imágenes generadas en la etapa de render de la fase anterior y las compone, aplicándoles una serie de filtros y modificadores antes de generar las imágenes definitivas en el formato de publicación final. Estas imágenes suelen emplearse como capas para la composición del fotograma final. Algunos efectos (como profundidad de campo, motion blur, etc.) es menos costoso generarlos independientemente y componerlos mediante el uso de capas. Además, si la cámara no realiza desplazamiento y el fondo es estático, puede suponer un importante ahorro de tiempo de generación. En esta fase además se suelen retocar cada una de las capas que formarán el fotograma final, ajustando niveles, brillo, contraste, etc. (ver Figura 6). En este punto suelen incorporarse también efectos tales como 17


sistemas de partículas (nieve, lluvia...), iluminación (flares), etc. Blender dispone de un potente secuenciador de video y un sistema de nodos con el que pueden ajustarse los parámetros de cada capa y realizar la composición final. Veremos algunas de las capacidades de Postproducción de Blender en la sesión 5 (Render y Postproducción) de este curso.

Figura 06. Composición en capas.

18


1.3. Herramientas Libres para Síntesis 3D

H

ace varios años que se solventaron los problemas que tenían los diseñadores gráficos para utilizar software libre en la realización de trabajos profesionales. Con la creación de GIMP se permitió acceder a las posibilidades de edición fotográfica similares a la de paquetes privativos como Adobe Photoshop. El mercado de la imagen 3D tuvo que esperar varios años más hasta que Blender se liberó. Actualmente existen multitud de herramientas libres (muchas de ellas multiplataforma) relacionadas con el diseño gráfico y la imagen 3D. Algunas de las más famosas pueden verse en la siguiente tabla, que detallaremos a continuación. Software Privativo Suite 3D Autodesk 3DS Max, Maya, Softimage|XSI Modelado IZWare Nendo Motor de Ren- Maxwell, MentalRay, Brazil, der POV-Ray, Indigo Retoque Foto- Adobe Photoshop, Corel Photográfico paint Maquetación Adobe PageMaker, QuakXPress Ilustración Adobe Illustrator Vectorial Edición Soni- Cubase do Edición DVD DVD Editor Montaje Video Premiere, Final Cut

Software Libre Blender Wings 3D Yafray, LuxRender GIMP Scribus Inkscape Audacity DVD Author Cinelerra, Blender

19


Blender: Es la suite 3D libre multiplataforma por excelencia. Estudiaremos sus características básicas a lo largo del curso, y en la siguiente subsección se analizarán algunos hitos conseguidos en los últimos años. Wings 3D: Disponible para varios sistemas operativos, utiliza la misma aproximación que Nendo para el modelado de objetos 3D. Define un interfaz de usuario muy sencillo e intuitivo. Es muy empleado para modelado en baja poligonalización. Yafray: Potente motor de Render libre multiplataforma basado en el método de PathTracing, con soporte de mapas de fotones. Este es el único motor externo integrado en Blender que ofrece resultados de calidad profesional. LuxRender: Motor libre multiplataforma, basado en el creado para el libro Physically Based Rendering. Se basa en el método de transporte de luz de metrópolis, y ofrece resultados comparables a motores privativos que igualmente implementan este potente algoritmo. Blender dispone de scripts de exportación para el formato de LuxRender. GIMP: Programa de Manipulación de Imágenes de GNU, disponible en casi la totalidad de distribuciones de GNU/Linux. Cuenta con una gran comunidad de usuarios. Es muy aconsejable dominar su manejo para la creación y adaptación de texturas (que posteriormente se emplearán en proyectos de síntesis 3D) y para corregir pequeños errores que puedan existir en la escena y que resulte más sencillo corregir en postproducción. Cinelerra: Editor no lineal de vídeo para GNU/Linux. Con un interfaz de usuario similar al de otras aplicaciones privativas, permite realizar 20


multitud de transiciones y mezclado de canales de video y audio. Blender dispone también de un editor de video no lineal integrado que, para la mayoría de los proyectos, es suficientemente potente. Además, si unimos el soporte de texturas animadas de Blender, cualquier efecto de composición imaginable puede ser realizado. Scribus: Potente aplicación de maquetación para GNU/Linux. Están trabajando para mejorar el soporte con múltiples páginas. Cuenta con un buen soporte de colores, tipografías y formatos de ficheros gráficos. Inkscape: Basada en Sodipodi, Inkscape se ha convertido en la aplicación de diseño vectorial por excelencia. Cuenta con una comunidad de desarrolladores muy activa y cada pocos meses incorporan nuevas mejoras al programa. Blender puede importar las rutas vectoriales definidas en formato SVG de Inkscape. Audacity: Editor de sonido libre multipista y multiplataforma. Cuenta con gran cantidad de filtros para eliminar ruidos, ajustar niveles, etc. Permite trabajar en varias escalas de tiempo, incluso definir puntos de sincronización en frames concretos, lo que permite montar el audio de cualquier producción 3D de una forma muy cómoda y precisa. DVD Author: Herramienta para la autoría de DVDs muy potente; permite crear menús con botones, animaciones, etc. Necesita la escritura de un XML con la estructura del DVD. Existen varios front-end para facilitar su manejo, como Polidori o QDVD Author. Esta lista parcial resume algunas de las herramientas más conocidas en el mundo de la producción de imagen digital con software libre, remarcando que “No están todas las que son, pero son todas las que están”. 21


1.4. Aplicación Profesional de Blender

H

an pasado casi 10 años desde que Not a Number, la compañía liderada por Ton Roosendaal, presentara la primera versión de Blender en la conferencia internacional Siggraph. Inicialmente planteada como una herramienta freeware fue posteriormente liberada en 2002 por la comunidad de usuarios en una espectacular colecta de fondos por parte de la Blender Foundation. En tan sólo siete semanas, los usuarios de Blender donaron un total de 100.000 euros para liberar la herramienta. En octubre de 2002 se liberó la primera versión de este programa bajo licencia GPL. Desde entonces, el número de usuarios y prestaciones de Blender no ha parado de crecer hasta convertirse, según el número 92 de la revista 3D World, en la herramienta gráfica más instalada del mundo, situándose por encima de 3D Studio MAX (en tercer puesto), Lightwave (en sexta posición) y Maya (décimo puesto). Más de 1.800 millones de descargas en 2006 convierten a Blender en una de las herramientas libres más demandadas del mundo. Tras estas impactantes cifras se esconde un software para producción 3D con posibilidades profesionales. Su uso en proyectos cinematográficos (fue utilizado en Spiderman II en la fase de composición de escenas y estudio de cinemática) se ha vió reforzado por la creación de Elephants Dream, la primera película del mundo realizada bajo licencia de código abierto en la que todos los ficheros empleados en su desarrollo pueden ser descargados de la web oficial del proyecto. Con idéntica filosofía nació el proyecto Peach del que surgió otra película libre titulada Big Buck Bunny, cuyos ficheros son igualmente descargables de la web oficial del proyecto.

22


Elephants Dream

Big Buck Bunny

Fotograma de la pelĂ­cula Elephants Dream.

Fotograma de Big Buck Bunny.

23


En otros ámbitos de aplicación destacamos el desarrollo de videojuegos, como Yo Frakie!, un videojuego libre desarrollado empleando el motor de videojuegos integrado de Blender y Crystal Space. Todos los ficheros de desarrollo (incluyendo código fuente) serán liberados tras la finalización del proyecto.

Yo Frankie! Algunos personajes modelados en baja poligonalización del proyecto Peach.

En foros de usuarios de Blender, como BlenderArtists.org o foros generales de gráficos 3D, como 3D Poder o CG Talk encontramos multitud de empresas nacionales e internacionales que emplean Blender en anuncios publicitarios, ilustración, infoarquitectura, etc. Actualmente, Blender se encuentra en un estado de madurez y estabilidad que permite incorporarla en casi cualquier producción profesional. Las escuelas de diseño y universidades van incorporando este programa en sus planes de estudio, lo cual le convierte poco a poco en otro estándar 24


de facto. La gran cantidad de herramientas y plugins adicionales existentes en la red lo configuran como una potente alternativa a todo el software privativo de gráficos 3D existente en el mercado. Veamos algunas de las características que hacen de Blender una perfecta elección en muchos proyectos de representación 3D. ¿Por qué Blender? Blender incorpora gran cantidad de herramientas avanzadas para el modelado, construcción de materiales, animación, render y composición que lo convierten en una seria alternativa a las suites integradas comerciales... ¡y en tan sólo 10MB! Modelado: En lo referente al modelado, además de los operadores clásicos que podemos utilizar en modo de edición de vértices, aristas y caras, Blender implementa superficies de subdivisión de Catmull-Clark, métodos para trabajar con mayas de resolución adaptativa, metabolas y metasuperficies, y un largo etcétera. Una de las mejoras más útiles para el modelado orgánico es la incorporación del modo de Esculpir (Sculpt Mode), que permite utilizar la metáfora del “pincel 3D” con una semántica similar a la aplicación comercial Z-Brush. Materiales y Texturas: La gestión en nodos y modificadores de materiales y texturas ha permitido combinar las propiedades de diversos materiales. La flexibilidad de esta aproximación, unida a la incorporación de propiedades avanzadas como el conocido SubSurface Scattering (que simula los rebotes de la luz en el interior de los objetos), el Render Baking (que construye una textura empleando UV Mapping) o la posibilidad de dibujar directamente sobre la malla 3D permiten que Blender supere a muchas aplicaciones comerciales en esta etapa del flujo de trabajo. 25


Animación: Con la creación de la película Elephants Dream se añadieron controladores de alto nivel para la animación de personajes, animación facial y herramientas de sincronización con audio, que posteriormente mejoraron en Big Buck Bunny. El módulo de Animación No Lineal (NLA), que tantos problemas presentaba hasta la versión 2.40, fue mejorado hasta convertirse en una alternativa real a la animación de personajes profesional. Gracias a los proyectos financiados por Google se han realizado grandes avances en animación basada en sistemas de partículas, como fluidos, pelo, etc. La conexión con el Game Engine (y el motor de simulación Bullet) permite realizar simulaciones físicas de cuerpos rígidos y semirígidos de gran calidad. Render: El motor interno de Render que implementa Blender ofrece muy buenos resultados con un bajo tiempo de cómputo. Blender incorpora un trazado de rayos clásico, sin soporte de métodos de iluminación global pero con algunas aproximaciones interesantes, como el uso de Ambient Occlusion (real y aproximado), radiosidad adaptativa y simulaciones de halos, efectos de desenfoque debidos a profundidad de campo, métodos de render no realista, etc. Además, Blender permite utilizar otros motores de render externos integrados como YafRay; o accesibles mediante un plugin de exportación como LuxRender, Indigo, PovRay y MentaRay, entre otros. YafRay es un motor libre que implementa un PathTracer con soporte de mapas de fotones y que ofrece grandes resultados en un bajo tiempo de cálculo comparado con aproximaciones de motores comerciales. LuxRender es un motor libre que implementa el método de transporte de luz de metrópolis (MLT) similar a Maxwell. Edición de Video: Para cerrar el ciclo de trabajo, Blender incluye un módulo para la edición de vídeo no lineal, que permite mezclar flujos de vídeo y de audio para obtener el resultado final en multitud de formatos 26


(exportación vía FFmpeg), similar a otras herramientas de edición de vídeo comerciales. El interfaz de composición de vídeo sigue la misma semántica de operaciones que Blender consiguiendo una composición muy rápida y potente. Este módulo puede enriquecerse con variedad de efectos de transición y composición mediante plugins. Existen multitud de características adicionales que hacen de Blender una alternativa real a otras herramientas comerciales, como son: la importación y exportación directa a multitud de formatos 2D y 3D, métodos avanzados para la edición de mapas UV, la posibilidad de generar aplicaciones interactivas multiplataforma, etc. Además, cada nueva versión oficial (que aparece cada 3 ó 4 meses) suele incorporar una gran cantidad de mejoras respecto a las versiones anteriores con un ritmo de crecimiento muy superior al de las herramientas comerciales. Yo Frankie! Algunos personajes modelados en baja poligonalización del proyecto Peach.

27


2. Modelado

L

a construcción de la geometría 3D de los objetos que intervienen en la escena es un proceso que requiere muchas horas de entrenamiento y contar con herramientas que nos faciliten el trabajo. Los paquetes software actuales permiten utilizar multitud de herramientas para el modelado de los objetos (superficies de subdivisión, metabolas, modos de esculpir o pincel 3D, etc.); incluso hay software especializado en esta etapa. La elección de la técnica de modelado más adecuada para cada objeto puede ahorrarnos muchas horas de trabajo. En esta sesión estudiaremos varios operadores y técnicas de modelado que nos permitirán crear objetos complejos.

Tabla de contenidos 2.1. Introducción al Modelado 3D 2.2. Técnicas de Modelado 3D 2.3. Operadores Básicos 2.4. Subdivisión y Modo de Esculpir 2.5. Metabolas y Superficies Implícitas 2.6. Otras Herramientas y Técnicas

28


2.1. Introducción al Modelado 3D

E

n general, independientemente de la disciplina, el proceso de modelado es una simplificación de un objeto para su posterior estudio o representación. Así, podemos hablar de modelos matemáticos que simplifican fenómenos físicos, o modelos metereológicos para la predicción del tiempo atmosférico, etc. Un modelo geométrico define la información sobre la forma (geometría) de un determinado objeto. Las simplificaciones que se realicen en su definición vendrán determinadas por diferentes factores como el método de representación utilizado, operadores empleados o nivel de detalle. Se puede definir el proceso de modelado geométrico tridimensional como el encargado de crear modelos consistentes que puedan ser manejados algorítmicamente en un computador. Este proceso de construcción se aborda en diferentes etapas, partiendo típicamente de entidades básicas y aplicando una serie de operadores sobre ellas. Estas entidades básicas pueden ser primitivas geométricas (calculadas de forma algorítmica o mediante una ecuación matemática) u obtenidas medidante un dispositivo de captura (escáner 3D). Como se ha comentado anteriormente, es habitual comenzar con primitivias geométricas básicas, y aplicar posteriormente operadores y transformadores de los elementos que forman esas primitivas. Estas primitivas habitualmente están definidas mediante una descripción algorítmica (una función de un programa), y pueden ser distintas según el programa empleado. En la Figura 01 se muestran algunas primitivas que pueden utilizarse con Blender.

29


Figura 01. Primitivas de Blender

PRIMITIVAS EN BLENDER Menú de primitivas básicas en Blender

Para acceder al menú de primitivas en Blender, basta con situar el puntero del ratón en una ventana 3D y pulsar Barra Espaciadora. Accedemos a un menú contextual, dentro de la opción Add encontramos varias primitivas de alto nivel en Mesh como cubos, cilindros, conos... y a la cabeza de mono que usamos en la primera práctica del curso. Dentro del menú Add podemos añadir otros elementos como superficies curvas (Curve), texto (Text), y otros elementos que estudiaremos más adelante en el curso.

Nombrado de Objetos Cuando construimos una escena compleja, el número de objetos aumenta y es buena idea mantener una organización adecuada. Es conveniente renombrar los objetos que se van creando, para facilitar su posterior selección, importación desde otros ficheros, etc. Blender requiere que cada objeto tenga un nombre único, ya que internamente emplea el campo del nombre como clave para referirse a él. Para renombrar un objeto primero lo seleccionamos (con ), en el panel de edición , dentro de la pestaña Link and Material indicamos el nombre en la caja de texto OB (Objeto), como se puede ver en la Figura 02.

30


Figura 02. Nombrado de Objetos.

Outliner Para facilitar el acceso a los elementos de la escenas, Blender proporciona una herramienta denominada Outliner . Recordemos que podemos seleccionar el tipo de ventana desde la cabecera (es normal tener varias ventanas abiertas, y una de ellas que sea de este tipo para facilitar la selecci贸n de los elementos de la escena, como se muestra en la Figura 03). Mediante seleccionamos los objetos de la escena (aparecer谩n remarcados en color rosa en las ventanas 3D). Es posible cambiar el nombre de los objetos de la escenas desde la ventana del Outliner, si manteniendo pulsado Control hacemos click con sobre el nombre de un objeto. Figura 03. Uso normal del Outliner con una ventana 3D.

31


La ventana del Outliner nos proporciona además un sencillo interfaz para modificar algunas propiedades de los objetos. Como se ve en la Figura 03, en la zona derecha de lista de objetos aparecen tres iconos que pueden cambiar de valor mediante : Ojo : Si está activo el objeto es visible en la escena. De especial utilidad para ocultar temporalmente objetos en escenas complejas. Puntero : Permite proteger objetos de ser seleccionados en la ventana 3D. Funciona como la típica herramienta de "candado" de las aplicaciones de diseño. Paisaje : Este icono indica que el objeto se tendrá en cuenta en la etapa de Render. Si está desactivado, aunque sea visible en la ventana 3D, no formará parte de la imagen resultado. Duplicado de objetos En la mayoría de proyectos de representación es necesario repetir un mismo objeto varias veces en la escena. En ciertas ocasiones conviene duplicar los objetos teniendo copias independientes de ellos (por ejeplo, si queremos realizar pequeñas modificaciones a la geometría del objeto), y en otras ocasiones es interesante que varios objetos compartan la misma malla poligonal y así, los cambios que se realice sobre la malla, se reflejarán directamente en todos los objetos. Para duplicar un objeto, primero tendremos que seleccionarlo con luego usar alguno de los dos modos de duplicado: 32

y


Duplicar: Accesible mediante Shift (Mayúsculas) D o en el menú Barra Espaciadora Edit/ Duplicate, crea dos copias independientes del objeto, copiando la malla poligonal. Duplicar Enlazado: (Clonación) Accesible mediante Alt D o en el menú Barra Espaciadora Edit/ Duplicate Linked, crea dos copias del objeto que comparten la misma malla poligonal. Si creamos dos objetos mediante Duplicación Enlazada, las modificaciones que hagamos sobre la malla de un objeto se verán reflejadas directamente en la malla del otro objeto. En la Figura 04 se puede ver el efecto de este comando. Además de la geometría, hay multitud de propiedades de los objetos que pueden ser compartidas; entre ellas los materiales, las texturas, las curvas de animación... El interfaz de Blender es muy consistente con esta notación, empleando listas desplegables con un número a la derecha que indica el número de objetos que comparten esa información. Por ejemplo, en Figura 05 indica que hay dos objetos (número 2 a la derecha del nombre) que comparten la malla poligonal llamada “Cube” (el campo ME corresponde a Mesh). Se puede renombrar la malla poligonal de forma análoga a como se nombraba el objeto. Cuando se duplica un objeto con Shift D se crean copias independientes de la malla, y cada uno tendrá su propia geometría (Blender automáticamente crea nombres distintos para las dos mallas).

33


Figura 04. Duplicar Enlazado (Clonar).

Figura 05. Información compartida.

CLONES Eliminar clones

34

En esta sección hemos visto que varios objetos pueden compartir, por ejemplo, la malla poligonal. Como hemos dicho, esto se ve reflejado por un número que aparece a la derecha del nombre (en el caso de la Figura 05, dos objetos). Si nos interesara en algún momento crear copias independientes de esa información (en este caso, de la malla poligional), basta con pinchar sobre el número y aparecerá un diálogo que nos preguntará Single User?. Si aceptamos la orden, Blender creará una copia y estos objetos dejarán de ser clones respecto de esa propiedad.


Capas Muchas aplicaciones de diseño permiten utilizar Capas (Layers) y disponer los objetos en ellas. Blender dispone de un cómodo sistema de 20 capas, que pueden ser activadas u ocultadas desde la cabecera de las ventanas 3D (ver Figura 06). A diferencia de otros comandos (como modificación de propiedades de sombreado en una ventana 3D), la activación de las capas es global a todas las vistas. Los botones de acceso a las capas sólo están visibles en Modo de Objeto .

Figura 06. Situación de las Capas en Ventana 3D.

Figura 07. Uso de Capas.

CAPAS Qué son las capas

Si has utilizado alguna herramienta de diseño como Gimp o Photoshop, ya conoces la metáfora de las capas en interfaces de usuario: la escena final se compone de los elementos (objetos, cámaras, luces, etc...) que se encuentran en todas las capas que estén activas. Si una capa contiene ciertos elementos pero no está activa, simplemente es como si no existieran. El uso de las capas es muy intersante para trabajar con escenas complejas, desde le punto de vista del número de objetos o densidad poligonal. Es habitual tener ciertas capas para el escenario de una escena, otra capa para los personajes, otra para las luces...

35


Para activar una capa simplemente haremos . Al activar una capa, se desactiva el resto de capas. Podemos tener activas varias capas a la vez si mantenemos pulsado Shift y elegimos cada una de las capas con . Los objetos se pueden cambiar de capa si, con el objeto seleccionado, pulsamos M. Nos aparecerá una ventana (ver Figura 07) donde seleccionaremos la capa a la que se quiere mover el objeto. Las capas que contienen algún elemento aparecen dibujadas con un pequeño cuadrado en el centro. Si tenemos objetos en varias capas, podemos saber en qué capa está un objeto porque al seleccionarlo se ilumina el cuadrado central de la capa en la que está (ver Figura 07). Centrando la atención: Modo Local / Global Normalmente, cuando estamos en la etapa de modelado trabajamos con un único objeto cada vez. Resulta conveniente centrar el trabajo en ese objeto sin que nos "molesten" el resto de elementos de la escena. Existe un modo de visualización Local para los objetos en las ventanas 3D que únicamente representa el objeto seleccionado en el centro de la ventana. Para cambiar entre modo de visualización Global a modo Local pulsamos / en el teclado numérico o mediante View/ Global View [Local View] en la cabecera de una ventana 3D. Este menú también es accesible en Barra Espaciadora View/ Local-Global View.

36


Componentes de un objeto. Modos de modelado básicos. En la primera sesión introducimos dos de los principales modos de trabajo en Blender, el Modo de Edición y el Modo de Objeto (accesibles en la cabecera de la ventana 3D o mediante la tecla Tabulador). El Modo de Edición será el que utilizaremos para modificar las propiedades de la geometría del objeto. En el trabajo con mallas poligonales es posible realizar esta edición en tres niveles distintos; a nivel de vértice, de arista o de cara.Algunos operadores sólo funcionan en ciertos niveles, y serán estudiados en las siguientes secciones. Los operadores de transformación que vimos en la primera sesión; Rotación R, Escalado S y Traslación G también pueden emplearse en el modo de edición. Es posible seleccionar el modo de trabajo de edición (a nivel de vértices , aristas o caras ) en la cabecera de una ventana 3D. Para ello, y en modo de edición, elegiremos uno de los modos mediante los correspondientes iconos (ver Figura 08). Es posible elegir varios modos a la vez si pinchamos en los iconos con Shift pulsado. En ese caso qué estamos seleccionando (un vértice, arista o cara) dependerá de la cercanía del puntero del ratón. El botón de la derecha de estos tres iconos permite ocultar la geometría de detrás del objeto; puede ser interesante cuando se trabaja con modelos complejos.

Figura 08. Uso de Capas.

37


La normal de una cara poligonal (o vector normal) es un vector perpendicular a la cara que, en gráficos por computador, define su lado "visible". Por cuestiones de eficiencia, sólo uno de los dos lados de una cara poligonal es visible y en ciertas ocasiones es importante indicar cual es. Blender permite representar el vector normal de una cara poligonal. Veremos cómo hacerlo, debido a que es muy importante en ese ámbito, en la sección de Impresión 3D. Centro del objeto Es común, cuando editamos la malla de los objetos que el centro inicial del objeto no se quede situado en su centro geométrico. En Blender el centro del objeto se representa mediante un punto de color rosa. Si tenemos activos los manejadores en la cabecera de la ventana 3D, será el punto de donde comienzan los manejadores (ver Figura 09). El centro de un objeto define el punto sobre el que se aplicarán las rotaciones (entre otras operaciones), por lo que es importante poder cambiarlo. En la Figura 09 se aplica una rotación respecto del mismo eje sobre dos objetos totalmente idénticos salvo por el centro.

Figura 09. Centro del objeto.

38


En Modo de Objeto se puede indicar a Blender que recalcule el centro geométrico del objeto en los botones de edición , en la pestaña Mesh, pulsando en el botón Center New. Se puede cambiar el centro del objeto a cualquier posición del espacio situando el puntero 3D (mediante ) y pulsando posteriormente en Center Cursor. Un ejemplo de uso de esta operación puede verse en la Figura 10. En la sección de Otras Herramientas y Técnicas de esta sesión veremos cómo posicionar los objetos y el cursor 3D con precisión. Juntando y separando objetos Una operación común cuando se están editando objetos es la de separar un conjunto de caras como un objeto independiente, o unir dos objetos para que pasen a ser uno. Para unir dos objetos, se seleccionan ambos en Modo de Objeto (mediante Shift ), y pulsando Control J, aceptamos la confirmación de Join Selected Meshes?. La separación de un conjunto de vértices como un objeto independiente tiene que realizarse en modo de edición . Con los vértices seleccionados, se pulsa P Separate / Selected. Esta orden es accesible también mediante Barra Espaciadora Edit/ Vertices/ Separate.

Figura 10. Asignar nuevo centro.

39


Si la operación no se realiza en modo de edición, la pulsación de la tecla P hará que lancemos el módulo del Game Engine en Blender (si lo hacemos por error, podemos salir mediante Escape. Algunos Formatos de archivo populares En la siguiente tabla se resumen algunos de los formatos de definición 3D populares. Muchos de ellos son en realidad metaformatos, es decir, además de la descripción de la geometría (modelado) contienen información relativa a materiales, texturas, animación, etc. El formato de fichero de Blender (.blend) es igualmente un metaformato que permite guardar en el propio fichero, información comprimida de todos los elementos que forman el proyecto de forma que no se requiera ningún elemento externo adicional. La columna Utilización de la tabla indica si el formato es empleado ampliamente en la red para compartir ficheros 3D (en realidad, la valoración de este campo de la tabla es ciertamente subjetivo). Formato

Nativo de

3DM

Rhino 3D

Especificación pública NO

Utilización

Poco (Impresión 3D) 3DS - MAX AutoDesk Parcialmente (3DS) Mucho COB Caligari TrueSpace SI Muy Poco DXF Autocad SI Mucho LWOB LightWave NO Muy Poco OBJ Alias Wavefront SI Mucho VRML VR Modeling SI Mucho Language SOFT SoftImage NO Poco 40


Existen varios sitios web donde pueden descargarse modelos 3D en multitud de formatos. Uno de los sitios más famosos con modelos gratuitos y comerciales es TurboSquid, que cuenta con modelos de Blender y de varios de los formatos comentados en la tabla anterior. Blender permite importar y exportar modelos de diferentes formatos desde el menú principal, en File/ Import y File/ Export. Otras páginas con modelos libres, específicas de Blender son Kator Legaz, los modelos libres de altísima calidad de Scopia (varios ejemplos de esta sesión están basados en sus modelos), o el repositorio de modelos históricos de computadores y consolas del Museo Virtual de la Informática.

Figura 11. Modelo obtenido Escáner Láser.

con

Al inicio de la sección se comentó la posibilidad de obtener modelos 3D directamente empleando escáneres láser. Este tipo de escáneres generan una malla muy densa con la que es difícil trabajar, pero que puede ser apropiada para algunas aplicaciones. La Figura 11 muestra un ejemplo de un objeto que se obtuvo empleando un escáner láser. Existen varios repositorios con modelos escaneados mediante esta tecnología, como el famoso repositorio de Modelos 3D de Standford. Muchos de estos modelos están en formato PLY, un tipo de archivos creado para estos modelos. Naturalmente, blender incorpora plugins de importación de estos modelos File/ Import/ Standford PLY. 41


2.2. Técnicas de Modelado

E

xisten multitud de técnicas de modelado 3D. En una primera taxonomía de alto nivel podemos hacer una categorización dependiendo de si el modelado se centra en definir únicamente las características del contorno del objeto: Modelado Sólido: también conocidos como de Geometría Sólida Constructiva (CSG Constructed Solid Geometry). Los modelos sólidos definen el volumen del objeto que representan, y en muchos casos indican incluso el centro de masas, la densidad del material interna, etc. Se utilizan en fabricación por computador y en aplicaciones médicas e industriales. Modelado de Contorno: también conocidos como de Representación de Contorno (B-Rep - Boundary Representation). Los modelos de contorno únicamente representan la superficie límite del objeto (de forma conceptual, la "cáscara"). Son más fáciles de definir y modificar. Además, lo interesante para la representación del objeto es su apariencia exterior (en los casos donde interesa el interior simplemente se aproxima, como en el caso del SubSurfaceScattering). Prácticamente todos los paquetes de diseño y animación (incluido Blender) empleados en síntesis de imagen y en aplicaciones interactivas emplean este tipo de modelos. Debido a las posibilidades de tratamiento, operadores y velocidad de procesamiento, la mayoría de los paquetes de diseño gráfico permiten el modelado de contorno. Dentro de esta categoría distinguimos entre modelado poligonal y modelado mediante curvas (ver Figura 01).

42


Figura 01. Superficie definida mediante curvas NURBS y mediante polígonos.

Modelado Poligonal Vs. Modelado mediante Curvas Los modelos poligonales son ampliamente utilizados, debido a su velocidad de procesamiento y a la exactitud de definición que permite. Hay que tener en cuenta el fin para el que se construirá el modelo para decidir el nivel de detalle con el que se definirá su geometría. No es lo mismo construir un modelo para un videojuego, donde el número de polígonos es crítico debido a que debe ser representado de forma interactiva a un alto número de frames por segundo, que un modelo que se destinará a una película de animación. Otros factores tales como distancia con la cámara virtual o importancia del modelo en la escena condicionarán el nivel de detalle de la geometría que forma el modelo. “La finalidad del modelo 3D debe condicionar el nivel de detalle de la geometría que lo forma. Es importante mantener tan bajo como sea posible el número de polígonos de un modelo.”

El hardware de las tarjetas aceleradoras 3D está preparado para trabajar óptimamente con triángulos. Sin embargo, la definición de una superficie curva con un alto nivel de detalle puede requerir un altísimo número de polígonos. Por ello, en ciertas ocasiones puede ser interesante utilizar directamente superficies curvas.

43


Frente a la representación basada en conjuntos de polígonos, las curvas pueden ser descritas de un modo preciso mediante una ecuación. Estas ecuaciones, como veremos, pueden ser evaluadas y convertidas a conjuntos de polígonos (típicamente triángulos) en el momento de su representación (Rendering). Entre las características que hacen el modelado mediante curvas interesante, se puede destacar: Tienen una representación más compacta que los polígonos. Esto es especialmente útil si es necesario ahorrar memoria, como por ejemplo en dispositivos con memoria limitada como teléfonos móviles o consolas portátiles. La animación mediante curvas se realiza de una forma más suave y cómoda. En realidad, como veremos en la 4ª sesión del curso, la transición entre fotogramas clave se especifica mediante curvas de animación (curvas IPO en la terminología de Blender). Una superficie curva puede convertirse a su equivalente malla poligional. El nivel de detalle de la malla resultante puede ser decidida por el usuario de la aplicación, o incluso la aplicación puede decidirlo en tiempo de ejecución teniendo en cuenta ciertos factores. Este proceso se denomina Teselación (Tessellation) y consiste en transformar la superficie continua, eligiendo un conjunto de puntos situados sobre la superficie para posteriormente conectarlos mediante aristas, formando así una red de caras triangulares. Esta conversión es muy habitual realizarla previamente a la etapa de render, debido a que muchos motores de render únicamente trabajan con caras triangulares. Las primitivas son mucho más suaves y contínuas que las equivalentes especificadas mediante conjunto de polígonos. 44


Desde el punto del vista del diseñador, una de las principales ventajas de los modelos poligonales es el alto número de operadores de modelado existentes. Esta es una de las razones por las que el modelado mediante superficies curvas se emplea Sombreado de Superficies El uso de mallas poligonales simplifica la escritura de ciertas partes del software de diseño 3D, como el motor de render. En general los triángulos aproximan una superficie compleja que es la que queremos definir cuando modelamos. No es posible usar los “infinitos” triángulos que harían falta para definir correctamente algunas superficies, de modo que hay que recurrir a algunos trucos de sombreado para ocultarlos. Hay dos formas de presentar una superficie de triángulos en el render. Una de ellas es asumir que el objeto es localmente plano. Es decir, que no tiene curvatura alguna, sólo una serie de caras planas. Es el caso de un cubo, que tiene 6 caras cuadradas y por lo tanto 12 triángulos como mínimo para definirlo. Al renderizarlo se asume que los triángulos son planos y de normal constante. En la Figura 02 vemos como el sombreado cambia bruscamente entre cada par de caras de la calavera superior. Esto es debido al cambio del vector normal entre triángulos. Sin embargo hay otros casos en los que se pretende simular una superficie curva y suave como una esfera. En estos casos no nos podemos permitir un salto brusco de normal de un triángulo a otro; se puede indicar a Blender que suavice los vectores normales de las caras. Para esto se asigna una normal a cada vértice de la superficie. Generalmente basándose 45


en la media de las normales de las caras que delimitan con el vértice en cuestión. Después, a la hora de renderizar, se interpola la normal entre los vértices del triángulo, por lo que deja de ser una normal constante. En el borde entre dos triángulos las normales son iguales a ambos lados, por lo que con una definición aceptable el ojo no detectará la presencia de triángulos en la superficie. Los objetos de la Figura 02 tienen idéntica geometría. La diferencia es que el objeto superior no tiene las normales suavizadas mientras que el inferior sí. En la calavera no suavizada se pueden apreciar claramente las caras poligonales. En algunas zonas, como en la zona entre los ojos, vemos cuadrados en lugar de triángulos debido a que están alineados formando facetas de cuatro vértices. Figura 02. Modos de sombreado.

46


SUAVIZADO Suavizado en Blender

En Blender las propiedades de sombreado de superficies se asocian a la geometría del objeto; no dependen del material. Para activarlas debemos ir a la sección de edición con el objeto en cuestión seleccionado. Entonces nos aparecerá en la pestaña Link and Materials dos botones para elegir el tipo de sombreado Set Smooth (normales suavizadas) y Set Solid (sin suavizar), como se muestra en la Figura 03. Si usamos estos botones desde el Modo de Objeto, la propiedad se aplica a todo el objeto. Si lo hacemos desde dentro del modo edición, se aplicará sólo a las caras seleccionadas.

Figura 03. Suavizado.

No obstante, no conviene abusar del suavizado en exceso. Esto quiere decir que no debemos intentar simular superficies suaves usando muy pocas caras dado que: En el contorno del objeto las caras si se llegan a distinguir. La interpolación es lineal, por lo que una cara demasiado grande no aparenta una curvatura real.

Figura 04. Variación del número de triángulos en una esfera. Esquema de suavizado. 47


No podemos por ejemplo intentar representar una esfera a partir de un cubo suavizando las normales. En la Figura 04 vemos como según se reduce el número de triángulos, el objeto pierde definición y se hace difícil su identificación. No sólo se percibe en el borde segmentado, también vemos como el sombreado se deforma. Hay que buscar siempre un buen balance de triángulos que no supongan mucha carga para el programa pero que den un buen resultado en pantalla. Autosuavizado En la mayoría de programas de diseño (entre ellos Blender), existe una opción de autosuavizado (Autosmooth). Esta opción suaviza selectivamente las caras que forman superficies sin aristas. Esta opción lleva siempre un argumento, el ángulo máximo tolerado. Todas las caras que formen entre si un ángulo menor que el indicado serán suavizadas mientras que el resto de las aristas serán consideradas como “duras”, con bordes afilados. Ésto es muy útil y, de hecho, resulta imprescindible para representar superficies que combinan suavidad con cortes duros. Un buen ejemplo es el cilindro.

Figura 05. Autosuavizado en un cilindro.

Mientras que el cuerpo del cilindro es una superficie suave, sus tapas son como cortes a cuchillo de un supuesto cilindro infinito. Por lo tanto las tapas no han de ser suavizadas con el resto del cuerpo, sino que deben de considerarse superficies planas a parte. Las caras de las tapas forman un ángulo de 90 grados con las del cuerpo, de modo que basta con poner un

48


ángulo de autosmooth inferior para conseguir el resultado deseado. En la Figura 05 se ve la diferencia entre el suavizado normal y el autosuavizado. Nótese como la tapa del cilindro se fusiona con el resto si usamos un suavizado normal.

AUTOSUAVIZADO Autosuavizado en Blender

Al igual que los controles de suavizado, los controles de Autosuavizado se encuentran dentro de los botones de edición , dentro de la pestaña Mesh. A diferencia de el suavizado normal, éste no puede aplicarse a sólo unas caras, sino a un objeto entero. No obstante, el efecto se restringirá a las caras que previamente se hayan puesto como suavizadas. El control que se está debajo del botón de Autosmooth (ver Figura 06) selecciona el ángulo máximo Degr para suavizar dos caras tal y como se explicaba anteriormente.

Figura 06. Pestaña Mesh.

Uso de Texto Blender tiene un buen soporte de opciones para trabajar con texto. ¡Incluso existe un fork del proyecto (DTP Blender centrado en el desarrollo de una herramienta para el trabajo 2D de maquetación!. Los elementos de texto son tratados internamente como un tipo de curvas, por lo que las opciones permitidas para estos objetos son similares a las que veremos en el trabajo con superficies curvas en la siguiente sección. Para añadir un texto lo haremos desde el menú principal Barra 49


Espaciadora Add/ Text. Esto nos añadirá un texto Text en la ventana 3D, que podremos editar en Modo de Edición . En los botones de edición hay dos pestañas interesantes; las opciones de Curve and Surface, que veremos en la siguiente sección, y la pestaña de Font que estudiaremos ahora (ver Figura 07): Load: Permite elegir una fuente truetype. La fuente elegida aparecerá en la lista desplegable de la derecha. Una vez cargada, el icono del paquete situado a su derecha nos permite empaquetar la fuente en el propio fichero .blend. Esto es útil si quieremos Figura 07. compartir el fichero y asegurarnos Opciones de Texto. que pueden visualizar las fuentes correctamente. En general, siempre que aparece este icono, nos permite empaquetar el elemento relacionado para que vaya comprimido dentro del propio fichero .blend. Insert Text: Nos permite abrir un fichero .txt e insertarlo en el objeto de texto. Podemos insertar el típico Lorem Ipsum empleado para probar la composición de un diseño con texto pinchando en el botón Lorem. Left, Center... La siguiente fila de botones nos permite elegir el tipo de justificación del texto. Para que funcione esta justificación, es necesario definir Marcos de Texto (ver a continuación). Text on Curve: Modifica la línea base del texto para que siga la forma de una curva (ver a continuación).

50


Las opciones de la caja inferior permiten definir la apariencia del texto; tamaño, distancia entre líneas de texto (conocido en aplicaciones de maquetación como leading), distancia entre palabras, etc. En la pestaña Char (por defecto aparece situada detrás de la pestaña descrita anteriormente Font cuando el texto está en Modo de Edición) podemos acceder a caracteres concretos de esa fuente. Esto es especialmente interesante si usamos alguna tipografía con dibujos, iconos, etc... Definición de Marcos de Texto Blender sorprende con esta funcionalidad poco habitual en herramientas de diseño 3D, la definición de Marcos de Texto. Los marcos que pertenecen al mismo texto permiten que el texto que no quepa en el primero continue en el segundo, del segundo al tercero, y así sucevisamente. Los marcos de texto se definen mediante la caja de controles situada arriba a la derecha del panel Font (ver Figura 07 y 08). Mediante el botón New podemos añadir un nuevo Marco al texto, y con Delete borramos el marco activo. Podemos desplazarnos entre los marcos existentes empleando la fila de botones superior, que, en el caso de la Figura 08 nos indica que estamos editando actualmente el primer marco (número situado a la derecha) de un total de 2 marcos (número situado a la izquierda). Los números que definen los parámetros X e Y indican el desplazamiento del marco (referido al primer marco del grupo). Finalmente, los parámetros Width y Height indican la anchura y altura del marco respectivamente. En el siguiente videotutorial se muestra cómo se trabaja con marcos de texto.

Figura 08. Marcos.

51


Texto que sigue un camino Un efecto interesante que permite Blender es situar un texto a lo largo de una curva. Para ello, se emplea el campo TextOnCurve de la pestaña Font vista anteriormente. En este campo se debe indicar el nombre de la curva que se quiere emplear como camino.

Por ejemplo, podemos añadir una curva de Bézier Barra Espaciadora Add/ Curve/ Bézier Curve que servirá como camino.

Figura 09. Configuración de texto que sigue un camino (curva de Bezier).

En modo de edición ajustaremos los puntos de control y cambiaremos el nombre del objeto en el campo OB: de la pestaña Link and Materials

52


de los botones de edición (por ejemplo, pondremos "camino"). Hecho esto, seleccionaremos el texto y en el campo TextOnCurve pondremos el nombre de la curva. La edición de la curva se refleja automáticamente en la disposición del texto, como se muestra en la figura 09. Veremos cómo editar y añadir puntos a este tipo de curvas en la siguiente sección. Conversión de curva a malla poligonal Hay muchos casos en los que interesa convertir un objeto curvo a malla poligonal (esta operación se denomina Teselación Tessellation), por ejemplo para convertir un texto 3D a un objeto que quieres distribuir sin tener que dar la fuente, en el caso de querer utilizar un objeto en el módulo de simulaciones físicas (fluidos, partículas), si quieres animar los objetos mediante un esqueleto... La conversión se realiza con el objeto curvo seleccionado en Modo de Objeto, pulsando Alt C Convert curve to mesh. El proceso inverso de conversión de malla poligional a superficie curva es algoritmicamente muy complicado de realizar con precisión. Blender, como la mayoría de aplicaciones 3D, no incorpora ninguna opción para realizar eta operación.

53


2.3. Operadores básicos

E

n esta sección se estudiarán algunas de las herramientas y operadores de modelado más utilizados. Algunos modos y técnicas, por su especial interés, cuentan con secciones independientes en el curso (Subdivisión, Sculpt Mode, Metabolas...). Dejaremos técnicas avanzadas que emplean curvas de animación IPO para la sesión 4 del curso. Extrusión Esta es, sin duda, una de las operaciones que emplearás con más frecuencia durante el modelado de un objeto poligonal, puede realizarse sobre vértices, aristas y caras (se realiza siempre, como es lógico, en Modo de Edición ). El modo de extrusión más empleado es a nivel de caras. Para realizar una extrusión, seleccionamos los vértices, aristas o caras que queremos extruir y pulsamos E. Si lo realizamos a nivel de cara (la operación habitual), se crea una nueva cara poligonal conectada por nuevas caras con la original, desplazándose respecto del vector normal (ver Figura 01). Si seleccionamos varias caras (mediante Shift ), y pulsamos E, aparecen dos opciones; realizar la extrusión de caras individuales Individual Faces (sin conexión entre ellas) o de la región Region (conservando el tipo de conexión entre vértices original). La figura 02 muestra un ejemplo de uso de cada alternativa con sus diferencias; en el modo de Región, las nuevas caras están “pegadas” (tienen una arista común), mientras que en el modo de caras individuales se crean nuevas caras auxiliares internas que permiten separarlas.

54


Figura 01. Extrusión.

Figura 02. Modos de Extrusión..

CUIDADO La extrusión crea nuevas caras, aunque no se desplacen!

Tras pulsar E, Blender crea una nueva cara poligonal. Aunque pulsemos para cancelar el desplazamiento de la nueva cara, en realidad estará creada, y colocada encima de la cara sobre la que aplicamos la extrusión. Esto puede ser útil para modelar ciertos elementos, pero también es una fuente de errores al principio. Recuerda que si has realizado una extrusión por error, puedes volver al punto anterior aplicando un Undo con la combinación de teclas estándar Control Z.

Modificadores Blender dispone de un conjunto de potentes operadores agrupados bajo el nombre de Modificadores. En realidad son operaciones no destructivas, que pueden añadirse o eliminarse a los objetos sin afectar al modelo original (aunque, como veremos, también pueden aplicarse para hacer los cambios permanentes). En este apartado veremos algunos de los más importantes, algunos merecen una sección idependiente (como el de superficies de 55


subdivisión de la sección 2.4), y otros se verán en otras sesiones del curso por no estar relacionados con la etapa de modelado. La pestaña Modifiers se encuentra dentro de los botones de edición , donde aparece inicialmente un botón Add Modifier to: Nombre_ del_objeto. En la figura 03 se muestran los controles comunes a todos los modificadores (de izquierda a derecha): permite minimizar la información de un modificador, si está activo indica que el modificador se aplicará en la etapa de render, si está activo indica que el resultado del modificador se aplicará en la vista 3D, si está activo indica que el modificador se aplicará de forma interactiva en Modo Edición, los botones y permiten ordenar el modificador en la pila de modificadores (explicación a continuación), finalmente el icono sirve para eliminar un modificador. Todos los modificadores tienen dos botones: Apply que hace persistentes los cambios en el objeto original reemplazando la geometría original y otro Copy que duplica el modificador insertando una nueva instancia en la pila.

Figura 03. Controles de Modificadores.

A un objeto se pueden aplicar múltiples modificadores, organizados en una pila. El convenio de aplicar los modificadores en Blender es desde la cima de la pila (comienza con el modificador que está situado arriba y aplica el resto descendiendo), siendo una metáfora de interacción similar al trabajo con tuberías (el resultado de aplicar el primer modificador se pasa al segundo, su resultado al tercero y así sucesivamente). Por ejemplo, en la Figura 04 se muestra el resultado de aplicar un modificador de tipo Bevel (biselado) y uno de superficies de subdivisión. Se aprecia claramente que 56


el resultado en el cubo es diferente dependiendo del orden de aplicación. Cuando la complejidad del objeto es alta y la pila de modificadores crece, suele ser buena idea desactivar la previsualización de algunos de ellos empleando los iconos de visualización en la ventana 3D y en modo edición que se han explicado en la Figura 03. En los siguientes subapartados estudiaremos algunos tipos de modificadores útiles en la etapa de modelado.

Figura 04. Pila de Modificadores.

MODIFICADORES Trabajo con varios modificadores

Cuando tengas varios modificadores en la pila, puede ser interesante emplear el botón situado en la parte superior izquierda de cada modificador para minimizarlo (ver Figura 03). Recuerda también que empleando puedes desplazar la vista de las pestañas del interfaz.

57


Modificador Array Este aparentemente simple modificador duplica la malla de un objeto un determinado número de veces. Como se ha comentado anteriormente, el modificador puede encadenarse con otros (o con él mismo) para realizar arrays multidimensionales de objetos. Por ejemplo, supongamos que tenemos que añadir el tejado a un edificio, como el que se muestra en la Figura 05. Una alternativa sería morir colocando una a una cada teja del edificio. Mediante el uso del Modificador Array podemos simplemente encadenar una primera fila de 115 tejas que están separadas 1.2 unidades, y duplicar esa fila 8 veces con una separación de 2 unidades. Con este par de modificadores hemos creado el bloque de tejas que se ha resaltado en la Figura 05.

Figura 05. Un ejemplo de uso del modificador Array para duplicar tejas.

58


Los principales parámetros que permite el modificador Array son los siguientes (ver Figura 06): Número de objetos a duplicar: Mediante la primera lista desplegable se especifica cómo va a realizar el duplicado del objeto, admitiendo un único valor: Fixed Count: Se indicará el número exacto de duplicados. Fixed Length: Calcula el número de objetos que pueden situarse en la distancia especificada por el usuario, empleando la escala del objeto original que muestra en su ventana Figura 06. de propiedades (recordemos que Array. podemos acceder a ella pulsando la tecla N). Fit to Curve Length: En este caso Blender pide un nombre de Objeto Ob: que deberá ser una curva y cuya longitud se utilizará para calcular el número de objetos que se añadirán. Veremos el uso de este parámetro en un ejemplo más adelante. Modo de desplazamiento Constant Offset: Añade un desplazamiento fijo a cada objeto del array en cada coordenada (X,Y,Z mediante los controles situados debajo del botón). Modo de desplazamiento Relative Offset: Añade un desplazamiento relativo al tamaño del objeto original. Por ejemplo, si indicamos un valor

59


de 1.0 en el eje X se añadirá un clon del objeto original pegado respecto del eje X. Un valor de 2.0 hará que se deje un hueco igual que el tamaño del objeto original (ver ejemplo de la Figura 07).

Figura 07.

Modo de desplazamiento Object Offset: Calcula el desplazamiento (y rotación!) relativo a un objeto Relative Offset. que indiquemos en el campo Ob:. Por ejemplo, si añadimos un nuevo objeto (típicamente se utilizan objetos Empty) separado 3 unidades (en cualquier eje) y de tamaño 2 (en unidades de Blender), el duplicado se realizará 3 unidades respecto del vector que une el nuevo objeto con el que vamos a duplicar y variando el tamaño al doble cada vez. Los objetos de tipo Empty son ampliamente utilizados para este tipo de operaciones. En el ejemplo de la Figura 08 se añade un objeto de este tipo mediante Barra Espaciadora Add/ Empty que controla la rotación y posición de los peldaños de una escalera de caracol construida empleando este modificador.

60


Figura 08. Ejemplo de uso de Object Offset en modificador Array.

EMPTY Uso de objetos Empty

Empty es un tipo especial de objetos de Blender que no tienen representación en la etapa de Render (son objetos vacíos). Se suelen emplear como objetos auxiliares para operaciones para situar otros objetos de forma relativa a ellos, apuntar a puntos en el espacio (para situar la cámara), en restricciones, etc.

Los otros parámetros de este modificador (ver Figura 06) StarCap: y EndCap: sirven para indicar que el objeto de inicio y de fin del array sean distintos (habrá que indicar el nombre del objeto en estos campos). El botón Merge si está activo hará que se fusionen los vértices cercanos de dos objetos del array, siempre que se encuentren a menor distancia que la indicada en Limit. 61


Modificador Bevel Este modificador permite añadir biselados a objetos, pudiéndose realizar a nivel de arista y vértice o sólo a nivel de vértice (si está activo el botón Only Vertices). El ancho del biselado se controla mediante el parámetro Width. El resultado de aplicar este modificador a un cubo puede verse en la Figura 09. En figuras más complejas, puede elegirse de forma selectiva las caras a las que se aplicará, indicando un ángulo mínimo que deben formar las caras adyacentes, activando el botón Angle (por ejemplo, esto es útil si queremos biselar las tapas superior e inferior de un cilindro, pero no las caras laterales).

Figura 09. Modificador de biselado (Bevel).

Modificador Boolean El modificador Boolean permite realizar operaciones booleanas con objetos. La precisión alcanzada (y el grado de estabilidad) en Blender no es comparable al de las herramientas de Geometría Sólida Constructiva, como herramientas de CAD, principalmente debido a que Blender trabaja con modelos B-Rep (ver Sección 2.2). No es de extrañar que este modificar se comporte de un modo extraño con modelos complejos. Además, la malla resultante no es muy cómoda de trabajar.

62


Para trabajar con este modificador deberemos seleccionar el primer objeto, añadirle el modificador y, en el campo Ob: del modificador indicar el nombre de otro objeto sobre el que aplicaremos la operación de Intersección, Unión o Diferencia (ver Figura 10). El nombrado de objetos se explicó en la sección 2.1. Es cómodo mover este segundo objeto a una capa oculta para que no moleste (ver explicación de uso de capas en la sección 2.1), como se muestra en la figura 10. Figura 10. Modificador Boolean.

Las operaciones booleanas pueden aplicarse directamente sin utilizar este modificador. Si tenemos seleccionados dos objetos (con Shift ), pulsamos W y aparecerá un menú contextual Boolean Tools con la opción de realizar las 3 operaciones básicas directamente o añadir el modificador que hemos visto anteriormente. Modificador Decimate El modificador Decimate permite disminuir el número de caras de un objeto minimizando el error en la forma del objeto. El único parámetro que necesita el modificador es el Ratio, que indica el porcentaje de caras que queremos mantener tras aplicar el modificador en el rango. Por ejemplo, 63


un valor de 0.25 indica que queremos mantener únicamente el 25% de las caras originales. Este modificador además nos muestra el número de caras del objeto. Por ejemplo, en la Figura 11 se ha aplicado el modificador con diferente ratio a un objeto obtenido mediante un escáner láser que inicialmente contaba con más de medio millón de triángulos (en concreto, 510.712 caras).

Recordemos que mediante el botón Apply podemos aplicar los cambios reemplazando la malla original. De otra forma, el modificador se tendrá que aplicar al calcular el render de cada imagen, aumentando el tiempo de render.

INFO WINDOW Ventana de Información

64

Figura 11. Diferentes resultados empleando el modificador Decimate.

En la ventana de preferencias de usuario , situada por defecto en la parte superior del interfaz, Blender muestra información sobre la escena actual en la parte derecha (al lado de la versión de Blender). Por ejemplo, la escena de la Figura 12 tiene un total de 8 vértices, 6 caras (sólo hay un cubo en la escena), 2 fuentes de luz, emplea 1.1Mb de memoria, el tiempo del último render fue de 1 segundo y 15 centésimas, y el objeto actualmente seleccionado se llama “Lamp.001”.


Figura 12. Información de la escena en la ventana de información de Blender.

Modificador Mirror Mediante este modificador es posible modelar únicamente la mitad de objetos que son simétricos respecto de algún eje. Hay multitud de objetos que pueden realizarse mediante esta técnica; desde el cuerpo humano, automóviles, mobiliario, etc. El modificador de Mirror básicamente copia la malla poligonal invirtiéndola respecto de algún eje (o de la combinación de varios ejes). Como se muestra en la Figura 13, los botones de X, Y y Z indican los ejes sobre los que se hará la copia. El botón de Do Clipping evita que los vértices sobrepasen la línea central sobre la que se realiza el Mirror (normalmente conviene tenerlo activado, sobre todo en la edición de modelos complejos). El resto de botones serán estudiados más adelante; tienen relación con grupos de vértices y con hacer el espejo en las texturas mapeadas con coordenadas UV (se estudiará su uso en la siguiente sesión). El último campo Ob: permite indicar un objeto sobre el que se hará el Mirror, con

Figura 13. Modificador Mirror.

65


un comportamiento análogo al que se explicó con el Object Offset del Modificador Array. Modificador Smooth El modificador Smooth suaviza el ángulo entre caras adyacentes sin subdividir la malla, por lo que converva el número de vértices del objeto resultante. Tiene el mismo efecto que pinchar, dentro de los botones de edición , en la pestaña de Mesh Tools, en el botón Smooth (pero, al ser un modificador, conserva el objeto original). Las opciones de este modificador son las siguientes: X Y Z Permiten indicar en qué ejes se aplicará el modificador. Factor: En el rango 0.0 - 1.0 indica la cantidad de suavizado que se aplicará a las caras. Si el valor está fuera de este rango se producirá una distorsión en la malla. Repeat: Indica el número de iteraciones de suavizado (equivale a pulsar n veces sobre el botón Smooth que se ha comentado anteriormente. VGroup: El suavizado puede afectar sólo a los vértices de un

66

Figura 14. Modificador Smooth.


determinado grupo de vértices, que se especificará en este parámetro. Veremos la definición de grupos de vértices más adelante. Selección de vértices Cuando trabajamos con mallas complejas, a menudo resulta complicado la selección uno a uno (mediante Shift ) todos los vértices que queremos editar. Blender dispone de varios modos y herramientas de selección que facilitan esta labor (naturalmente son accesibles en Modo Edición ): Todo / Nada: Mediante la tecla A (All) podemos seleccionar todos los vértices de un objeto o anular la selección a ninguno. Funciona igualmente en modo objeto . Invertir selección: Algunas veces es más sencillo seleccionar la parte que no nos interesa de un objeto y luego invertir la selección. Para ello, pulsaremos W Specials/ Select Swap. Esta operación funciona sólo en modo edición. Modo Rectangular: Mediante una pulsación de B (Border), pinchamos y arrastramos con definiendo un rectángulo. Los elementos que queden dentro del rectángulo quedarán seleccionados. Esta selección funciona también en modo objeto. Modo Pincel: Pulsando dos veces B, aparecerá un círculo en pantalla cuyo radio podemos cambiar desplazando la rueda del ratón (o mediante las teclas + y - del teclado numérico), con el que podemos seleccionar los vértices pulsando . Si pulsamos deseleccionaremos los vértices. Este modo sólo funciona en modo de edición. 67


Modo Lazo: Pulsando Control definimos un lazo. Los elementos que queden dentro del lazo estarán seleccionados. Funciona igualmente en modo objeto. Seleccionar Enlazados: Si el modelo está formado por varios objetos que fueron unidos, o se crearon sin conexión física, a partir de una selección inicial (por ejemplo, un vértice) se pueden seleccionar los que están conectados mediante la tecla L. Por ejemplo, en la Figura 15 los cuernos del elefante se modelaron como objetos independientes y se unieron a la malla principal por lo que no están enlazados con el vértice seleccionado (ver ejemplo). Esta operación funciona sólo en modo edición.

Figura 15. Modos de selección de vértices.

En modo objeto , mediante el menú principal Barra Espaciadora Select hay varias posibilidades de selección de objetos, como todos los que están en una determinada capa Select all by layer, seleccionar los que son de un determinado tipo (cámaras, mallas poligonales, fuentes de luz...) Select all by type, y seleccionar los que comparten propiedades (materiales, texturas...) Linked. 68


AYUDA A LA SELECCIÓN Ocultar la geometría de segundo plano.

En muchas ocasiones ayuda emplear el botón de ocultar la geometría de detrás del objeto (cabecera de la ventana 3D, a la derecha de los botones de selección de vértice, arista y cara), que se vio en la sección 2.1 (Componentes de un objeto). Si este botón está activo, sólo nos permitirá seleccionar los vértices que están en el frente.

Edición Proporcional La edición de objetos con un alto número de polígonos que además tienen una superficie suave (como en modelado orgánico) requiere el uso de un modo que permita desplazar los vértices conectados proporcionalmente. Este modo llamado Proportional Edit puede activarse en la cabecera de la ventana 3D (estando en Modo Edición) mediante el icono , o mediante el atajo de teclado de la letra O. El modo de edición proporcional puede afectar sólo a los vértices conectados o a todos los vértices del modelo. Se puede cambiar el comportamiento mediante el atajo Alt O, o desde el desplegable de la cabecera 3D. En la figura 16 se utilizan ambas opciones; cuando se activa la opción de que afecte sólo a los vértices conectados Connected, se puede ver que los vértices de la base no se desplazan (la base se añadió posteriormente y se unió en el mismo objeto, aunque los vértices no están conectados). Cuando se activa este modo, aparece un círculo en pantalla (similar al que se empleó para la selección de vértices en Modo Pincel (ver apartado anterior), cuyo tamaño puede ajustarse de igual modo (rueda del ratón o teclas + y - del teclado numérico).

69


A la derecha del icono de Edición Proporcional en la cabecera de la ventana 3D aparece una lista para seleccionar el modo en el que afecta gradualmente la edición a los vértices vecinos. Por defecto está activo el modo Smooth . Es interesante experimentar con los diferentes modos de Falloff que implementa Blender. Figura 16. Edición Proporcional.

Las curvas se utilizan en modelado muy frecuentemente en el diseño de logotipos, tuberías, cables y elementos ornamentales.

Curvas y Superficies En la sección anterior se han comentado las principales características del trabajo con curvas y superficies. Normalmente su elección es debida a la suavidad que consiguen en la superficie final definida. Al estar basadas en funciones polinomiales continuas, pueden ser escaladas a cualquier tamaño sin perder nivel de detalle. Por esta razón son ampliamente utilizadas (tanto en 2D como en 3D) para el diseño de logotipos y elementos que vayan a ser muy utilizados. Además, como se comentó en la sección anterior, muchas herramientas de diseño emplean curvas para facilitar la edición de ciertos parámetros: curvas de animación (IPO en la terminología de Blender), caminos que siguen objetos, etc. 70


La edición sobre una curva o una superficie se realiza mediante sus puntos de control. Dependiendo del tipo de curva o superficie, el comportamiento de estos puntos de control varía (los requisitos de continuidad en las ecuaciones de estos puntos de control son diferentes).

Para representar una curva se emplea su representación Figura 17. paramétrica, en la que entre cada par de puntos de control Resolución de las se calculan una serie de puntos que están sobre la curva. curvas (parámetro U). Este número de puntos se indica en el campo DefResolU de la pestaña Curve and Surface de los botones de edición . Si ese parámetro vale 1, los puntos de control se conectarán directamente mediante una línea recta. Si vale 2, se conectará mediante 2 rectas que emplearán un punto auxiliar intermedio. Según se aumenta el valor del parámetro U, la curva se dibuja más suave (ver Figura 17). En realidad la representación interna de la curva es igual, sólo que al dibujarla podemos elegir diferentes niveles de detalle. Edición de Curvas Para añadir una curva en Blender utilizaremos el menú contextual Barra Espaciadora Add/ Curve. Blender Soporta curvas de Bezier, Nurbs y caminos; todos estos tipos de curvas admiten los siguientes operadores de edición:

71


Añadir un segmento: En modo de edición , mediante Control podemos añadir nuevos puntos de control a las curvas. Cerrar una curva: Mediante C es posible cerrar (o abrir) una curva. Para realizar algunas operaciones las curva debe estar cerrada (ser cíclica). Unir dos curvas: Dos curvas que forman parte del mismo objeto (deben poder editarse a la vez en modo edición) puede unirse (crear una conexión entre ellas) medidante la tecla F. En el ejemplo de la sección 2.6 del videotutorial de modelado del logotipo del CESLCAM empleamos estos operadores para añadir nuevos puntos de control y cerrado. De forma similar a como hemos definido la extrusión y el biselado en mallas poligonales, las curvas (y los objetos de texto por extensión) permiten de una forma cómoda realizar estas operaciones. En la pestaña de Curve and Surface de los botones de edición (ver Figura 18), se puede establecer la profundidad de la extrusión Extrude, la profundidad del biselado BevelDepth y su suavizado (número de pasadas intermedias) BevResol. La fila de botones superior Back Front 3D especifican el modo de representación de la extrusión (generación de caras frontales y traseras).

Figura 18. Extrusión en curvas.

72


Modelado por barrido Blender soporta dos potentes modos de barrido sobre curvas, llamados Bevel (biselado) y Taper (afilar). Básicamente consiste en definir un camino sobre el que copiará un determinado contorno. Mediante el parámetro Taper podemos modificar el tamaño del contorno a lo largo del camino... ¿recordáis la boa que se había tragado un elefante en El Principito?. La definición de estos objetos se realiza en la pestaña Curve and Surface en los parámetros BevOb y TaperOb. En el ejemplo de la Figura 19, tanto la curva principal como la nombrada "obtaper" son curvas de Bezier, y el objeto llamado "contorno" es un círculo de Bezier. En la animación se ve clarameten cómo los cambios realizados sobre el objeto de contorno y la curva Taper afectan en la forma final conseguida. Estos objetos auxiliares normalmente se mueven a una capa oculta cuando se ha acabo de realizar el modelado. Figura 19. Uso de objetos Bevel y Taper en curvas.

Superficies NURBS (Non-Uniform Rational B-Spline) Al igual que hemos trabajado con curvas 2D, Blender soporta trabajar con superficies curvas. En este caso, en lugar de tener un parámetro U, trabajaremos con dos parámetros U y V que nos definirán la resolución a la que se dibujará la curva. Los diferentes tipos de superficies curvas que soporta Blender son accesibles desde Barra Espaciadora Add/ Surface/ NURBS.... Al igual que las curvas, disponen de puntos de control que 73


modifican suavemente las forma final de la superficie. Una de las aplicaciones principales de este tipo de superficies es en el diseño y evaluación de cascos de naves. En el ejemplo de la Figura 20 se han añadido 5 segmentos de Superficies Curvas NURBS. Se han unido en un único objeto (mediante Control J), y en modo de edición , seleccionando todos los vértices A, se han conectado las curvas (tecla F). Como la cara visible de la superficie calculada apuntaba hacia “abajo”, se ha utilizado el menú auxiliar W Switch Direction para arreglarlo. Con fines artísticos, este tipo de curvas no se utilizan frecuentemente en Blender debido a la dificultad que suponen para conseguir buenos resultados.

Figura 20. Ejemplo de uso de NURBS.

Superficies de Revolución Las superficies de revolución crean objetos duplicando un conjunto de vértices alrededor de un eje de revolución, conectándolos posteriormente con un conjunto de caras auxiliares. La posición del eje de revolución se especifica mediante la posición del puntero 3D, por lo que es importante situarlo convenientemente en el contorno de revolución. La vista 3D sobre la que se realice la operación es determinante para seleccionar el eje. 74


Las superficies de revolución se pueden utilizar con contornos poligonales (por lo que, si hemos utilizado una curva para modelar el contorno, deberemos convertirla a contorno poligonal con Alt C en modo de objeto. Spin Con el contorno poligonal seleccionado, y en modo de edición , seleccionamos todos los vértices A y, en los botones de edición en la pestaña Mesh Tools (ver Figura 21) el botón Spin nos permite crear una superficie de revolución. El campo Degr indica los grados en los que se realizará la revolución (si queremos obtener un objeto cerrado habrá que indicar 360), y en Steps hay que indicar el número de pasos en los que se realizará la revolución (a mayor número de pasos, más suavidad en el objeto que obtendremos). El botón Clockwise si está activo indica que el giro se realiza en el sentido de giro de las agujas del reloj. El botón Keep Original no elimina el perfil original de revolución, manteniendo una copia del mismo. Al pinchar el botón Spin , si tenemos varias ventanas 3D Blender nos pregunta sobre qué vista queremos realizar la revolución (en otro caso utilizará la vista activa). Es crítico elegir la vista perpendicular al eje de revolución para que el resultado sea correcto. Si nos equivocamos, siempre podremos hacer Undo Control Z.

Figura 21. Superficies de Revolución.

75


SpinDup El botón situado a la derecha de Spin SpinDup nos permite realizar duplicados de revolución con una semántica similar a la revolución de vértices, pero sin conectar los vértices resultado de cada paso de revolución. Screw Finalmente, el botón Screw sirve para desarrollar formas como muelles y tornillos, indicando la forma base de revolución y un eje. En la misma malla deben estar tanto la forma base (que debe ser una línea cerrada de vértices, como por ejemplo un círculo), y una línea abierta que servirá como "camino"), por lo que se deberán añadir en modo de edición (o juntar ambos objetos posteriormente). La posición final de los vértices de la línea abierta servirá para indicar la separación vertical entre los pasos de revolución. Como se aprecia en la parte final del video, la distancia entre la forma cerrada y el puntero 3D determinará el radio de apertura del muelle. El valor del parámetro Turns indica el número de vueltas de revolución.

2.4. Subdivisión y Modo de Esculpir Superficies de Subdivisión

L

as superficies de subdivisión son una representación intermedia entre las mallas poligionales y las superficies generadas mediante curvas. No emplean una representación paramétrica, como las superficies NURBS que hemos visto en la sección anterior, sino que se calculan de forma algorítmica. En su generación intervienen 2 etapas; primero una fase de refinamiento en la que partiendo de la superficie original (llamada Red de Control) se crean nuevos triángulos y, posteriormente, se recalcula su 76


posición final en la Superficie Límite (o malla resultante). En Blender las superficies de subdivisión se encuentran en el grupo de los modificadores. Al igual que los modificadores vistos anteriormente, es una operación no destructiva sobre la geometría original. Uno de los esquemas más utilizados es el de Catmull-Clark (Edwin Catmull fue uno de los investigadores de este esquema de subdivisión, actualmente es el presidente de Pixar). El modificador de tipo SubSurf tiene una serie de parámetros modificables; la lista desplegable nos permite elegir entre el esquema de subdivisión simple (donde no hay fase de recolocación de vértices) o superficies de Catmull-Clark que generan una superficie límite contenida en la red de control. Las cajas de texto inferiores sirven para especificar el nivel de subdivisión mientras trabajamos interactivamente Levels, y el que se alcanzará en la etapa de render Render Levels. Normalmente el valor de visualización en interactivo debe ser menor que en la etapa de Render (como se muestra en la Figura 1).

Figura 01. Modificador Subsurf.

77


Cuando estamos trabajando con este tipo de superfices, es conveniente cambiar entre representación Wireframe y Sólida (tecla Z) mientras estamos modelando. Es habitual emplear el modelado con superficies de Subdivisión con extrusiones y trabajo a nivel de vértices, aristas y caras. En el ejemplo de la Figura 2, únicamente se han utilizado extrusiones E y escalados S. El personaje con una bombilla en la cabeza que inicia cada sesión del curso fue modelado con esta técnica. Crearemos un personaje mediante esta técnica de modelado en la sesión 4. Ahora es conveniente centrarnos en afianzar los conceptos de trabajo con el interfaz de usuario y a conseguir un manejo de Blender fluido.

Figura 02. Ejemplo de modelado con Superficies de Subdivisión.

Cuando estamos trabajando con este tipo de superfices, es conveniente cambiar entre representación Wireframe y Sólida (tecla Z) mientras estamos modelando. Es habitual emplear el modelado con superficies de Subdivisión con extrusiones y trabajo a nivel de vértices, aristas y caras. En el ejemplo de la Figura 2, únicamente se han utilizado extrusiones E y escalados S. El personaje con una bombilla en la cabeza que inicia cada 78


sesión del curso fue modelado con esta técnica. Crearemos un personaje mediante esta técnica de modelado en la sesión 4. Ahora es conveniente centrarnos en afianzar los conceptos de trabajo con el interfaz de usuario y a conseguir un manejo de Blender fluido. Mallas de MultiResolución Como hemos visto en la sección anterior, las superficies de subdivisión pueden ser una buena solución para añadir geometría a los modelos trabajando con un número de vértices manejable. Sin embargo, plantean un problema si algunas partes del modelo requieren un nivel de detalle superior al que podemos controlar con la Red de Control (imaginemos por ejemplo que quisiéramos modelar una cicatriz en la cara de un personaje). En ese caso sería necesario aplicar el modificador para poder editar los vértices. Esto nos crearía una malla muy densa que sería difícil de editar. Las opciones de MultiResolución (Multi-Resolution) permiten emplear diferentes niveles de subdivisión de forma que los cambios realizados en un nivel son visibles en el resto.

Las superficies de MultiResolución emplean la misma aproximación que las de Subdivisión, por lo que no tiene sentiendo tener los dos modificadores activados a la vez. La principal diferencia es que las opciones de MultiResolución (Multi-Resolution) permiten emplear diferentes niveles de subdivisión de forma que los cambios realizados en un nivel son visibles en el resto (sin necesidad de manejar directamente un alto número de vértices), aunque si añadimos un detalle muy fino en un nivel de resolución alto no será apreciable en niveles inferiores. 79


Para activar la MultiResolución en cualquier malla poligonal basta con pinchar el el botón Add Multires de la pestaña Multires de los botones de edición . Hecho esto, obtendremos un nuevo botón Add Level que permite añadir niveles a la malla de MultiResolución, y una lista desplegable donde podemos elegir el esquema de subdivisión (como se vio en la sección anterior). Tras añadir algún nivel, aparecerán en el panel nuevos controles como se muestra en la Figura 3, con las siguientes opciones:

Figura 03. Pestaña de Multires.

Del Lower y Del Higer: Permiten eliminar los niveles de subdivisión menores o mayores del que te encuentras actualmente. Si tenemos un objeto con 7 niveles, nos encontramos en el nivel 4 (indicado mediante el control Level), y pinchamos en Del Lower, el nivel 4 pasará a ser el nivel 1. Level: Indica el nivel de subdivisión en el que nos encontramos. Edges: Permite mostrar más aristas en el trabajo interactivo. Si conservamos el valor por defecto (1), es similar a activar Optimal Draw en superficies de subdivisión. Pin (Rendering): Nivel aplicado en pila de modificadores. Por ejemplo, si usamos un modificador de tipo Array, habrá que indicar en qué nivel de subdivisión replicaremos el objeto... Cuidado con los tiempos de render!

80


Render (Rendering): Nivel aplicado cuando realizamos el render. Por defecto se corresponde con el nivel de subdivisión más alto. En ciertos casos puede ser interesante decrementar este nivel para obtener previsualizaciones más rápidas. Modo de Escultura (Sculpt Mode) El modo de escultura trabaja con la metáfora del modelado real con barro, con la definición de un “pincel” que modifica los vértices que toca. El modo escultura (Sculpt Mode) se selecciona en la lista desplegable de modo en la cabecera de la ventana 3D (donde se selecciona el modo edición o el modo objeto). Una vez que se activa el modo Sculpt, el puntero del ratón toma la forma de una circunferencia (el tamaño de esta circunferencia representa el grosor del pincel con el que trabajaremos sobre la malla poligonal), además de nuevas pestañas de Sculpt y Brush aparecen en la zona de botones de edición . La información de estas dos pestañas puede representarse sobre una ventana 3D si, con el puntero del ratón situado en una ventana 3D pulsamos la tecla N. La pestaña Sculpt (ver Figura 4) agrupa funciones relacionadas con las operaciones del pincel, el modo de aplicación y el tamaño y fuerza de las mismas. En la parte inferior se puede seleccionar si se desea simetría respecto de algún eje de coordenadas. La herramienta dispone de seis tipos de pinceles (ver figura 3, botones dentro del grupo Brush): Draw: Dibuja una curva suave en el modelo que sigue la trayectoria del pincel. Los vértices se desplazan en la dirección del vector normal según el grado de incidencia del pincel. Se puede acceder a este operador utilizando el atajo de teclado D.

81


Smooth: Suaviza la posición de los vértices eliminando las irregularidades en el área de la malla dentro del área de incidencia del pincel. Se puede acceder a él empleando el atajo de teclado S. Pinch: Los vértices son desplazados hacia el centro Figura 04. del pincel. Si se aplica con el modificador Sub activo, los Pestaña Sculpt. vértices son desplazados lejos del centro del pincel. Se puede acceder empleando la tecla P. Grab: Este operador desplaza un grupo de vértices. El efecto es similar a desplazar un grupo de vértices en modo de edición de vértices. Se puede acceder a este modo empleando la tecla G. Layer: Este modo es similar a Draw, pero con la diferencia de que la altura de desplazamiento es constante mientras mantenemos el botón izquierdo del ratón pulsado. En el modo Draw la altura de desplazamiento crece según realizamos sucesivas pasadas, mientras que en modo Layer es siempre la misma. Atajo de teclado: L. Estos operadores cuentan con una serie de parámetros: Add y Sub: Add hace que el pincel se aplique en dirección positiva, mientras que Sub lo hace en dirección negativa. Se puede cambiar de modo interactivo la dirección pulsando la tecla Shift. 82


Airbrush: Cuando está activo el pincel continua modificando el modelo incluso cuando no se mueve. Si no está activo el modelo sólo se modifica cuando hay un desplazamiento en el pincel. Atajo de teclado: A. Size: Controla el radio del pincel (en píxeles). Se puede modificar de forma interactiva pulsando la tecla F y seleccionando el tamaño del pincel. Strength: Controla la fuerza con que se aplica el pincel sobre el modelo; valores altos hacen que el operador del pincel se aplique más rápidamente. Se puede modificar de forma interactiva pulsando Shift F. Symmetry: Hace que el pincel se aplique de forma simétrica respecto de los ejes de coordenadas seleccionados. Estos modificadores pueden combinarse y son accesibles también mediante las teclas X, Y y Z. En la pestaña Brush se puede hacer uso del sistema de texturas para utilizarlas como un pincel. Esta funcionalidad la estudiaremos en la siguiente sesión.

2.5. Metabolas y superficies implícitas

L

os metaobjetos son un tipo de superficies implícitas (se definen matemáticamente, no mediante un conjunto de vértices) que definen campos de influencia sobre otras metabolas. La idea es conceptualmente sencilla si pensamos en el comportamiento de gotas de agua que, cuando se juntan lo suficiente se unen formando una gota más grande. Las metasuperficies se llevan empleando durante años en el modelado de formas orgánicas. Se hicieron muy famosas a principios de esta 83


década debido a la aparición de varios plugins para paquetes de diseño 3D comerciales que explotaban sus posiblidades. Las metasuperficies se añaden desde el menú principal Barra Espaciadora Add/ Meta. Las principales propiedades generales del objeto Meta (que estará formado por varias metaformas) se encuentra en la pestaña Metaball de los botones de edición (ver Figura 01). Las propiedades editables son las siguientes:

Figura 01. Metaball.

Modelo creado por Joe Daniels con Metabolas en Blender.

Wiresize: Controla la resolución de la malla resultante en la ventana 3D, que se calcula haciendo discreto el campo de energía. Un algoritmo muy empleado para esta etapa de discretización es el denominado "Marching Cubes". Valores más pequeños implican una resolución mejor. Rendersize: Controla la resolución de la malla resultante en la etapa de render. El comportamiento es similar al parámetro anterior. Threshold: Mide el umbral de influencia de la metabola a su límite de actuación. Valores mayores suavizan la geometría resultante. El cálculo de la superficie resultado del cálculo de los campos de energía de las metabolas puede requerir bastante tiempo. Para agilizar la edición

84


de la superficie final en esta pestaña hay un grupo de cuatro botones que permiten Always redibujar siempre la superficie final con su resolución final, Half Res redibujarla a la mitad de su resolución, Fast redibujar sin recalcular la poligonalización. A nivel individual de cada metasuperficie es posible establecer su nivel de influencia con el resto. El volumen de influencia se representa mediante una línea de color verde. El parámetro Stiffness de la pestaña Metaball Tools permite variar el tamaño de esta zona. Una metasuperficie puede tener una fuerza negativa sobre el campo de fuerza (en Blender se activa mediante el botón Negative del mismo panel). El botón Hide finalmente sirve para ocultar la metasuperficie. Esta herramienta de modelado es visualmente muy potente cuando se combina con animación, Dupliverts, etc. Veremos más ejemplos de aplicación a lo largo del curso.

2.6. Otras herramientas y técnicas útiles Situación del centro del objeto

E

n muchas ocasiones es necesario situar un objeto con absoluta precisión. Para realizar esta operación puede ser suficiente con situarlo numéricamente, accediendo a las propiedades de transformación mediante la tecla N. Sin embargo, otras veces necesitamos situarlo en una posición relativa a otro objeto; necesitaremos situarlo empleando el cursor 3D. El centro de un objeto puede situarse en la posición del puntero 3D, y el puntero 3D puede situarse en cualquier posición del espacio. Podemos, por ejemplo, en modo edición situar el puntero 3D en la posición de un vértice 85


de un modelo, y situar ahí el centro del objeto. Desde ese momento, los desplazamientos del modelo se harán tomando como referencia ese punto. Mediante el atajo Shift S Cursor -> Selection podemos situar el cursor 3D (el puntero 3D) en la posición de un elemento seleccionado (por ejemplo, un vértice) y mediante Shift S Selection -> Cursor moveremos el objeto seleccionado a la posición del cursor 3D. Veamos un ejemplo práctico; en la Figura 1 partimos de dos cubos que queremos situar exactamente uno a continuación de otro. Podríamos utilizar la rejilla, pero este mecanismo es más general y potente. Primero seleccionamos un cubo y en modo edición seleccionamos uno de sus vértices y situamos ahí el cursor 3D mediante Cursor -> Selection. Hecho esto, cambiamos el centro del objeto a ese punto, seleccionando (tal y como vimos en la sección 2.1 del curso) Center cursor de la pestaña Mesh de los botones de edición . Ahora seleccionamos el otro cubo y de nuevo mediante Cursor -> Selection colocamos el cursor 3D en el vértice donde queremos “pegar” el otro cubo. Finalmente seleccionamos el primer cubo y hacemos Selection -> Cursor para que llegue a la posición final deseada. Mediante este sencillo mecanismo de 2 pasos podemos situar los objetos con precisión, Figura 01. y modificar el centro del objeto a cualquier Cursor -> Selection. punto de interés. Será necesario emplearlo en próximas sesiones del curso. 86


Eliminar vértices repetidos En multitud de ocasiones es interesante “fusionar” vértices repetidos, o simplemente eliminar vértices auxiliares que en un momento tuvieron sentido, pero que al juntar objetos ya no lo tienen. Para ello, Blender dispone de una herramienta dentro de la pestaña Mesh Tools de los botones de edición , que sólo es accesible en modo edición. Mediante el botón Rem Doubles podemos eliminar los vértices duplicados. ¿Cómo identifica Blender los vértices que están duplicados? Pues utiliza simplemente una distancia; aquellos que estén situados a una distancia menor que la indicada en Limit serán fusionados. Por ejemplo (ver Figura 2), vamos a partir de la posición final de los dos cubos que obtuvimos en la Figura 1, queremos fusionarlos en un único objeto sin la fila de vértices en el medio (que no aporta ningún detalle). Primero unimos los objetos en uno sólo Control J y después, en modo edición, seleccionamos todos los vértices A (también podríamos seleccionar sólo la fila central) y pulsamos Rem Doubles.

Figura 02. Rem Doubles en acción.

87


USO DE REM DOUBLES Límite

Si al utilizar Rem Doubles no se eliminan los vértices que querían "fusionar", simplemente selecciona los vértices que están implicados y aumenta el límite. Rem Doubles no elimina vértices que no aporten detalle a la geometría (como en el caso de los cubos de la Figura 2). Para conseguir esa funcionalidad, se puede emplear el modificador Decimator que se estudió en la sección 2.3.

Emplear imágenes de fondo El modelado por rotoscopia emplea fotografías o dibujos del objeto a modelar desde diferentes puntos de vista que utilizaremos como plantilla para construir el objeto 3D. A continuación veremos cómo utilizar esta funcionalidad en Blender. Para realizar este sencillo ejemplo utilizaremos una única vista, pero se pueden utilizar diferentes fotografías o dibujos en diferentes ventanas 3D. Para cargar la imagen de fondo en una vetana 3D iremos al menú View/ Background Image en la cabecera de la ventana (ver Figura 03). Si utilizamos diferentes imágenes puede ser necesario ajustar los parámetros de Size, X Offset e Y Offset para que la posición y el tamaño de las imágenes en diferentes vistas sea coherente. El parámetro Blend indica Figura 03. la transparencia de la Imagen de fondo. imagen. 88


El contenido de fondo de una ventana 3D puede ser igualmente un video (botón Movie o una secuencia de imágenes Sequence). Esto es interesante si queremos componer imagen real con imagen virtual (estudiaremos algunas de estas opciones en la última sesión del curso). Vamos a trazar el contorno del logotipo por medio de una curva. Añadiremos a la escena curvas de Bezier, como se explicó en el apartado 2.3, mediante Barra Espaciadora Add/Curve/Bezier Curve. Con la curva en modo edición, convertiremos la curva a poligonal pinchando en Poly de la pestaña Curve Tools. Esto nos permite situar más fácilmente los puntos de control. Colocamos puntos de control en las zonas donde habrá un cambio de curvatura. Cuando los hayamos situado, los convertiremos de nuevo a curva Bezier para ajustar la tensión de los puntos de control. Para realizar la conversión de tipo de curva (Poly y Bezier) debemos tener seleccionados todos los vértices (o puntos de control) de la curva. Recordemos que esta operación se realiza pulsando A (los vértices aparecerán de color amarillo). Cuando colocamos el último punto de cada sección de curva, debemos pulsar la tecla C para cerrar la curva. Al convertir la curva a tipo Bezier aparecen unos segmentos en color verde, que son los segmentos tangente de los puntos de control. Ajustaremos los puntos de control hasta conseguir que la forma de la curva se ajuste a la imagen de fondo. Procedemos de forma similar con el resto de partes del logotipo. La extrusión de las piezas del logo se realizan empleando los parámetros de bevel que se explicaron en la sección 2.3. Finalmente empleamos materiales básicos, para las partes del logo y los elementos de tipo texto. Seleccionamos los elementos que forman la escena y los rotamos, desde el punto de vista de la cámara, para conseguir un render. 89


3. Materiales, Texturas e Iluminación

A

demás de definir la geometría de la escena, la iluminación y las propiedades de los materiales y texturas dotarán a la composición de un mayor grado de realismo. Esta sesión está dividida en 3 bloques de contenido. El primero (secciones 3.1 - 3.3), relativo a la iluminación, está directamente relacionado con el método de render utilizado (que estudiaremos en detalle en la sesión 5). El segundo bloque (secciones 3.4 - 3.6) se encargará de definir las propiedades constantes de los materiales en toda la superficie, que están muy relacionadas con la etapa anterior de iluminación. Finalmente, las tres últimas secciones (3.7 - 3.9) cubren los conceptos básicos de texturas, prestando anteción a una técnica compleja pero muy potente de asignación de texturas mediante coordenadas paramétricas UV. Tabla de contenidos 3.1. Introducción a la Iluminación de Escenas 3.2. Tipos de Fuentes de Luz y Parámetros 3.3. Iluminación Práctica de una Escena

90


3.1. Introducción a la Iluminación de Escenas

L

a simulación del comportamiento de la luz es posiblemente el factor más importante a la hora de conseguir sintetizar una imagen realista. Desde los inicios del estudio de la óptica los físicos han desarrollado modelos matemáticos para estudiar la interacción de la luz en las superficies. Relacionada con la temática de esta sesión del curso (iluminación y texturas) hay una bellísima y electrizante historia de amor, creada en 1998 por Juanma Sánchez, llamada Luxor X, que incluimos a continuación. Con la aparición del microprocesador, los ordenadores tuvieron suficiente potencia como para poder simular estas complejas interacciones. Así, empleando un ordenador y partiendo de las propiedades geométricas y de materiales especificadas numéricamente es posible simular la reflexión y propagación de la luz en una escena. A mayor precisión en esta simulación, mayor nivel de realismo conseguiremos en la imagen resultado. La Iluminación de escenas está directamente relacionada con el método de render utilizado, que veremos en la sesión 5. A mayor precisión en el método de render, mayor tiempo de generación y mayor realismo en la imagen resultado.

A pesar de que el objetivo parece sencillo, existen algunos problemas y limitaciones importantes. El primero es debido al excesivo coste computacional de los métodos de cálculo más realistas. Para cualquier proyecto real de obtención de una imagen, hay que establecer un límite en el nivel de detalle de la escena que queremos simular, indicados en términos del número de interacciones máximas de la luz con las superficies (rebotes), resolución espacial de la imagen, etc. Esta conexión entre la 91


simulación del comportamiento de la luz y el nivel de realismo queda patente en las aproximaciones propuestas en diferentes métodos de render que estudiaremos con más detalle en la sesión 5 del curso. Una ecuación que modela el comportamiento físico de la luz, ampliamente aceptada por la comunidad, es la propuesta por Kajiya en 1986, donde además proponía el método de PathTracing. De forma general podemos decir a mayor simplificación en la resolución de los términos de esta ecuación tendremos métodos menos realistas (y computacionalmente menos costosos).

Figura 01. Iluminación Local e Iluminación Global.

Iluminación Local Vs. Iluminación Global A un alto nivel de abstracción, podemos realizar una primera taxonomía de métodos de render entre aquellos que realizan una simulación de iluminación local, teniendo en cuenta únicamente una interacción de la luz con las superficies, o los métodos de iluminación global que tratan de calcular todas las interacciones (rebotes) de la luz con las superficies de la escena. 92


Debido a que es imposible calcular las infinitas interacciones de los rayos de luz con todos los objetos de la escena, las aproximaciones de iluminación global se ocuparán de calcular algunas de estas interacciones, tratando de minimizar el error de muestreo. En la sesión 5 enunciaremos de forma superficial algunas de las técnicas de muestreo que se utilizan en motores de render actuales. En la figura 1 se muestra el resultado de renderizar la misma escena con un método de iluminación local y uno global. Los modelos de iluminación global incorporan la iluminación directa que proviene de la primera interacción (rebote) de las partículas de luz con las superficies, así como la iluminación indirecta reflejada por otras superficies existentes en la escena. Blender incorpora en su motor de Render dos métodos que simulan la iluminación global: Radiosidad y Oclusión Ambiental. El método de Radiosidad (Radiosity) es un método de entre superficies difusas, que tiene algunas propiedades muy interesantes que lo hacen muy adecuado en ciertos entornos (vuelos virtuales de cámara donde la posición de los objetos no cambia; por ejemplo, en visualizaciones de infoarquitectura). En la Figura 2 se muestra un ejemplo de cálculo de esta interacción de luz entre superficies difusas, en la famosísima escena de la caja

Figura 02. Cornell Box.

93


de Cornell (Cornell Box), ampliamente utilizada para demostrar este tipo de características en métodos de render (se puede apreciar que las caras de los cubos que están próximas a las paredes adquieren el color de esa pared; el cubo de la derecha de color verde y el de la izquierda rojo, debido al "rebote" de la luz en la pared y posteriormente en el cubo). El método de emulación de Ambient Occlusion (Oclusión Ambiental), que ofrece una aproximación físicamente incorrecta pero muy efectiva visualmente. Ambos métodos, junto con el uso de motores externos (Yafray y LuxRender) que permiten métodos más avanzados (PathTracing, Mapas de Fotones y Transporte de Luz de Metrópolis) serán estudiados en la quinta sesión del curso. Algunas herramientas y trucos útiles de Blender En esta sesión (y en las siguientes) será necesario probar varias alternativas y utilizar frecuentemente el render para visualizar resultados. Para facilitar la tarea, se explicarán a continuación algunas herramientas y trucos útiles de Blender. Parámetros del grupo de botones Render Aunque se explicará con más detalle en la sesión 5, a partir de esta sesión será conveniente conocer cómo modificar algunos parámetros generales de render en Blender (como resolución, nivel de antialiasing, etc...). En los botones de escena , dentro de la categoría de render (ver Figura 3), existen varios botones y cajas de valores numéricos que veremos a continuación. Algunos de los controles más importantes de la pestaña Render son los siguientes:

94


Render: El enorme botón Render permite generar la imagen 2D a partir de la escena 3D, su pulsación equivale al atajo de teclado F12. La lista desplegable que aparece debajo del botón permite elegir el motor a utilizar (Blender Internal o Yafray). Hasta la sesión 5 utilizaremos únicamente el motor por defecto Blender Internal. OSA: Oversampling es la técnica que emplea Blender para evitar el aliasing en la representación de las imágenes. Básicamente consiste en calcular el color de cada píxel como media de un conjunto de muestras. A modo conceptual podemos verlo como Figura 03. si cada píxel estuviera formado por un Opciones Render. conjunto de píxeles más pequeños, y el color final del píxel se calcula como media de los "subpíxeles". Si está activo el botón OSA, empleará esta técnica de Anti-aliasing, y el número de muestras vendrá determinado por el botón del grupo situado debajo que esté activo 5 8 11 ó 16. A valores mayores, mejores resultados pero mayor tiempo de render. En la Figura 4 puede verse un ejemplo de aplicación en las aristas de un cubo. MBLUR: El botón MBLUR permite eliminar el aliasing temporal empleando motion blur (según el factor indicado en la entrada numérica Bf). Es necesario el uso de animaciones para ver su efecto, por lo que estudiaremos su uso en la sesión 4. 95


Botones de porcentaje: Permiten seleccionar rápidamente el porcentaje de la resolución de salida 100% 75% 50% y 25%. Es muy útil cuando se están realizando pruebas modificando parámetros de materiales y texturas desactivar OSA y renderizar a un tamaño pequeño 25% ó 50%. XParts e YParts: Indica el número de partes en las que Blender realizará el render. En Figura 04. escenas muy complejas puede ser conveniente Oversampling. aumentar el número debido a que renderizar porciones más pequeñas normalmente requiere emplear menor memoria y puede ser la única forma de obtener resultados. Además, permite agilizar la obtención de resultados en máquinas multiprocesador (con varios cores). Por defecto blender lanzará tantos hilos de ejecución como procesadores detecte en el sistema. Border: Esta interesante funcionalidad permite elegir la zona a renderizar, mediante una caja. Cuando el botón Border está activo, podemos definir la caja de renderizado en la vista de la cámara. Pulsamos Shift B y con definimos un rectángulo que aparecerá pintado de color rojo. Al renderizar F12 sólo esa zona se calculará (ver Figura 5). Si activamos el botón Crop de la pestaña Format, sólo se generará el rectángulo de Border, sin el marco negro. Shadow: El botón Shadow si está activo indica que se calcularán las sombras de las fuentes de luz. Por defecto, deberá estar activo siempre. SSS: Si está activo y algún material tiene propiedad de 96


SubSurfaceScattering, calculará el mapa para aproximar este fenómeno físico. Si no hay ningún objeto que lo utilice, tenerlo activo no hace que el tiempo de render se incremente. Pano: Activa el modo de render panorámico. EnvMap: Permite el uso de mapas de entorno para simular la reflexión (espejo). Si no se utiliza en ningún material mapas de entorno, tenerlo activo no supone un aumento en el tiempo de render. Ray: Activa el Raytracing en el motor de render interno de Blender. Veremos una explicación de este algoritmo en la sesión 5. Ahora simplemente nos sirve con ver dónde se activa, puesto que hay algunas propiedades de los materiales que no pueden calcularse si no está activo el trazado de rayos. Radio: Activa el uso de Radiosidad. Veremos su uso en la sesión 5.

Figura 05. Definición de la zona con Border.

97


BORDER RENDERING Utilidad práctica

La opción de Border es muy interesante cuando se está trabajando en una escena compleja. Por ejemplo, imaginemos que estamos generando una imagen de alta resolución para una promoción inmobiliaria, y tras 30 horas de render, en la imagen final detectamos que una de las ventanas tiene un error. Bastaría con arreglar el error y definir el rectángulo a renderizar (la zona de la ventana) y lanzar de nuevo el render sólo de esa parte. Compondríamos el resultado con algún programa de retoque, como Gimp.

En la pestaña Format (ver Figura 3), las opciones más relevantes para las próximas sesiones son: SizeX y SizeY: Resolución de la imagen en píxeles (ancho y alto). Para establecer la resolución de la imagen, existen algunos tamaños estándar definidos en la columna de botones de la derecha en esa misma pestaña (de color marrón): PAL (resolución PAL 720x576), NTSC (720x480), etc... Crop: Como se ha comentado anteriormente, el botón Crop sirve para recortar la zona elegida mediante Border. Format: Lista desplegable (en la Figura 3 tiene seleccionado Jpeg) donde se puede elegir el formato de la imagen (o video) resultado. Si se seleccionado Jpeg o AVI, el control numérico Q indicará la calidad (compresión). La lista de botones inferiores BW RGB y RGBA indican que la imagen se guardará en escala de grises, en color o en color con canal alpha (transparencia), siempre que el formato lo permita. Si deseamos guardar información de transparencia en imágenes, deberíamos seleccionar como formato de salida alguno que lo soporte, como TGA o PNG. 98


Modo Preview La previsualización de materiales y texturas en Blender es algo limitada en la ventana 3D. Sin embargo, existen opciones para comprobar cómo quedará el resultado mediante una previsualización rápida, accesible desde la cabecera de la ventana 3D View/ Render Preview o mediante el atajo de teclado Shift P. La ventana de previsualización puede desplazarse en la ventana 3D pinchando y arrastrando con sobre la barra de titulo (ver Figura 6), y se puede escalar pichando y arrastrando con sobre su esquina inferior derecha (zona marcada con dos líneas diagonales, ver Figura 6). Esta ventana puede usarse sobre cualquier ventana 3D y, naturalmente, sobre la propia vista de la cámara. Como se muestra en la figura de ejemplo, este modo de previsualización muestra materiales, texturas y efectos de iluminación (sombra) sobre cualquier ventana 3D.

Figura 06. Render Preview.

99


Posicionamiento cómodo de la cámara virtual En las próximas sesiones resultará interesante poder modificar cómodamente la posición de la cámara virtual para probar diferentes puntos de vista y enfoques. Establecer manualmente la orientación de la cámara (rotación en cada eje) resulta muy tedioso. En la cuarta sesión del curso estudiaremos en detalle el manejo de restricciones. Ahora aprenderemos cómo definir un tipo de restricción Track To. Añadiremos a la escena un objeto Empty (recordemos que no tiene representación en la etapa de Render), mediante Barra Espaciadora Add/ Empty. Hecho esto, seleccionamos primero la cámara y después con Shift pulsado el Empty. Con los dos seleccionados en ese orden, pulsamos Control T y aceptamos Track To Constraint. Aparecerá una restricción de ese tipo en la pestaña Constraints de los botones de objeto . Esta restricción puede eliminarse (al igual que los modificadores que vimos en la sesión anterior) pulsando en . Mediante esta restricción, podemos desplazar el Empty y la cámara siempre apuntará hacia donde esté colocado. También podemos mover la cámara empleando diferentes vistas para conseguir el punto de vista adecuado. Al principio del siguiente video se posiciona la cámara como se ha realizado hasta ahora, mediante rotaciones y desplazamientos. Hecho esto, se añade el Empty (que se escala S únicamente para facilitar su selección) y se crea el track como se ha explicado en el párrafo anterior. Los posteriores movimientos de cámara y del Empty se ven reflejados en la vista de la cámara. Finalmente, al eliminar la restricción Track To, la cámara vuelve al comportamiento inicial.

100


3.2. Tipos de Fuentes de Luz y Parámetros

E

n esta sección estudiaremos los tipos de fuentes de luz disponibles en Blender y daremos algunos detalles sobre cómo utilizarlos adecuadamente en las escenas. Como vimos en la primera sesión del curso, las fuentes de luz se añaden desde el menú contextual accesible mediante Barra Espaciadora Add/ Lamp. Blender define 5 tipos básicos de fuentes de luz, que comparten una serie de parámetros comunes que estudiaremos a continuación. Además, cada tipo de fuente de luz tiene un comportamiento definidos y varios parámetros propios. La representación final de la superficie vendrá definida dependiendo del tipo de material y su comportamiento con la luz, por lo que los parámetros del material deberán definirse conjuntamente con los de las fuentes de luz. Parámetros Generales Los parámetros de las fuentes de luz son accesibles desde el grupo de botones de sombreado (Shading) , en los botones de fuentes de luz . En la pestaña Preview (ver Figura 1) se muestra una aproximación al comportamiento de la fuente de luz y lo que es más interesante, una columna de botones Lamp ... Hemi que nos permite cambiar directamente el tipo de la fuente de luz. Esta funcionalidad de Blender es especialmente interesante para realizar pruebas con diferentes tipos de fuentes sin necesidad de añadir más objetos en la escena.

101


A continuación, en la pestaña Lamp hay varios parámetros que son generales a todas las fuentes de luz:

Figura 01. Opciones generales de las fuentes de luz.

Dist: Este parámetro define una distancia máxima (en unidades de Blender) a partir de la cual los objetos no reciben iluminación. Aunque está visible, no tiene ningún significado si la fuente de luz es de tipo Sun o Hemi. Dependiendo del tipo de fuente de luz, Blender utiliza un indicador para indicar la distancia máxima de alcance de la fuente de luz (normalmente una línea punteada), excepto en la de tipo Lamp que no muestra nada. Energy: Controla la intensidad de la fuente de luz. RGB: Define el color de la fuente de luz. Es posible establecer el color pinchando con sobre el cuadrado situado debajo de estos tres selectores. El siguiente grupo de botones de la misma pestaña (Lamp) permiten realizar ajustes sobre las fuentes de luz que no son posibles en el mundo real pero sí en gráficos por computador. Estas funciones además permiten ajustar los valores de iluminación de la escena que, de otra forma, serían muy difíciles de conseguir.

102


Layer: Si está activo este botón hace que la fuente de luz sólo ilumine a los objetos que están en la misma capa. Esta funcionalidad es muy útil si algunos objetos requieren iluminación extra (debido al tipo de material que tienen o su posición) y no queremos que esta iluminación afecte a otros objetos. Negative: Si está activo, la fuente se comporta como ¡una fuente de sombras!. Esta idea, imposible en el mundo real, permite oscurecer partes de una escena que reciban mucha iluminación de otras fuentes. No Diffuse: Si está activo, la fuente no arroja iluminación a la componente difusa de los materiales (ver sección 3.4 del curso). Esto es interesante si por ejemplo tenemos un buen nivel de iluminación pero queremos remarcar los brillos especulares de algunos objetos de la escena. No Specular: Similar al anterior pero no arroja iluminación especular, sólo difusa. Veremos que esta propiedad es interesante cuando tratemos de configurar la iluminación de una escena con tres puntos en la siguiente sección. En la pestaña de Shadow and Spot están los controles relacionados con el tamaño de la fuente de luz y las opciones de cálculo de sombras. Todos los tipos de fuentes (excepto la fuente de tipo Hemi) tienen la opción de arrojar sombras mediante Trazado de Rayos RayTracing, activando el botón RayShadow.

RAYSHADOW Uso de RayShadow

Para utilizar RayShadow es necesario que esté activo el botón Ray del grupo de botones de render de las propiedades de la escena. De otra forma los objetos no arrojarán sombra.

103


Las sombras calculadas mediante RayTracing son típicamente de mayor calidad, con un consumo de memoria mínimo, pero hacen que aumente mucho el tiempo de cómputo. Si se activa este botón, aparecen nuevos controles en la pestaña (ver Figura 2): Adaptative / Constant QMC: Método de cálculo Figura 02. de muestras basado en técnicas de Quasi-MonteCarlo Opciones (QMC). El método adaptativo proporciona resultados RayShadow. más rápidos. Veremos en detalle en qué consiste este método de muestreo en la sesión 5 del curso, pero básicamente consiste en guiar la dispersión de las muestras aleatorias hacia las fuentes de luz de forma que las partes más difíciles de calcular en la sombra tenga más muestras. Soft Size: Define la zona de penumbra de la sombra. Es necesario que la fuente de luz tenga más de una muestra (Sample mayor que uno) para que se perciba el suavizado de la sombra. Samples: Indica el número de muestras que se calcularán para la fuente de luz. Valores mayores generan sombras de mejor calidad a costa de tiempos de render mayores (ver Figura 3). Threshold: Disponible si se elige Adaptative QMC como método de muestreo y define el valor mínimo para tener en cuenta una muestra de sombra. Valores mayores reduce el tiempo de render (y la calidad de las sombras). 104

Figura 03. Muestras de Sombra.


Al igual que en la pestaña Lamp, hay un grupo de botones en esta pestaña que permite realizar operaciones con las fuentes de luz que no son posibles con fuentes de luz del mundo real: Only Shadow: Activando esta opción, la fuente únicamente arroja sombras sin añadir iluminación extra a la escena. Layer: Igual que el botón Layer de la pestaña Lamp, pero relacionado con las sombras: únicamente arrojan sombra los objetos que estén situados en la misma capa que la fuente de luz. Tipos de Fuentes de Luz Como veremos en la siguiente sección, los tipos de fuentes de luz suelen tener asociada una funcionalidad según diferentes clases de escenas, y suelen añadir cierta clase de contribución a la componente de iluminación de los objetos. Blender utiliza diferentes representaciones (ver Figura 4) para que puedan distinguirse mientras se construye la escena. A continuación estudiaremos las características, parámetros y principales usos de cada una de estas fuentes.

Figura 04. Representación gráfica de los diferentes tipos de luz soportados en Blender.

105


Lamp El tipo Lamp es una fuente de luz onmidireccional, situada en un punto y arroja luz en todas las direcciones. Es el tipo de fuente que añade Blender por defecto cuando se crea una nueva escena. En la pestaña Lamp tiene un botón Sphere que hace que, cuando se supera la distancia indicada en el campo Dist, la iluminación de la fuente se establece a 0 en lugar de ir atenuándose progresivamente. En la Figura 6 se observa la sutil diferencia entre tener Sphere activo o no. La descripción de la función de atenuación que indica cómo va perdiendo intensidad la fuente de luz (llamada Falloff) se ha mejorado mucho en las últimas versiones de Blender. La lista desplegable situada encima del botón Sphere permite elegir entre varios esquemas e incluso establecer una curva personalizada: Lin/Quad: Si se elige este esquema, aparecerán dos nuevos controles Linear y Quad que permiten esepecificar si la función tenderá a ser más lineal o cuadrática (ambos valores están definidos en el intervalo 0,1, ver Figura 5). En general, la función cuadrática representa con más exactitud el comportamiento físico de las fuentes de luz, pero puede ser interesante un comportamiento lineal para facilitar la iluminación de la escena.

Figura 05. Lamp.

Inverse Square: La luz se atenua según el cuadrado de la distancia (campo Dist de la misma pestaña). Es una función realista que da buenos resultados con flexos, farolas, etc.

106


Inverse Linear: Función físicamente incorrecta pero cómoda para iluminar. Constant: Si se establece como constante, se comporta de forma similar a las fuentes de tipo Sun o Hemi, que no sufren atenuación con la distancia. Figura 06.

Custom: Cuando se selecciona este tipo de función Lamp. de atenuación, aparece una nueva pestaña (ver Figura 7) que permite establecer una función propia de atenuación. En el eje de ordenadas se indica la intensidad de la fuente de luz, y en el eje de abcisas la distancia. El punto de arriba a la izquierda de la curva implica máxima intensidad con mínima distancia. Según avanzamos en horizontal modelamos el comportamiento de la luz cuando aumenta la distancia. En la Figura 7 se muestran algunos ejemplos de resultados obtenidos con diferentes curvas. Figura 07. Función atenuación personalizada.

107


Sun La luz de tipo "Sol" representa una fuente de intensidad constante que emite en una única dirección, por lo que la posición de esta fuente de luz no es relevante para el resultado, únicamente su dirección. Esta es la única fuente de luz que tiene influencia sobre el aspecto del cielo y el horizonte de la escena. Normalmente se utiliza como fuente de luz principal en escenas de exterior.

En la versión 2.48 se incorporaron nuevos controles en la pestaña de Sky/Atmosphere (ver Figura 8) que Opciones Sky permiten lograr interesantes efectos. En este caso, el Atmosphere de fuente tipo Sun. uso de la pestaña de previsualización Preview resulta de especial utilidad para tener una realimentación visual sobre el resultado que conseguiremos en en render. Algunos parámetros interesantes de esta pestaña: Figura 08.

Blend Type: La primera lista desplegable controla cómo se combinará el color del cielo con las propiedades del mundo. Veremos en la sesión 5 cómo definir los parámetros globales del mundo. Color Space: La segunda lista desplegable permite elegir diferentes espacios de color (CIE 1931, creado por la Comisión Internacional en 108


Iluminación, REC709 el espacio de color para HDTV, etc). Hor. Bright: Brillo del horizonte. Hor. Spread: Extensión del horizonte. Valores mayores implican que el horizonte se extiende (restándole espacio) sobre el cielo. Sun Bright / Size: Brillo y tamaño del sol. Puede ser necesario rotar el sol (dirección a la que apunte) para que aparezca en la vista de la cámara. Recuerda que no importa la posición “física” en la escena, únicamente su dirección. Back Light: Controla la cantidad de luz representada alrededor del sol. Tiene influencia sobre su color. Sun Intensity: Valores altos implican que objetos lejanos reciben más intensidad debido a la luz del sol. Spot Es uno de los tipos de fuentes de luz más potentes en Blender, porque permite configurar multitud de parámetros e incluso decidir sobre la técnica de cálculo de sombras a utilizar: Trazado de Rayos o mediante Mapas de Sombras (Buffered Shadows). Independientemente de la técnica de cálculo de sombras a utilizar, hay una serie de parámetros variables en este tipo de fuentes: Spot Si: Spot Size Tamaño de la fuente en grados; un tamaño de 180 implica una apertura total del foco. Valores de 60-90 suelen ser adecuados para la mayoría de las situaciones (ver Figura 9). 109


Sopt Bl: Spot Blur Desenfoque de los bordes del foco. Valores pequeños implican poco desenfoque en las aristas de la fuente de luz (poco difuso). Se representa con dos conos; el interior indica el punto donde empieza el desenfoque, y el exterior donde el valor del desenfoque es máximo (ver Figura 9). HaloInt: Si el botón Halo (situado en la parte inferior izquierda de la pestaña) está activo, controla la intensidad de la luz volumétrica (ver Figura 10). Es similar al efecto de la luz cuando pasa sobre aire con partículas de polvo o humo. Figura 09. Parámetros Spot. Figura 10. Uso de Halo y HaloInt.

Square: Activando el botón Square (situado encima de Halo), la fuente de luz se define con forma cuadrada. Por defecto (desactivado) la fuente es circular. Al inicio de esta sección vimos que todos los tipos de fuentes de luz permiten el cálculo de sombras mediante trazado de rayos RayShadow. Las fuentes de luz Spot permiten utilizar mapas de sombras que, por lo

110


general, es una técnica más rápida que el trazado de rayos y en muchas ocasiones puede generar resultados satisfactorios. La idea básica es calcular una imagen situando una cámara virtual en la posición de cada fuente de luz que utilice esta técnica, donde se representen mediante píxeles los puntos que están en sombra. Así, la “calidad” de las sombras representadas depende, entre otros factores, de la resolución de esta imagen (mapa de sombra, shadow map o buffer shadow en la terminología de Blender). Una vez activado el botón Buffer Shadow, Blender permite definir diversos parámetros: ShadowBufferSize: Resolución en píxeles de la imagen cuadrada usada para almacenar los puntos que están en sombra. A menor tamaño, menor tiempo de cómputo pero sombras de peor calidad (aliasing). Está directamente relacionado con el tamaño de la fuente SpotSi; si el área del foco es muy grande, tendrá que repartir cada píxel del buffer en más espacio siendo el efecto del aliasing más notable (ver Figura 11).

Figura 11. Relación entre ShadowBufferSize y SpotSi.

Box / Tend / Gauss: Indica el método de Antialiasing que se emplea con el mapa de sombra. Box y Tend se emplean con sombras que tengan bordes afilados y Gauss ofrece los mejores resultados con sombras que tengan una zona ancha de penumbra. 111


Samples: Controla el número de muestras por píxel que se emplean al calcular el mapa de sombras (valor entre 1 y 16). A mayor valor, mejor calidad del mapa pero mayor cantidad de memoria y tiempo de cómputo (ver Figura 12).

Figura 12. Halo Step: Este parámetro únicamente tiene sentido si se activó el botón Halo. El Calidad de la sombra y tiempo de parámetro de intensidad del halo Halo Int render según el número de muestras. fue explicado anteriormente. Por su parte, Halo Step mide la intensidad de la sombra volumétrica. Si vale 0 no se calcula la sombra volumétrica (ver Figura 13), si vale 1 calcula la sombra con la mayor calidad (pero empleando mayor tiempo de cómputo). El máximo valor 12, calcula la sombra volumétrica más rápido pero con menor calidad.

Bias: Este parámetro es importante si detectamos algún error de precisión en la sombra calculada. Si el valor de este parámetro es menor, la distancia entre el objeto y la sombra será menor. Establecer valores muy pequeños también puede dar lugar a errores. En la figura 14 se muestran diferentes resultados variando Figura 13. el valor de Bias; con Comportamiento de HaloStep. 112


valor 5 la sombra se distancia del objeto, ofreciendo resultados claramente incorrectos. Con valor 2.5, es casi correcta salvo por el "hueco" que deja en el centro (el objeto es totalmente sólido), un posible valor correcto para esta escena es 0.5. Si disminuimos demasiado el valor de Bias, el objeto se hace sombra a sí mismo (valor 0.05). Soft: Suavizado de la sombra. Valores mayores hacen que la zona de penumbra se suavice. Para que funcione correctamente hay que incrementar el valor de las muestras Samples.

Figura 14. Bias.

Figura 15. ClipSta y ClipEnd.

ClipSta y ClipEnd. Este tipo de luz se emplea en iluminación de exteriores. No arrojan sombra y, al igual que las de tipo Sun, no importa su localización, únicamente su dirección. Definen una semiesfera que engloba a la escena, añadiendo una componente de luz global. En la Figura 16 se muestra la configuración de una escena sencilla empleando esta fuente de luz y el resultado del render a la derecha. La dirección del brillo en el material del mono es debido a la orientación de la fuente Hemi.

113


Figura 16. Uso de fuente Hemi.

Area Las luces de área son, en cierto modo, parecidas a los Spot pero sólo pueden generar sombras mediante RayTracing. En realidad son más correctas físicamente (en el mundo real, las fuentes de luz no son puntuales, sino que tienen cierto área). Internamente una luz de área se maneja como una matriz de fuentes de luz. Como era de esperar, la mayor calidad en las sombras de las fuentes de luz de área viene acompañado de un mayor tiempo de render, por lo que habrá que tenerlo en cuenta. El parámetro de distancia es especialmente sensible en este tipo de fuentes de luz y si lo establecemos a un valor muy grande la imagen resultado saldrá quemada. Es buena práctica establecer el valor de forma que la línea de distancia llegue aproximadamente hasta el objeto a iluminar (ver Figura 17). Como se comentó anteriormente, a mayor número de muestras Samples, mayor calidad en la sombra y mayor tiempo de generación.

114


Figura 16. Diferentes resultados y tiempos de render obtenidos con fuentes de luz de Area.

Las luces de área permiten definir un parámetro de tamaño Size en la pestaña de Lamp, y elegir entre fuentes de luz cuadradas o rectangulares. Definir fuentes rectangulares puede ser conveniente, por ejemplo si queremos colocar una fuente de este tipo ajustándose al modelo de una ventana en una escena de interior. Veremos ejemplos de iluminación en la práctica de esta sesión.

3.3. Iluminación Práctica de una Escena

M

ediante métodos de iluminación global (que veremos en la sesión 5 de este curso) es muy sencillo obtener imágenes realistas. El problema de ese enfoque es el tiempo necesario para generar cada imagen. Si quisiéramos generar una animación, o una película de 90 minutos en alta definición sería imposible de abordar. El uso de métodos de iluminación local se hace necesario en multitud de ocasiones e incluso los grandes estudios de animación como Pixar o Dreamworks los utilizan para sus producciones.

115


El problema se plantea de tratar de obtener una iluminación efectiva, donde no perdamos detalles del modelado, podamos utilizar la iluminación para crear diferentes sensaciones y se distinga perfectamente los objetos del fondo. Un esquema ampliamente utilizado en la comunidad gráficos por coputador (además de en cine, televisión y fotografía) es la iluminación de tres puntos. Los objetos a iluminar se sitúan en el centro de las fuentes de luz. Cada grupo de luces tiene asociado un propósito, y se emplean nombres estándar para su definición: Luz clave (Key Light): Define la iluminación principal del objeto y el ángulo dominante. Es la que tiene más intensidad y arroja sombras a la escena. Podemos definir diferentes emociones variando su posición. Normalmente formando un ángulo de entre 25 y 50 grados con las cámara, y situada a una altura mayor que el objeto que se quiere iluminar El cerebro está acostumbrado a percibir imágenes iluminadas desde arriba, sol, lámparas, farolas... Situar la luz clave que venga desde abajo proporciona una sensación de intranquilidad, como la lograda contando historias de terror iluminando la cara con una linterna desde abajo. Luz relleno (Fill Light): Es necesaria porque estamos empleando métodos de iluminación local, y no se calcula los rebotes de luz con otros elementos de la escena. Evita que las zonas en sombra debidas a la luz clave aparezcan totalmente en sombra (perdiendo el detalle del modelado). Normalmente se situa desde el ángulo opuesto que ha formado la luz clave con la cámara, a la misma altura del objeto. Si queremos evitar brillos especulares de dos fuentes (de la luz principal y de la luz de relleno) se puede eliminar su cálculo. También es habitual desactivar el cálculo de sombras de esta fuente. 116


Luz trasera (Back Light): Se emplea para separar el objeto del fondo de la escena. Crea una fina línea de iluminación sobre el objeto que lo separa visualmente del fondo de la escena. Se suele colocar en frente de la luz clave o de la luz de relleno, pero situada detrás del objeto.

Figura 1. Posicionamiento de luces en Iluminación de 3 puntos.

Cada una de las luces anteriores puede ser, en realidad, un grupo de varias fuentes de luz. Una configuración que ofrece buenos tiempos de render es emplear como luz clave una fuente de tipo Spot con mapas de sombras (el empleo de RayTracing es mucho más costoso; además, siempre puede cambiarse después de tener la iluminación definida). Otra 117


alternativa (según la escena) es emplear luces de área para la iluminación principal o de tipo Sun si la escena es de exteriores. La luz de relleno y la trasera pueden ser fuentes de tipo Spot sin cálculo de sombras y con el brillo especular desactivado (para la luz trasera desactivar el brillo especular no suele ser crítico), o también se puede emplear fuentes Hemi que directamente no arrojan sombra y ofrecen un cálculo muy rápido. A la hora de decidir el contraste de la imagen final debemos tener en cuenta el medio de publicación. Se define un ratio Key-to-Fill como la proporción de iluminación debida a la luz clave frente a la luz de relleno. En cine se suele trabajar con niveles altos 2:1 o superior (contrastes de sombras muy marcadas), mientras que en televisión se emplean ratios mucho menores 1.5:1. En Blender, unos valores de energía proporcionales a Luz Clave: 1, Luz Relleno: 0.5, Luz Trasera: 0.75 suelen ofrecer buenos resultados.

118






Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.