miércoles, 28 de abril de 2010

Animación 3D, La Cámara: Mover, Rotar y Seguir [Blogs experimentales] [ Blender ]

El objeto "cámara" permite identificar el punto de vista elegido para generar las imágenes de nuestra escena.
Girando la cámara


Hemos visto que al seleccionar la cámara (para ello seleccionamos sobre el icono que la representa con el botón derecho del ratón) nos aparecen unos ejes (RGB) que nos permiten cambiar su posición (arrastrando los ejes con el botón izquierdo).

Sin embargo no hemos cambiado hasta el momento la orientación de la cámara, por lo que no podemos cambiar la dirección de visualización.

Para girar la cámara, una vez seleccionada, procederemos como con cualquier objeto en Blender. Pulsaremos la tecla "R" (Rotate) y, en la ventana que tengamos activa, desplazaremos el cursor (ratón) hasta conseguir la orientación deseada.
La rotación, de forma idéntica a la de cualquier objeto, se puede limitar a uno de los ejes. Por ejemplo, si se quiere girar con eje de rotación el eje "Z" (color azul) deberemos pulsar la tecla "R" y a continuación la tecla "Z", con lo que el giro se realizará en dicho eje.

Más adelante se analizará en detalle el sistema de ejes que, como veremos, pueden estar asociados al espacio (ejes globales) o al objeto (ejes locales, normales...).

En el icono que representa la cámara seleccionada, aparece una línea de trazos que indica la orientación que tiene en cada momento durante el proceso de giro.


Esta línea auxiliar sobre el icono facilita el correcto alineamiento de la cámara con los objetos de la escena, aunque realmente el resultado más interesante del giro lo podemos observar en la ventana de la cámara. Nuestra imagen final ha cambiado al hacerlo el punto de vista de la proyección.


El giro de la cámara es de utilidad para conceptos muy diferentes, como lo son realizar una panorámica de una escena y el seguimiento de un objeto. Al combinar el desplazamiento de la cámara y su rotación, se consiguen variaciones de imágenes muy marcadas, generando sensación de dinamismo en la escena.

Seguimiento de objetos

Cuando empecemos con las animaciones veremos que no es fácil seguir a un objeto definiendo manualmente la orientación de la cámara. Existen mecanismos que facilitan el control tanto de la posición como de la dirección de visualización.
  • KeyFraming
  • Parent 
  • Track
La técnica de KeyFraming se verá cuando estudiemos la animación de los objetos. La cámara es un objeto y comparte con ellos un mismo tratamiento en muchos aspectos.


Track

Podemos definir un "objetivo" o "Target" para determinar la orientación de la cámara, de forma que "apunte" en todo momento a un elemento concreto de la escena; el objeto seleccionado puede tener su posición fija o por el contrario estar en movimiento.


El seguimiento de objetos puede generar cambios bruscos en la orientación de la cámara si pasan muy próximos, la cámara se va acelerando al llegar el objeto y se frena cuando se aleja.

Con objetos lejanos realiza movimientos suaves con pequeñas variaciones en la velocidad de giro de la cámara.
  • Para establecer el objeto a seguir seleccionaremos primero "seguidor",  manteniendo pulsada la tecla "Shift" a continuación identificaremos el objeto a seguir y por último pulsaremos la combinación de teclas "Ctr + T" (de Track).
  • Para romper la relación en lugar de la tecla "Ctrl" usaremos "Alt", es decir "Alt + T"
Un nuevo menú nos permite determinar diferentes modos de "anclaje" entre el objeto y el objetivo.


La cámara puede seguir al objeto , pero el objeto seguido puede puede reorientarse durante su movimiento también ( (TrackTo Constraint , LockTrack Constraint y Old Track)). Las diferentes restricciones al movimiento se detallaran en su momento, baste de momento pensar que un objeto puede "apuntar" a otro de diferentes formas.



Parent

Otra opción consiste en definir una estructura jerárquica entre los objetos. Una rueda de un coche tiene un movimiento propio y otro que depende del coche. Podemos pensar que es "hija" del coche que es el "padre",  Si el padre se mueve, el objeto hijo se desplaza de igual manera. Esto afecta tanto a las rotaciones como a las traslaciones.
Decimos que un objeto tiene por "Parent" a otro cuando depende jerárquicamente de él.

La cámara tiene como "parent" al cubo, desplazándose solidariamente

Esta relación de jerarquía puede utilizarse de múltiples maneras, supongamos de momento que un objeto que depende de un "parent" se mueve solidariamente como si se encontrasen unidos de forma invisible.


La rotación del "parent" afecta al objeto hijo

El movimiento del "hijo" sin embargo no produce ningún efecto en el del "parent".
  • Para establecer la relación jerárquica entre dos objetos seleccionaremos primero el hijo, a continuación el "parent" y pulsaremos la combinación de teclas "Ctr + P" (de Parent).
  • Para romper la relación en lugar de la tecla "Ctrl" usaremos "Alt", es decir "Alt + P"

lunes, 26 de abril de 2010

Bump Mapping

Bump mapping es una técnica de gráficos computacionales 3D que consiste en dar un aspecto rugoso a las superficies de los objetos. Se emplea para dar un efecto de relieve en las superficies de los objeto. Esta técnica modifica las normales de la superficie sin cambiar su geometría. Las normales originales de la superficie seguirán perpendiculares a la misma. El bump mapping cambia la perpendicularidad por otras normales para lograr el efecto deseado, todo ello sin modificar la topología ni la geometría del objeto. El resultado es razonablemente rico y detallado, y pueden lograrse grandes parecidos a elementos naturales (como la textura de una naranja). La diferencia entre mapeado de desplazamiento (displacement mapping) y bump mapping es que con bump mapping no se perturba la geometría solo la dirección del campo normal. (Wikipedia)

Para generar una imagen basada en la técnica de "Bump Mapping", necesitamos un objeto al que le aplicaremos una textura que es la responsable de definir las variaciones del relieve sobre su superficie.

Por ejemplo, partimos del siguiente modelo:


Si se le añade una textura, el color hace que la apariencia cambie sustancialmente. Sin embargo, el volumen no dá la impresión de haber cambiado. La textura se ha "pintado" sobre la superficie como una piel pero sin rugosidad.


Además de aportar color a la figura, podemos utilizar la textura para definir variaciones en la rugosidad, haciendo que unas partes parezcan sobresalir respecto de otras. Esto se hace modificando en el algoritmo de sombreado, la dirección de las normales a la superficie, es decir, modificando el comportamiento de la luz en cada punto dependiendo del color que tenga.


El efecto es el que conseguiríamos modificando la superficie con pequeñas alteraciones de sus puntos.

El efecto de Bump mapping se puede realizar independientemente de la aplicación del color a la superficie. En la siguiente imagen se ha creado el efecto de rugosidad pero no se ha añadido el color de la textura a la imagen final, dando esa sensación de "piel de naranja" que comentamos al principio


Es una técnica que aporta un efecto "orgánico" a las superficies, sin añadir apenas complejidad en el cálculo de las imágenes, por lo que es muy útil en la creación de imagen de síntesis.

Las imágenes se han generado con Blender.


domingo, 25 de abril de 2010

Raytracing: Jugando con Luz y Texturas con Blender

La luz y las texturas juegan un papel fundamental a la hora de renderizar una escena. 

En este artículo se utiliza un único modelo al que se le han asignado diferentes propiedades de material (texturas) y en el que hemos ido cambiando las propiedades de la dureza de la sombra que genera un punto de luz.

El resultado se puede observar viendo la riqueza de imágenes generadas.

Se ha utilizado la técnica de "Ray Tracing" (trazado de rayos) para su obtención, jugando así mismo con relfexiones especulares y transparencias junto con texturas que actuan como máscara de color o de "Bump Mapping".


El raytracing o trazado de rayos es un algoritmo para síntesis de imágenes tridimensionales. Propuesto inicialmente por Turner Whitted en 1980, está basado en el algoritmo de determinación de superficies visibles de Arthur Appel denominado Ray Casting (1968). (Wikipedia)
Bump mapping es una técnica de gráficos computacionales 3D que consiste en dar un aspecto rugoso a las superficies de los objetos. Se emplea para dar un efecto de relieve en las superficies de los objeto. Esta técnica modifica las normales de la superficie sin cambiar su geometría. Las normales originales de la superficie seguirán perpendiculares a la misma. (Wikipedia)
La escena se compone de un cubo situado en el centro, con tres planos a modo de esquina (perpendiculares entre sí) situados en la parte posterior. Un foco de luz y una iluminación ambiental completan su definición.



Las sombras pueden ser más o menos duras (bordes difuminados o claramente marcados), o pueden omitirse en el cálculo de las imágenes


Al añadir efectos especulares, las imágenes se "funden". El fondo, las paredes en forma de esquina, se reflejan sobre las caras del cubo


Si las propiedades especulares se las asignamos al fondo (las paredes en esquina) se generan interesantes efectos de reflexión que parecen duplicar la geometría



Al añadir un fondo a la escena, como un cielo azul, se refleja sobre las superficies reflectantes


Un fondo más complejo que incluya imágenes o patrones de colores puede crear efectos muy complejos al reflejarse sobre las diferentes superficies


Si añadimos transparencias y rugosidad mediante la técnica de "Bump Mapping" las distorsiones de la imagen complican su interpretación en este caso, pero aportan una plasticidad al conjunto muy interesante.







¿Puedes identificar lo que ha variado en las últimas imágenes? Debemos acostumbrar a nuestros ojos a interpretar la imagen de síntesis.

Las imágenes mostradas han sido calculadas con Blender. Se han necesitado desde 1 minuto hasta 35 minutos dependiendo de los efectos realizados, fundamentalmente el grado de refinamiento del RayTracing y del muestreo de la luz.

sábado, 24 de abril de 2010

La Luz de su Sombra

Una escena formada por un conjunto de cubos semitransparentes


Iluminamos con un foco que los atraviesa


Eliminamos la aportación de la luz, dejando su sombra


Eliminamos el halo del foco de luz
Queda la Luz de su Sombra


viernes, 23 de abril de 2010

Animación 3D, La Cámara [ Blogs experimentales ] [ Blender ]

Hemos visto que se pueden configurar las ventanas y asociarles diferentes vistas de la escena. En este artículo iniciamos el estudio de "la cámara", que determina el punto de vista utilizado para obtener las imágenes finales.

Vistas

Cada ventana 3D dispone de un menú "View" en el que se selecciona el tipo de vista que tiene asociada dicha ventana.


Al seleccionar en "View" se despliega un menú para configurar los diferentes modos de visualización de la ventana.

Se puede elegir entre una proyección ortográfica o una perspectiva cónica, así como elegir el punto de vista del observador respecto de la escena, o también denominado centro de proyección.



Las opciones facilitan optar por un conjunto de ventanas básico establecido (Front, Top, Side) que se corresponden con las tres direcciones del espacio que definen las caras y aristas de un cubo, así como desde cualquier punto definido por el usuario (User).
Cámara

Junto con estas direcciones de visualización, existe un objeto que es el que nos va a proporcionar el punto de vista más importante para blender, y es "la cámara". 

Las anteriores visualizaciones se usan para trabajar en la composición de la escena, para editar el proyecto; la cámara va a definir el punto de vista desde el cual vamos a "filmar" nuestra secuencia de vídeo.

Hemos visto que al iniciar Blender tenemos una escena con tres objetos: un cubo, un punto de luz y una cámara.


Al seleccionar la cámara (seleccionamos sobre el icono con el botón derecho del ratón) vemos unos ejes que nos permiten cambiar su posición (arrastramos los ejes con el botón izquierdo).


Para seleccionar un objeto utilizaremos el botón izquierdo del ratón
Los ejes de colores que aparecen sobre el objeto nos muestran las tres direcciones del espacio cartesiano. La línea roja representa el eje "X", la verde el "Y" y la azul el "Z". Podemos relacionar por tanto la codificación RGB de colores con las coordenadas XYZ
  • R: Red: Eje X
  • G: Green Eje Y
  • B: Blue Eje Z



La escena que "capta" la cámara se puede visualizar en una ventana 3D, seleccionando en el menú "View" la opción "Camera" o pulsando en el teclado numérico la tecla "0".


La ventana que representa a la cámara se identifica por unas líneas formando rectángulos que indican los límites de visualización de la cámara, y en consecuencia de las imágenes que vamos a obtener.

Si la cámara se encuentra seleccionada, el rectángulo exterior cambia al color utilizado para identificar elementos activos. Se ilumina indicando que las acciones que realicemos serán sobre este elemento.



Una distribución muy útil de ventanas puede ser la representada en la figura, con dos vistas (Top y Front) pequeñas y otra con la cámara.



La vista de la cámara admite varios modos de visualización, Desde una representación conceptual o alámbrica, pasando por modelos sólidos o sombreados, hasta el uso de texturas.


La elección del modo de visualización se realiza seleccionando un menú a partir del icono que representa al objeto, y que se encuentra en la parte inferior de la ventana.


Pulsando la tecla F12 podemos obtener un "renderizado" de la imagen que se obtiene con la cámara.


Experimenta moviendo la cámara y los objetos. Añade previamente uno o más elementos a la escena (pulsando la barra espaciadora sobre una ventana se accede al menú para añadir objetos). 

¿Es difícil obtener el punto de vista deseado?

En el siguiente paso veremos en detalle cómo mover la cámara.

jueves, 22 de abril de 2010

Animación 3D, Guardar Ventanas con Vistas [ Blogs experimentales ] [ Blender ]

Después de crear ventanas con diferentes vistas, podemos guardar el espacio de trabajo que hemos configurado para un uso posterior.
Vamos a repasar parte de lo visto anteriormente para configurar un espacio de trabajo

Hemos visto en el interface de ventanas que para dividir el espacio de visualización, podemos situar el cursor en la parte superior de la ventana y presionar el botón derecho del ratón. Un menú pop-up nos ofrece la posibilidad de realizar esta operación.


A continuación en el menú "View" podemos seleccionar la vista que queremos tener en la ventana.


Después de configurar nuestro sistema de ventanas, podemos guardar esta nueva distribución para otras ocasiones. En la parte superior nos encontramos el menú principal de blender. Nuestro ejercício consiste en "crear y guardar" una nueva configuración-


En el menú desplegable, pulsando en las flechas de "SR" seleccionaremos "ADD NEW", que nos desplegará un nuevo cuadro de diálogo.


Después de generar las ventanas podemos asociar diferentes tareas a las mismas. Para ello, seleccionaremos la función correspondiente cambiando el icono que se ve en el ángulo inferior izquierdo de cada ventana:


Las ventanas generadas son vistas 3D o "3D View", si seleccionamos con el ratón en el icono se nos muestran las actividades que Blender nos ofrece y que se trataran posteriormente.




Os dejo un ejemplo en vídeo de la secuencia completa. Es importante configurar las ventanas para que se adapten a cada tarea específica, simplificando nuestro trabajo.







Animación 3D, Crear Ventanas y Asignar Vistas [ Blogs experimentales ] [ Blender ]

Ya sabemos cómo configurar básicamente el sistema de ventanas. Nuestro objetivo en esta nueva entrega de material didáctico para el aprendizaje de la herramienta de animación 3D Blender, es diferenciar entre los diferentes tipos de vistas disponibles y su relación o diferenciación respecto de la "cámara".


Vistas de las perspectivas

Estamos trabajando en un sistema plano (la pantalla del ordenador) con objetos o modelos tridimensionales; para visualizar estos objetos hay que realizar algún tipo de proyección que permita obtener una representación bidimensional.

La parte de la geometría que estudia las diferentes formas de "proyectar" los modelos sobre un plano se denomina "Geometría descriptiva" y a los diferentes tipos de proyecciones se les asocia el nombre genérico de "Sistemas de representación".

La visión humana se aproxima a los denominados "Sistemas cónicos o centrales", mientras, en general, en la técnica se utilizan las proyecciones cilíndricas ortogonales.

Blender incorpora estos sistemas para la visualización. Analicemos a nivel conceptual cómo es una de estas proyecciones y su selección en nuestro sistema de ventanas.

En la figura tenemos un objeto tridimensional y dos planos de proyección que normalmente son perpendiculares entre sí. Si miramos "desde encima" de la pieza hacia el "suelo" veremos una parte del objeto. Podemos entender que esta parte del objeto que vemos desde arriba es "la proyección" que se conoce como "Top", mientras que si la miramos de frente es la proyección "Front". Desde luego esto es una forma intuitiva de entender las cosas sin entrar en una descripción geométrica que intencionadamente se omite.

Vistas "Front" y "Top"

Estas proyecciones, una vez realizadas, se sitúan en ventanas diferentes que se superponen sobre un mismo plano; en nuestro caso el plano en el que se situan las diferentes "vistas" es el de la pantalla del ordenador


Las vistas "Front" y "Top" se situan en un mismo plano de visualización

Podemos ver con unos objetos simples en Blender estas ventanas de representación. En la siguiente captura de pantalla se observan tres objetos (cubo, cono y esfera) y tres ventanas de visualización. A la izquierda tenemos las vistas "Front" (arriba) y "Top", mientras a la derecha nos encontramos lo que vería nuestra cámara, es decir, la imagen que obtendremos al renderizar la escena.

Una posible distribución de "Vistas"

Las proyecciones pueden ser de tipo cónico (como la visión humana) o de tipo ortogonal, empleadas en documentos técnicos. Normalmente utilizaremos una proyección ortogonal para trabajar sobre los objetos de la escena y una perspectiva cónica para generar las imágenes de la animación.

Su aspecto es claramente diferente. En la figura se observan las dos perspectivas de un mismo objeto (un cubo). A la derecha tenemos la perspectiva o proyección cónica, mientras a la izquierda se ha obtenido una proyección ortogonal. Se observa que en las proyecciones ortogonales las aristas paralelas del cubo mantienen el paralelismo, mientras que en la cónica pierden esta propiedad.


Veamos la forma de organizar nuestro espacio de trabajo con las funciones explicadas anteriormente, e introduzcamos nuevas combinaciones de teclas y ratón para gestionar el espacio de trabajo.
  • Alt + botón izquierdo permite rotar toda la escena, cambiando el plano de proyección para visualizar la escena desde diferentes ángulos
  • Spacebar permite añadir nuevos objetos a la escena

Como ejercicio trata de hacer diferentes ventanas y añadir objetos para acostumbrarte a visualizar el espacio desde diferentes puntos de vista. Es una acomodación fundamental para poder trabajar cómodamente cuando tengamos modelos complejos.


Y si tienes dudas o crees que algo no queda claro, puedes dejar tu comentario y mejoraremos el tutorial entre todos.

Salvo indicación expresa, todos los contenidos de esta página están sindicados bajo una licencia Creative Commons. Puedes usarlos y modificarlos, siempre que no se haga con fines comerciales y se cite al autor.

Los enlaces que completan las ilustraciones son informaciones y opiniones de sus autores, muchas veces diferentes e incluso manifiestamente opuestas, buscando un contraste de visiones.

Etiquetas

#manifiesto (2) 2010 (1) 3D (41) Actividad sísmica (3) Actualidad (22) Aeronáutica (1) Agua (3) Águila (1) Alan Wake (1) Aminatou Haidar (1) Amor (3) Animación (24) Animales (1) Antialiasing (1) Aplicaciones (1) Aprendizaje activo (1) Aprendizaje cooperativo (1) árbol (1) Arquitectura (1) Arte (4) AstroRobonaut (1) Australia (1) avatar (1) Bicicleta (2) Biología (2) Bitacoras.com (4) Blackout (1) Blender (42) Blog (71) Blogs (3) Blue Brain (1) Bump Mapping (2) Capas (1) Carrillo (1) Censura (2) Chile (2) Ciencia (34) Cine (2) Citas (2) Civismo (1) Color (3) Comentarios (1) Comic (1) Composición (1) Conferencia Montreal (1) Consolas (1) Creatividad (2) Crítica (2) Cultura (3) Curiosidades (1) D (1) Daniel Bensaïd (1) Desastres naturales (1) Dibujo (4) Diseño (9) Documental (2) Edición (9) Educación (23) Esfera (1) Esferas (1) España (1) Estadisticas (1) Estructura (1) Evolución (1) Exposición (1) Fallas (2) Festividad (2) Ficheros (1) Filosofía (1) Flores (1) Follow friday (2) Fondo Figura (1) fondos (1) Fotoblog (2) Fotos (4) Fractales (1) Frases (1) Fuego (1) fútbol (1) Galaxias (1) Gallo (1) Geometría (17) Gomarta (1) Google (1) Gráficos (13) Greenpeace (1) Guatemala (1) Haiti (10) Hipopótamo (1) Historia (1) homenaje (1) Huellas (1) Humano (1) Humor (36) Iluminación (5) Ilusiones ópticas (2) Imagen (7) Imagen sintética (76) in memoriam (1) Ingeniería (2) Innovación (5) Innovación educativa (16) inocente (1) Internet (6) Investigación (2) ISS (2) Jardín (1) Java (1) Juegos (1) Jugabilidad (1) Key Frame (1) Layers (1) Lectura (1) Letras (1) Leyes Gestalt (3) Libertad expresión (1) Libro (1) Madrid (6) Mapeado (1) Mar (1) Matemáticas (1) Material (6) Maya (2) Mesh (2) Metaballs (1) Microsoft (4) Morphing (35) mosaico (1) Movie Maker (2) Mujer (1) Mundial (1) Música (2) Nasa (1) Navidad (3) NEURONA (1) niño (2) Objetos (2) OCW (1) Óleo (9) Óleos (1) Olimpiadas (1) open source (3) Optimula (1) Organización (1) Pacman (1) palante (1) palillos (2) Paloma (1) Pelo (2) Pensamientos (2) Periodismo (9) Perlin Noise (1) Personajes (5) Personal (8) Pi (1) Pintores (1) Pintura (6) Pixel (1) PIZ (23) PIZiadas (48) Política (3) Post (1) premios (1) Primavera (1) programación (9) Proteina (2) Publicidad (3) puentes (2) Puntillismo (1) R2 (1) Raytracing (27) Real time (1) Realidad aumentada (1) Realidad virtual (1) Recursos educativos (2) Reflejos (5) reflexión especular (4) Refracción (4) Rendering (22) René Descartes (1) Representación (1) Retos (1) Salinger (1) Saludo Blog (3) San Valentin (1) Saramago (1) segregadores (3) Selección (1) SGAE (2) Shaders (1) Sillón (1) Simulación (1) Sismico (1) Software (14) Sombreado (1) Sonido (1) Sudáfrica (1) Tecnología (35) Televisión (2) Tendencias (2) Terremoto (15) Texto (1) Texturas (8) Tinta (1) Transparencia (5) Turquía (1) Tutorial (5) Tutoriales (2) Twitter (9) Universo (1) UPM (1) usuarios (2) Vetas (1) VGG (4) videojuegos (1) Vídeos (13) Wikipedia (1)
Powered By Blogger