93
EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER PARA EL APOYO EN EL BUCEO HERMES PEREZ CARDONA PROYECTO DE GRADO FACULTAD DE INGENIERIA DEPARTAMENTO DE INGENIERIA DE SISTEMAS Asesor GERMAN BRAVO Universidad de Los Andes Bogotá Julio del 2004

EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER PARA EL APOYO EN EL BUCEO

HERMES PEREZ CARDONA

PROYECTO DE GRADO

FACULTAD DE INGENIERIA DEPARTAMENTO DE INGENIERIA DE SISTEMAS

Asesor

GERMAN BRAVO

Universidad de Los Andes Bogotá

Julio del 2004

Page 2: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

1

TABLA DE CONTENIDO

INTRODUCCIÓN ___________________________________________________ 4 PREFACIO ________________________________________________________ 5

Primero que todo se debe hacer la pregunta: ¿Qué es el buceo? ________________ 5 Entendiendo algo del buceo ____________________________________________ 5

Buceo Recreativo.__________________________________________________________ 6 Buceo Técnico_____________________________________________________________ 6

Algunos requerimientos, que se pueden obtener.____________________________ 7 Los trajes __________________________________________________________ 8

Chaleco de flotabilidad _____________________________________________________ 8 Lastre ___________________________________________________________________ 9 Aletas____________________________________________________________________ 9 Careta ___________________________________________________________________ 9 Equipo de aire artificial_____________________________________________________ 9 Regulador _______________________________________________________________ 10 Otros ___________________________________________________________________ 10 Básico __________________________________________________________________ 10

¿Cuáles son algunas de las tecnologías que se encuentran en este medio? _______ 11

INSTALACIÓN ____________________________________________________ 12

Disposición de los archivos y carpetas que incluye el CD del proyecto __________ 13 CUERPO DEL PROYECTO __________________________________________ 14

Primera Parte______________________________________________________ 14 El mundo y el Universo ____________________________________________________ 14 DATABLOCKS __________________________________________________________ 16 Objeto Suelo Marino ______________________________________________________ 17

¿Como se hace? ________________________________________________________________18 Mesh ______________________________________________________________________18 Material y Textura____________________________________________________________19

Objeto Superficie marina __________________________________________________ 20 Mesh ________________________________________________________________________21 Material ______________________________________________________________________21 Efecto Especial ‘Ondulaciones’ ____________________________________________________22

Objeto Pez ‘Salmonete Amarillo’ ____________________________________________ 23 ¿Como se construye? ____________________________________________________________24

Material y Textura____________________________________________________________26 Armadura o Esqueleto_________________________________________________________27 Emisor de Partículas __________________________________________________________28

¿Cómo se hizo? ___________________________________________________________28 ‘Lattice’____________________________________________________________________29

Page 3: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

2

Objeto Cueva de piedra____________________________________________________ 30 Mesh ________________________________________________________________________31 Material y Textura ______________________________________________________________32

Objeto Barco_____________________________________________________________ 33 Superficie Curva _______________________________________________________________33 Material y Textura ______________________________________________________________34

Objetos Caracoles ________________________________________________________ 35 Mesh ________________________________________________________________________36 Material y Textura ______________________________________________________________36

Objeto Coral Cerebro _____________________________________________________ 37 Mesh ________________________________________________________________________37 Material y Textura ______________________________________________________________38

Objeto Luces_____________________________________________________________ 38 La cámara_______________________________________________________________ 40 Las Capas _______________________________________________________________ 42 Sobre la Animación _______________________________________________________ 43 Render__________________________________________________________________ 46

SEGUNDA PARTE _________________________________________________ 49 El mundo y el universo ____________________________________________________ 50 DataBlocks ______________________________________________________________ 51

Primera Escena_________________________________________________________________51 Segunda Escena ________________________________________________________________52 Tercera Escena_________________________________________________________________52

Objeto Suelo Marino ______________________________________________________ 53 Primer Escenario _______________________________________________________________53

¿Como se hace?______________________________________________________________54 Las Texturas ________________________________________________________________55

¿Cómo se manipulan las texturas? _____________________________________________56 Segundo Escenario______________________________________________________________57

Las Texturas ________________________________________________________________58 Tercer Escenario _______________________________________________________________59

Las Texturas ________________________________________________________________61 Los Objetos Estáticos______________________________________________________ 61

Gran bloque de cemento y su cadenota ______________________________________________62 La Escalera____________________________________________________________________64 La Pared Rocosa _______________________________________________________________65 El “Muelle” ___________________________________________________________________66 El Ancla ______________________________________________________________________67 El Barco Hundido ______________________________________________________________68 El Erizo Negro _________________________________________________________________68 La raya _______________________________________________________________________70 Los Objetos de apoyo____________________________________________________________72

El Caracol __________________________________________________________________72 Los corales Blandos. __________________________________________________________73 Los Pastos __________________________________________________________________75

Objetos Dinámicos ________________________________________________________ 76 Entendiendo algo de Python Primero________________________________________________77 El Delfín______________________________________________________________________78

Atracción y repulsión _________________________________________________________79 Entendiendo primero cómo funcionan los Bloques Lógicos (Sensores, Controladores y Actuadores) _________________________________________________________________80

Page 4: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

3

El Delfín Juega ______________________________________________________________81 La Cámara y sus camaradas _______________________________________________________82

¡La cámara Bucea! ___________________________________________________________83 Las burbujas ________________________________________________________________84

Respiración_______________________________________________________________85

Creando Mallas ____________________________________________________ 86 Ideas sobre qué más se puede lograr ____________________________________ 88

Visión____________________________________________________________ 89 CONCLUSIONES __________________________________________________ 91

BIBLIOGRAFÍA ___________________________________________________ 92

Page 5: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

4

INTRODUCCIÓN

Este es un proyecto que comenzó con la idea de trabajar con algo relativo al buceo y

además combinarlo con el tema del medio ambiente. En principio, los sistemas de

información geográfica parecían ser la respuesta, pero luego el proyecto evolucionó y

migró al interesante tema de la computación gráfica.

Se tienen dos formas de ver el proyecto: la primera de tipo espectador y la segunda,

interactiva, y como producto final en cada caso, se obtiene una animación y un juego

desarrollados en Blender. Este documento funciona como catalizador entre la

explicación detallada de cómo se hizo y del proceso de aprendizaje, que es el que

realmente sirve para adquirir las herramientas y usar el editor 3D de mundos

submarinos.

Un mundo virtual es sólo una pequeña muestra de las posibilidades que se puede lograr,

tratando de simular el mundo subacuático real, este proyecto pretende animar a las

personas a entrar en este maravilloso deporte recreativo. “El mundo virtual nunca será

como el mundo real” es únicamente la invitación, la aceptación para volar en la

ingravidez de nuestro océano y deslumbrarnos con la invasión de todos nuestros

sentidos.

Aunque a lo largo de todo este documento, se logrará aprender a manipular en cierta

medida Blender, para manejarlo de una manera adecuada seguramente será necesario

aprender por cuenta propia.

Al principio no es intuitivo el uso de Blender, debido a que el estilo de trabajar en este

programa puede llegar a ser diferente a lo programas convencionales de Windows, pero

luego de llevar meses trabajando con él, se va convirtiendo en una herramienta muy

poderosa, fácil y rápida de usar.

Este proyecto no pretende enseñar el manejo de Blender y sus propiedades, sólo se

enuncia la forma de usarlo abriendo un poco la ventana de su aprendizaje.

Page 6: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

5

PREFACIO

Primero que todo se debe hacer la pregunta: ¿Qué es el buceo?

Es el acto de entrar en el agua y permanecer bajo la superficie con el propósito de

trabajar o explorar las profundidades de los océanos y mares, dotado de un traje

especial. El buceo sin ayudas mecánicas se practica desde tiempos muy antiguos.

A través de la historia, el buceo ha contribuido con aportes científicos, geológicos,

arqueológicos, históricos y de investigación en general. Además, se convirtió en una

actividad de gran atractivo turístico. La exploración, la fotografía y la realización de

videos predican la conservación y protección de la flora y fauna marina y todos los

aspectos que pueden beneficiarlas.

Entendiendo algo del buceo

El buceo es una actividad que puede practicarse de manera autónoma, en la que el buzo

se desplaza libremente en el agua, o no autónoma, con la necesidad de permanecer

conectado a un equipo de aire que se encuentra en la superficie y usar la clásica

escafandra. El primer caso es el más frecuente en todas las modalidades deportivas,

donde se alcanza una profundidad máxima de 30 m., mientras que el segundo se aplica

con fines comerciales o científicos; si bien la manguera limita los desplazamientos del

buzo, permite mayor tiempo de permanencia bajo el agua.

Dentro de la modalidad autónoma encontramos el buceo a pulmón o apnea, donde el

buzo aguanta la respiración sin ningún aparato de ayuda y sale a la superficie para

volver a tomar aire. Si no se quiere sumergir muchos metros o desea explorar debajo del

agua sin alejarse de la superficie se puede practicar el snorkeling, en el que se respira a

través de un tubo snorkel de treinta centímetros de longitud aproximadamente.

La actividad que más atrae es el buceo con aparatos, donde el equipamiento determina

la reserva de aire y en consecuencia el tiempo bajo el agua.

Page 7: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

6

Buceo Recreativo.

El buceo es un deporte que requiere de una preparación específica, que nos permita

disfrutar los fondos marinos dentro de las máximas condiciones de seguridad, pero es

para casi todas las personas de variadas edades.

Es una actividad recreativa segura, relajante y divertida, donde se puede conocer la gran

diversidad de fauna y flora del entorno y mundo submarino en una abundancia

asombrosa.

En el buceo nocturno se puede contemplar la fauna marina de otra manera, y

posiblemente se podrá maravillar con el brillo de neón al mover el agua que contiene

plancton.

No importa si es la primera mirada al buceo o si se tenga muchos años buceando,

siempre hay algo nuevo, fascinante y apasionante en el maravilloso mundo submarino.

Buceo Técnico

Para muchos puede ser la máxima expresión del buceo recreacional, donde se realizan

exposiciones excepcionales a diferentes limites, requiriendo un entrenamiento superior

e intensivo. Largas descompresiones, grandes profundidades, etc. Una forma aventurera

de jugarse la vida (barcos hundidos, cavernas, cuevas, deep air, recirculadores

de aire y de mezclas, etc.).

Buceo técnico se puede definir mejor como una administración de oxigeno que incluye

un mecanismo o técnica para el cambio de gases. En cualquier momento que usted

cambie de gases para ajustar los niveles de oxígeno, ya sea para el más avanzado

circuito cerrado como para el más simple de los sistemas de circuito abierto. Estas

técnicas muchas veces permiten exceder los límites de tiempo y profundidad del buceo

recreativo.

Incluye el prestar más atención a sus límites fisiológicos, el medio ambiente en el que

Page 8: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

7

desarrollará el buceo, condiciones o situaciones tanto teóricas como reales que puedan

afectar el aspecto "seguridad" durante el buceo.

Algunas diferencias con el buceo recreativo son la gran cantidad de equipo requerido

para su realización, el entrenamiento, los gases envueltos en cada buceo (nitrox,

heliox, trimix, oxígeno), el nivel de conciencia y disciplina requerido en su práctica.

El equipo requerido en la práctica del buceo técnico, es quizás uno de sus mayores

atractivos para aquellos que gustan del parecido con astronautas. Tanques dobles,

chalecos compensadores con doble bolsa de inflación, capas de levantar 100 libras de

peso negativo bajo el agua, reguladores, bolsas de levantamiento, líneas, trajes secos,

etc. El equipo requerido, es parte esencial de esta actividad, la calidad y el

mantenimiento apropiado son uno de los puntos sagrados dentro del buceo técnico.

Una buena recomendación para aquellos que estén pensando en este tipo de buceo: si

existe algo que no debe hacerse dentro de este deporte, es el sacrificar la calidad o

cantidad de equipos necesarios. Desgraciadamente, sería el camino a un desastre,

ciertamente evitable. Si no se cuenta con el equipo adecuado o su situación económica

no le permite adquirir el equipo necesario, no ingrese al buceo técnico.

Algunos requerimientos, que se pueden obtener.

Adentrarse en el mundo del buceo significa penetrar en un medio ambiente al que no

estamos adaptados. Por lo tanto, siempre se deben respetar las leyes naturales que lo

rigen.

Para bucear, hay que tener en cuenta que la fortaleza y el dominio mental sobre el

organismo son fundamentales para lograr una adecuada relajación. También es

importante realizar un chequeo médico periódico, especialmente de corazón, pulmones,

oídos y vías respiratorias en general. Esta actividad exige una buena condición física,

que permita nadar aceptablemente, ayudar a un compañero en caso de emergencias y

desenvolverse hábilmente en situaciones imprevistas.

Page 9: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

8

En el buceo no conviene improvisar: es necesario incorporar todas las normas que lo

rigen, y siempre practicar con un compañero. Actualmente es un “deporte” seguro, y

todo el equipamiento moderno brinda la confiabilidad necesaria por ser a prueba de

fallos.

Pero precisamente en este campo de seguridad, confiabilidad y lujo se quiere abordar en

este proyecto, para mejorar e incrementar cada aspecto y variable que puedan ser

necesarias y útiles para el buceo.

Equipo necesario para bucear (Aquí es donde se quiere adicionar, promover y crear una

necesidad al respecto)

Los trajes

1.- Los de tipo húmedo, que permiten que circule algo de agua y mantienen el calor

corporal.

2.- Los semi húmedos, donde una vez que el agua ingresó al traje no sale y conserva la

temperatura del cuerpo.

3.- Los equipos inflables o secos, totalmente impermeables.

Los trajes están compuestos por pantalones, botas, guantes y capucha. Además de su

función térmica, protegen a la persona de cortes o raspaduras con animales o plantas

urticantes.

Chaleco de flotabilidad

Este permite que el buzo permanezca suspendido en la superficie con una flotabilidad

positiva o pueda sumergirse en una posición estable de flotabilidad neutra, aún cargado

de sobrepeso por los objetos que lleve. Esto se logra graduando a voluntad el aire del

chaleco.

Page 10: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

9

Lastre

Para nadar cómodamente es necesario tener una flotabilidad neutra. Esto se logra con el

lastre, una especie de cinturón que neutraliza con su peso la flotabilidad positiva. El

lastre lleva una hebilla de soltado rápido, que permite deshacerse de él con facilidad

ante cualquier emergencia. Su peso se calcula sobre un 8% a 15% del peso corporal y de

ello depende que el buzo alcance un nado parejo.

Aletas

La variación de velocidad del nado se regula con la ayuda de las aletas, que se usan en

los pies y se colocan sobre las botas. Hay muchos modelos en mercado, de diferentes

formas y compuestos, como plástico y grafito. En general se las puede dividir en dos

tipos: la de pie completo, tipo zapato, que se fabrican en tamaños diferentes, y las de

correa fija pequeña, mediana, grande o extragrande. Esta última es la más aconsejable,

ya que al regular la correa se la puede usar en varias modalidades.

Careta

Ligado a toda la vestimenta en general, la careta posibilita llevar a cabo cada cosa que

se haga, ya que se requiere de una nítida visión. Deben tener un vidrio inastillable y

templado, y ajustar de forma perfecta a la cara, incluyendo a la nariz, para poder exhalar

en su interior evitando el efecto de succión. Se recomienda lavar los vidrios del visor

cuando es nuevo y pasarle ‘antifog’ para evitar que se empañen bajo el agua.

Equipo de aire artificial

Para practicar el buceo autónomo a grandes profundidades y lograr permanecer

sumergido durante mucho tiempo lejos de la superficie se requiere un equipo que

facilite respirar aire artificialmente. El más usado en la actualidad es el de circuito

abierto, que expulsa al agua el aire exhalado por el buzo y forma las clásicas burbujas.

Otra opción es el equipo de circuito semicerrado; este sistema expulsa parte de los gases

y recicla otra parte, para que puedan respirarse nuevamente. También encontramos el

equipo de circuito cerrado, donde todos los gases expulsados por el buzo son reciclados.

Se usa en modalidades muy específicas aunque últimamente se está utilizando también

Page 11: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

10

en modalidades deportivas, porque no elimina las burbujas que suelen ahuyentar a

ciertos animales. De esta forma el contacto con la fauna es mayor.

Regulador

Uno de los elementos fundamentales de todo el equipamiento es el regulador, que

provee al buzo del aire extraído del tanque a presión ambiental. Está compuesto por tres

etapas: una primera etapa en la que se reduce la presión de aire a un nivel intermedio

para pasar a una segunda etapa que la reduce a la presión ambiental adecuada para

respirar. Además, en la primera etapa hay varias salidas. Una de ellas es de baja presión,

donde a través de una manguera se alimenta al chaleco, para poder regular la

flotabilidad neutra. Otra va al manómetro, que permite controlar el aire y la reserva que

hay del mismo. También hay una segunda etapa opcional, que sirve para auxiliar a un

compañero o para reemplazar (en caso de rotura) a la que se usa comúnmente.

Otros

Siempre se aconseja llevar un cuchillo, que puede servir para cortar algas y ayudar al

buzo si se engancha. Es aconsejable que sea de acero inoxidable y con mango resistente

al agua. El cuchillo se sujeta al traje en el lado interno de la pantorrilla.

Linterna subacuática, especialmente para el buceo nocturno, generalmente son

necesarias dos por seguridad.

Un silbato subacuático puede agilizar la comunicación por señas entre los buzos,

aunque no son muy empleados.

Básico

Para el buceo con solo el equipo básico es necesario un snorkel, no se usan tanques,

chaleco, regulador, ni lastre.

Page 12: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

11

¿Cuáles son algunas de las tecnologías que se encuentran en este medio?

Equipos de comunicaciones: radios para comunicaciones submarinas.

Equipos de navegación: GPS y radares.

Equipos de ecodetección: Ecosonda.

Scooter subacuático (sistema de propulsión, puede ser manos libres, agarrado del

tanque.)

Cajas para control de buceo,

Etc.

Page 13: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

12

INSTALACIÓN

En el CD que viene incluido en este proyecto de grado se encuentran estos programas

gratuitos:

- Blender, versión 2.33a. para Windows - Python, versión 2.3.4. para Windows

Se puede descargar Blender (http://www.blender3d.org), y por supuesto se debe

instalar, en la carpeta que se desee.

Para usar Python con Blender es puede descargar el intérprete completo

(http://www.python.org), pero no es necesario para empezar a aprender, ya que Blender

lleva incluido su propio intérprete (API) con todos los comandos de la librería principal.

Sin embargo, se puede hacer uso de librerías externas que hacen necesario instalar

Python en el sistema (o, al menos, las librerías típicas: string, math... en un directorio).

Cuando se instala Python para Windows NT/2000/XP se debe hacer lo siguiente:

- Click derecho sobre el icono “Mi Computador” Y seleccione propiedades o

también en el panel de control Doble Click en el ícono “Sistema”.

- En la pestaña “Opciones avanzadas”, Click en “Variables de entorno”

- Abajo en el panel llamado Variables de sistema, presione Nueva

- Para el Nombre de variable se escribe: "PYTHONPATH"

- Para el valor de variable se escribe: C:\PYTHON23;C:\PYTHON23\DLLS;C:\PYTHON23\LIB;C:\PYTHON23\LIB\LIB-TK

Para que el pythonpath quede correcto, se debe tener en cuenta la versión de python

Si se desea saber cómo es para otro sistema operativo, es necesario ver en la

documentación de Blender.

Aunque este párrafo posiblemente no encaje bien en esta sección, es muy importante

tener en cuenta que para importar los objetos de un archivo de Blender a otro, se debe

seleccionar los objetos entre las demás posibilidades que se encuentran al usar Shift F1

seleccionando el archivo. Esto se entenderá mejor cuando la tarea se realice.

Page 14: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

13

Disposición de los archivos y carpetas que incluye el CD del proyecto

Consta de 6 carpetas en la raíz del CD:

Aplicaciones:

- Blender, versión 2.33a. para Windows - Blender Publisher, versión 2.25, para Windows - Python, versión 2.3.4. para Windows

Creador de mallas:

Aplicación en Blender, que trae incluido los cuatro ‘Scripts’ de la carpeta Scripts, junto con un archivo llamado base.txt, que alimenta como ejemplo dicha aplicación.

Documento:

Todo el documento del proyecto de grado procesado en Microsoft Office Word. Tres carpetas que contienen todas las imágenes incluidas en el documento.

Ejemplos en el proceso de aprendizaje:

Son todos los ejemplos que fueron realizados por el autor, tomados de la documentación de Blender y otros tutoriales. Incluye: Scripts, sonidos, texturas y por ultimo 2 videos interesantes.

Primera parte – la animación:

Es todo lo concerniente a la primera parte del proyecto la cual expone éste documento. Se debe tener en cuenta lo siguiente: El archivo de Blender con la recopilación de toda la primera parte, está en la subcarpeta “El mundo –todo-“. El producto final de ésta primera parte, “la animación” se encuentra en la subcarpeta render.

Segunda parte – El juego:

Es todo lo concerniente a la segunda parte del proyecto la cual se expone en éste documento. Se debe tener en cuenta lo siguiente: En la subcarpeta “Mundo Final” se tienen cuatro archivos en Blender y que cada uno de ellos compone una versión levemente variada del producto final de la segunda parte del proyecto.

Page 15: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

14

CUERPO DEL PROYECTO

Primera Parte

La versión de Blender con la cual se trabaja esta primera parte del proyecto es: 2.32 Y la

versión de Python es: 2.3.3

No es un lugar real, sólo está en la imaginación del creador.

El mundo y el Universo

Este sirve para definir como se quiere el fondo y entorno del mundo, además de algunos

efectos posibles, HotKey ‘F8’ para esta versión Blender, es probable que en otras

versiones, la HotKey sea diferente.

En el primer grupo ‘Preview’, se tienen tres botones, y uno de ellos está presionado

‘Blend’. El color del fondo es mezclado desde el horizonte hasta el cenit sin importar la

orientación de la cámara, para este caso en particular, el gradiente de colores está

definido en el segundo grupo de botones ‘World’, desde un gris oscuro RGB: (0.1, 0.1,

0.1) hasta un azul claro RGB: (0.054, 0.701, 0.948).

De esta forma se logra la ilusión de ver el fondo del mar más oscuro que la superficie,

simulando el mundo real, además dependiendo del lugar geográfico de inmersión,

clima, época del año, corrientes, etc. Cambiando y modificando estos colores a nuestro

antojo se logra el ambiente deseado.

Page 16: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

15

Si se tiene únicamente el efecto de mezcla ‘Blend’ para el gradiente del color del

ambiente, no es suficiente para lograr el efecto de sentirse sumergido en agua, donde

ciertamente la luz se ve en forma diferente a como se ve en la superficie, este medio

más denso se puede simular con el efecto de bruma.

Para lograr la simulación de bruma existe otro grupo de botones dentro de los botones

del mundo ‘F8’ que lo permite ‘Mist Stars Physics’, primero éste tiene oprimido el

botón bruma ‘Mist’, luego es necesario escoger la tasa en que decae la bruma:

progresión cuadrática, linear o raíz cuadrada. Para este caso se tiene en forma cuadrática

con una intensidad de 0.1 definido por la opción (Misi: 0.1), de esta forma la bruma no

se ve demasiado densa, justo lo necesario para una buena visibilidad en el buceo. Por

supuesto dependiendo de todos los factores mencionados anteriormente, si se tiene

menos visibilidad en el medio marino entonces se debe usar otra progresión y/o otra

intensidad.

Todos los efectos siempre tienen que ver con la forma en que la cámara capta las

escenas, por esto, en el mismo grupo de botones se define la distancia en la cual la

cámara logra ver a través de la bruma, definiendo un valor inicial y un valor final, para

este caso inicial (Sta: 0.0) y final (Di: 28) lo cual dado la escala en que Blender usa

estos números, el 28 sirve para dar la impresión de que la visibilidad no va mas allá de

28 metros, ese número está en una escala arbitraria, para guiarse en todos los aspectos,

lo importante de una escala es que siempre sea la misma, así que de esta forma se puede

usar para tomarla en metros y obtener todo a escala del mundo real.

Por último, para acabar de definir la bruma, tenemos la opción de reducir el factor de

densidad de la bruma por el incremento de la altura, para este caso está definido en 5, es

decir, hacia la superficie tenemos menos bruma.

En este mismo grupo de botones ‘Mist Stars Physics’ se tiene oprimido el botón ‘Stars’

que genera un campo de estrellas y para este caso se tiene configurado de la siguiente

manera:

Page 17: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

16

El promedio de la distancia entre 2 estrellas cualquiera está en 8, definido por (StarDist:

8); La mínima distancia de la cámara a las estrellas, definido por (MinDist: 0.0); El

promedio de la dimensión en pantalla de las estrellas, definido por (Size: 0.1);

Aleatoriedad del color de las estrellas, definido por (ColNoise: 0.3).

El campo de estrellas configurado de esta forma genera una buena simulación del

mundo marino, crea la ilusión de tener plancton en las aguas, no es agua cristalina e

inerte sino algo más, “con vida”. Esto fue creado usando ensayo y error seguido de la

intuición.

Con todos los efectos juntos, se obtiene una buena simulación de un mundo

subacuático, listo para ser explorado por los amantes del buceo.

DATABLOCKS

Los ‘datablocks’ son estructuras como: ‘Mesh’, objetos, materiales, texturas, curvas,

luces, etc.; y además se puede concatenar entre si.

Esto funciona por herencia, de la siguiente forma: el Padre es el objeto, el hijo es una

malla ‘Mesh’ y el nieto puede tener materiales y/o texturas; de esta forma se pueden

entender las herencias generalmente con los diferentes ejemplos. Todos los objetos

siempre heredan de un abuelo en común “LA ESCENA”.

Page 18: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

17

Todas las líneas en esta grafica, van a cada uno de los objetos de la escena del mundo

submarino.

Estos algunos de los objetos de la escena con sus hijos.

En general los objetos se colocaron en la escena de forma aleatoria pero de tal manera

que la secuencia de la animación tuviese una lógica interesante.

Objeto Suelo Marino

Este objeto tiene una línea de 3 generaciones de hijos (mesh, material, textura) en este

orden.

Page 19: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

18

¿Como se hace?

Mesh

Generalmente la mejor forma de crear superficies, es crear un plano y subdividirlo

cuantas veces se crea necesario para lograr una cuadricula de vértices. La cuadrícula

también se puede crear directamente sin tener que subdividir de no ser necesario. (En

versiones anteriores de Blender no podía haber más de 64000 vértices en una malla).

Para lograr un efecto irregular en el piso se puede crear algo de ruido (botones de

edición (F9), en modo de edición (TAB), grupo de botones “mesh tools”, botón: noise)

presionándolo repetidamente, aun así, seguramente no es suficiente para que luzca real.

Seleccionando un vértice un grupo de vértices, deseados, y habiendo presionado

anteriormente la letra “O” para activar la edición de caídas proporcionales. Más que

caídas se puede usar cualquier función, agarrar (grab = GKEY), rotar (rotate = RKEY),

escalar (scale = SKEY), y aumentando o disminuyendo el campo de acción con el botón

de scroll del ratón. Para este caso, se uso algo de ‘grab’ creando sumideros y pequeñas

montañas, y también se uso algo de ‘scale’, de forma que luzca natural.

Page 20: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

19

Una sección de la cuadricula fue copiada e inclinada en un borde de ésta, y luego se

unieron los vértices creando caras nuevas, seleccionando los vértices a unir 3 ó 4, y

luego se usa la tecla F.

El suelo se encuentra -10 unidades, lo que significa en este caso, que está en la escala a

10 metros bajo el agua.

Su tamaño aproximado es de 100 m², fue necesario escalarla hasta este tamaño.

Por ultimo a toda la superficie se suavizó para dar una impresión más constante y de

esta forma la luz se refleje de una manera adecuada, con el botón ‘Set Smooth’ (botones

de Edición (F9)).

Material y Textura

Para obtener una superficie con un aspecto real, es muy importante tener muy bien

definido estos dos aspectos el material y la textura.

Para esta superficie en particular se intentó simular un suelo de arena, con gránulos más

o menos tangibles, primero se debe crear un material, este material no tiene nada en

particular excepto un color blanco puro RGB: (1, 1, 1) y dejando todos los demás

valores por defecto.

Para obtener la arena deseada se puede hacer un truco con una de las texturas que

Blender provee.

Page 21: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

20

Textura de nubes, sin colores es decir con el botón ‘Default’, y el botón ‘Soft Noise’

oprimido para dar una apariencia de gránulos medianos y suaves; NoiseSize: 0.0 para

que se vea como arena, es como tener las nubes en miniatura, NoiseDepth : 0.0 para

que los gránulos de la arena sean un poco visibles, si este valor se aumenta se obtendría

gránulos mucho más finos.

Luego se define el color de las nubes RGB (0.5, 0.5, 0) es como una amarillo cercano al

verde el cual, combinado con el color blanco del material se obtiene una arena muy

especial. Finalmente, se debe presionar el botón para la textura ‘hard’ (botones de

Material, grupos de botones ‘Map To’).

La previsualización muestra:

Objeto Superficie marina

Este objeto tiene 2 líneas, una de 2 generaciones de hijos, hijo ‘Mesh’ y el nieto

‘material’, no tiene una textura concatenada a él, y la segunda un solo hijo que es un

efecto especial que logra una animación IPO system (IPO se refiere a una

interpolación).

Page 22: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

21

Mesh

Se tomó un plano (Sobre le ventana 3D, se oprime espacio, Add->Mesh->Plane) se

subdividió repetidas veces (en modo Edición, WKEY-> Subdivide), pero algunas de

estas subdivisiones fueron del tipo fractal (WKEY-> Subdivide Fractal), con factores

aleatorios entre el 10% y 30 %, esto para que la superficie no fuese tan simétrica, y la

forma en que pega la luz se lograra visualizar de manera no tan homogénea.

Tamaño aproximado 200 m², se escaló un poco más grande que el suelo marino, para

poder ver la animación de las olas siempre como una constante hasta en los bordes del

mundo.

Por último, toda la superficie se suavizó (botones de edición F9, botón: Set Smooth)

para dar una impresión más constante, y de esta forma la luz se refleje de una manera

adecuada. Si no fuera de esta forma cada cuadricula se podría identificar por separado y

no el mar como un todo.

Material

Para lograr un aspecto de superficie de agua visto subacuaticamente, fue necesario hacer

varios trucos interesantes, sobre el menú de botones de material F5.

Page 23: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

22

El color del material es exactamente el mismo del color del cenit para el mundo, RGB

(0.054, 0.701, 0.948).

El truco consiste en convertir esta superficie en algo transparente como si fuera de

vidrio de color azul claro. Para dicho propósito se activa el z-buffering para caras

transparentes presionando el botón ‘ZTransp’ en el grupo de botones ‘Mirror Transp’,

configurando sus cualidades de la siguiente forma:

Índice angular de refracción de la luz (IOR: 1.0); cantidad de refracciones maximales

calculadas (Depth: 2); Poder de Fresnel para la transparencia (Fresnel: 1.0); Mezclando

el factor para fresnel (Fac: 1.5); Áreas opacas especulares sobre materiales transparentes

(SpecTra: 0.0); factor de emisión de luz para materiales transparentes (Add: 0.0); Todos

estos valores fueron seleccionados a ensayo y error.

Por último, para acomodar un poco mejor la visualización de la cámara, se modifica el

grado de especularidad (Spec.0.619) y la dureza de la especularidad (Hard: 351) en el

grupo de botones ‘Shaders’.

Efecto Especial ‘Ondulaciones’

Este menú se encuentra en los botones para el objeto (F7).

La posición inicial para los ejes X y Y están definidos en (0,0) por los valores de (Sta x:

0.0, Sta y: 0.0) modificar estos valores no tendría ningún sentido, para este tipo de olas

que se quiere crear.

Page 24: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

23

En la figura se observa que están presionados los botones de ‘Y’ y de ‘Cycl’, lo cual es

perfecto para crear el efecto de olas cíclicamente en la dirección del eje y. Se puede

tomar la dirección del X igualmente, esto depende de la dirección hacia la cual se quiere

que se muevan las olas. No es necesario presionar los 2 ejes, por que si no el efecto que

se obtiene es como cuando se lanza una piedra al agua y las ondas se expanden en

circunferencias.

Para crear una buena ilusión de olas en el mar el ancho (Width: 1.0) de la ola debe ser 4

veces el estrecho (Narrow: 025), estos valores hasta ahí parecen arbitrarios, ¿por que no

escoger un Narrow de 1.0 y un Width de 4.0?, por que esta sujeto a los otros dos valores

y especialmente al tamaño de la superficie, para crear una muy buena ilusión de un mar

en calma.

La velocidad de las olas (Speed: 0.05) y la amplitud de las olas (Heigth: 2.0) tienen

estos valores.

Se especifica el frame en el cual debe comenzar es decir (Time Sta: 0) y el tiempo de

vida de las olas se coloca en ceros, con el fin de que éstas sean inmortales (LifeTime: 0)

el ‘DampTime’ en este punto ya no sirve de nada.

Este efecto especial crea un sistema de Interpolación (IPO System) para que se

produzca una animación de olas a lo largo de toda la escena.

Objeto Pez ‘Salmonete Amarillo’

La herencia esta definida de la siguiente forma:

Page 25: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

24

Por un lado está la línea de los hijos que construyen el ‘mesh’, el material y la textura

que es creada desde un archivo previamente escaneado con la textura de este Pez en

especial. Por otro lado, está la línea con los hijos que crean la animación, la armadura o

esqueleto del pez, el efecto especial de emisión de partículas para crear un cardumen, y

por ultimo la animación ‘lattice’.

¿Como se construye?

Existen muchas formas de crear objetos, en este pez en especial se uso una técnica con

curvas ‘Bézier’. Un punto de control (vértice) de una curva ‘Bézier’ consta de un punto

en el medio de dos puntos extremos.

Las curvas y las superficies son objetos como los ‘Mesh’, pero difieren en que éstos son

expresados en funciones matemáticas, en lugar de simplemente el principio básico de

punto a punto. Éstos son definidos con menos datos, así que producen resultados

gráciles con menos memoria usada en tiempo de modelamiento, mientras que se

incrementa la demanda en tiempo de ‘rendering’.

Page 26: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

25

Este pez puede medir entre 15 y 25 cm., con un tamaño máximo de 33 cm. en el mundo

real, en este mundo virtual subacuático miden aproximadamente 30 cm.

Se toma una figura como la anterior (escaneada previamente) y se usa como foto de

fondo (En la barra de herramientas que se encuentra en la ventana 3D, view-

>Background Image, se carga la imagen). Sobre ella, se define una curva ‘Bézier’ muy

bien detallada a su alrededor y se cierra la curva (se presiona la barra espaciadora-

>Curve->Bezier Curve, para luego adicionar puntos a la curva seleccionando uno de los

dos extremos. Se mantiene presionada la tecla Ctrl. y se presiona el botón izquierdo del

ratón ‘BIR’. Para mover estos puntos se utiliza GKEY, y para adicionar un punto-curva

en medio de otros 2 puntos-curva, se usa WKEY->Subdivide. Para borrar una curva se

usa XKEY, para crear una esquina afilada, VKEY y para deshacer lo anterior se usa

CKEY. Pero lo más importante es que para lograr manipular todo esto, se deben

seleccionar los vértices de las curvas a las cuales se les van a aplicar estas

transformaciones, y siempre se puede mover todo con GKEY). Posteriormente, se crean

también 3 círculos ‘Bézier’ (Barra espaciadora->Curve->Bezier Circle) para dar origen

al ojo, la branquia, y la línea dorsal, las cuales se deforman para lograr la figura

deseada.

Luego se obtiene un pez bidimensional, que ciertamente no es lo que se necesita,

entonces se puede anchar un poco para este caso 0.190 (Botones de edición F9, en

‘Curve and Surface’, y el ancho se manipula con la diferencia entre los valores Ext1: 0.0

y Ext2: 0.190), con una definición de resolución U de 6 (DefResolU: 6), para crear una

adecuada forma y número de vértices en el momento es que esta se deba transformar en

un ‘mesh’, la curva se debe convertir en un ‘mesh’ para poder manipular sus vértices

tridimensionalmente.

Page 27: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

26

Cuando se tiene el ‘Mesh’ del pez (esto se logra con ALT-C) se puede aplanar todas las

aletas (en modo de Edición, se seleccionan los vértices de la aleta que se va a aplanar

con BKEY, y se puede usar WKEY->Merge para unir los vértices a uno solo, o se

puede escalar la aleta con SKEY y luego WKEY->Remove Doubles, para eliminar los

vértices que están unidos) para que tenga un aspecto más real. A este pez le faltan aún

las aletas pectorales, y la aleta dorsal para moverse con más realismo.

Material y Textura

En el intento de obtener una textura muy realista, se emplea el mismo color del pez,

escaneando la textura del “Salmonete Amarillo”.

Cuando se usa una textura desde archivo, la manipulación de este para lograr el efecto

deseado es un poco diferente a cuando se tiene una textura estilo ‘plug-in’, ninguno de

los colores, ni de los botones en las texturas ni del material afectan el aspecto del objeto.

Para este caso se modificó un poco lo siguiente: en los botones de material, en el grupo

de botones que da sombra ‘Shaders’ se cambio la propiedad que modifica cantidad del

color del ambiente global que el material recibe (Amb: 0.05), porque la luz en el

ambiente es suficientemente fuerte y clara. (esto se profundiza en la sección de la

luces); En los botones de material, en el grupo de botones ‘Map To’ se presiona 2 veces

hasta que quede amarillo el botón de ‘Nor’, que causa un cambio en la textura en el

momento del ‘Render’ (algo como carrasposo), también se presiona 2 veces el botón de

‘Hard’ hasta quedar amarillo, que afecta en la textura el valor de la dureza.

Page 28: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

27

Armadura o Esqueleto

Para obtener un movimiento realista, los huesos están concatenados en una armadura o

esqueleto, y también poseen una jerarquía de herencia.

En el grafico anterior se ve cómo está la disposición de la armadura, en orden

jerárquico: Cabeza, Tronco, Abdomen, Cola, ColaD – ColaU; Toda la armadura tiene

que ser hija del ‘Mesh Pez’ para que se pueda conectar con el objeto. A cada una de

secciones llamadas huesos, se le debe asignar un conjunto de vértices que son afectados

por el movimiento del Hueso, y son configurados en el botón de Edición F9, en el modo

de edición (TAB), mientras que este seleccionado el objeto pez.

Page 29: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

28

En el momento de importar el pez con armadura (SHIFT-F1) al archivo con la escena

completa, no se puede recuperar bien el vínculo que hay entre el mesh-pez y la

armadura, entonces es necesario volver a repetir estos pasos de nuevo en el archivo con

el escenario completo.

Emisor de Partículas

Blender provee tres tipos de efectos especiales, que pueden ser usados de manera muy

creativa. Para este caso en particular se usa el efecto de partículas que es rápido, flexible

y poderoso.

¿Cómo se hizo?

Se debe escoger un objeto-Mesh que sirva de emisor de partículas, de esta forma cada

vértice emitirá las partículas que se quiera. Para este caso emitirá peces.

Se crea un plano y se subdivide 2 veces, creando 25 vértices emisores de partículas,

luego para este caso en particular se configura de la siguiente forma, en los botones de

objeto, en el grupo de botones de efectos:

Page 30: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

29

Muchos de los valores que aparecen, se dejan por defecto, sólo se nombrarán los que

fueron cambiados.

(Tot: 50) para obtener un total de 50 partículas; (Sta: -200) debido a que las partículas

van saliendo del emisor de acuerdo al valor de esta propiedad (hablando en frames),

sirve para que ya desde el frame 0 ya muchas existan; (End: 50) hasta este número de

frames el total de partículas acaban de salir o aparecer; (Life: 1000) es el tiempo de

duración en frames de cada una de las partículas, es decir cuando en la animación se

esta acercando a este numero las partículas comienzan a desaparecer; (Keys: 15)

número de posiciones de llave, esto sirve en la animación; (Bspline) activa el algoritmo

Bspline, para la interpolación de partículas (crea la sensación de más realismo); (Vect)

da a las partículas una dirección de rotación; (VectSize:0.1) especifica la velocidad del

vector; (Norm: 0.15) la velocidad con que comienzan a moverse las partículas; (Rand:

0.01) variación aleatoria de las partículas en la velocidad de comienzo.

Lo que sigue a continuación es hacer al emisor de partículas hijo del ‘mesh’ Salmonete

Amarillo (ctrl. P -> Make Parent), entonces toda la descripción anterior puede

cambiarse, en todas las palabras “partículas” se cambia por “peces”, y se obtiene un

emisor de peces. En el momento de la animación el emisor es invisible, pero el pez

original no lo es, así que es necesario ocultarlo.

‘Lattice’

Un ‘Lattice’ (enrejado) consiste de una no ‘rendeable’ cuadrícula tridimensional de

vértices. Su principal uso es dar una deformación extra a cualquier objeto hijo que éste

Page 31: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

30

pueda tener. Esos objetos hijos pueden ser ‘Meshes’, superficies, incluso partículas.

También se puede usar para mover objetos por el ‘lattice’, en este caso particular se usa

para dicho propósito, moviendo los peces a través del ‘lattice’, pero a la vez las

partículas como grupo se pueden deformar no los peces.

Cuando se crea un ‘Lattice’ (Barra Espaciadora->Lattice), éste tiene forma de Cubo, lo

importante es que con este cubo o conjunto de cubos se rodee el objeto que se quiere

animar (para este caso un grupo de peces) y como el ‘Lattice’ en sí es una grilla

tridimensional, se modifican entonces los parámetros U, V, W. que componen su

estructura cúbica. Para obtener lo deseado, en este caso U: 10, V: 1, W: 1, y el cubo se

estira un poco en un paralelepípedo para encerrar todos los peces, con U en 10, se

obtienen 10 paralelepípedos a lo largo más o menos del eje X, éste también se puede

rotar, y posteriormente se hacen las deformaciones pertinentes: subir hacia la derecha,

para luego bajar un poco a la izquierda para que los peces sigan esta trayectoria.

Curiosamente, en cualquier caso, cuando algún segmento del ‘lattice’ se rota a la

izquierda, las partículas movidas vectorialmente por el efecto especial, se inclinan hacia

abajo y también sucede lo contrario si se cambia la dirección de el ‘lattice’.

Objeto Cueva de piedra

Deseando tener objetos interesantes en la escena, la cueva de piedra es una elección

interesante, la cual sirve como ejemplo, para los lugares submarinos muy rocosos.

Page 32: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

31

Mesh

Para construir un objeto-mesh como este, de paredes de roca sólida, se comienza con un

cubo, el cual se aplana y se estira usando escalamiento, seleccionando todos los vértices

(8 para esta figura geométrica). Posteriormente se subdivide fractalmente varias veces

con un factor aleatorio entre 15% y 50% para dar una apariencia de rocas aleatorias

filosas, en ángulos como la que se puede ver en la figura. Hasta ahora, se tiene algo

relativamente plano, así que para formar una cueva, se deben tomar algunos vértices y

moverlos con la edición proporcional de caídas OKEY, tal como se hizo con el suelo

marino, y se le va dando la forma, tratando de no ser muy precisos. Se puede usar la

función ‘Extrude’ para copiar y mover algunos vértices, rotándolos hacia adentro para

que este cubo en principio tome forma de cueva.

Cuando se hacen muchas subdivisiones se puede tener un número exagerado de

vértices, que hace lenta la manipulación y renderización de los objetos. Para evitar esto

se pueden quitar algunos de ellos, eligiendo la opción ‘Rem Doubles’ (WKEY-

>Removed Doubles o también en los botones de edición F9, en el grupo de botones de

herramientas del ‘Mesh’, que sirve para remover vértices duplicados. Entonces se define

la máxima distancia de estos vértices que están duplicados para que se elimine un buen

número de estos).

Page 33: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

32

El objeto se dejó sólido (es decir no se uso la opción ‘set smooth’) para lograr ese

aspecto con ángulos demarcados.

El tamaño de esta cueva es aproximadamente 2.5m de largo, por 2m de ancho, por

1.5m de alto.

Material y Textura

Como siempre los materiales y las texturas hacen que los objetos luzcan realmente

como los objetos que se quieren ver.

Para este caso también se puede usar una de las texturas que provee Blender, debido a

su forma de configuración y gran versatilidad, se puede lograr efectos muy variados.

En Botón de texturas, se selecciona ‘Clouds’, (NoiseSize: 0.350), (NoiseDepth: 6), se

presiona el botón ‘Hard Noise’ y se obtiene la figura ‘preview’ de la derecha de la

imagen. Luego, en el botón del material se dejan los valores por defecto, sólo se cambia

el color de la textura en RGB (1, 6.16, 0), un color entre café y amarillo ocre. El color

del material se deja tal cual en RGB (0.8, 0.8, 0.8). Se presionan una sola vez los

botones ‘Nor’ y ‘Hard’ en el grupo de botones ‘Map To’ (ya se hablo de estos

anteriormente). En el grupos de botones ‘Map Input’ se seleccionan dos de los ejes en Y

y el otro en Z, el tamaño de X y Y se aumenta a 3 y el de Z se deja igual en 1, esto para

lograr el trazo deseado de la textura sobre el mesh, creando el aspecto de roca; Por

último se modifica la forma como incide la luz, de manera que sea más opaco y rugoso;

y se modifican los siguientes parámetros: (Ref: 0.414) la cantidad de reflexión; (Spec:

Page 34: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

33

0.173) grado de especularidad; (Hard: 224) dureza de la especularidad; (Amb: 0.164) la

cantidad de color ambiental global que recibe el material.

Todos estos valores se logran encontrar con un poco de ensayo y error, para obtener

como resultado la cueva de roca.

Objeto Barco

En la documentación de ‘Blender’ en el Capitulo 7, curvas y superficies, Sección

‘Skinning’, se muestra como hacer la superficie curva de este barco.

Superficie Curva

Este es un buen ejemplo de cómo se pueden crear objetos de otra forma que no sean

mesh, para este bote se usa la superficies NURBS (Non Uniform Racional B-Splines),

al igual que la curvas Bézier, son definidas en términos de un conjunto de "vértices de

control" definiendo un "Polígono de Control", sin embargo estas siguen diferentes leyes

matemáticas.

Las curvas sólo producen interpolaciones unidimensionales, la superficies tienen una

dimensión extra, la primera llamada U, como las curvas y la segunda V. Una grilla de

puntos de control de dos dimensiones define la forma para las superficies NURBS. Con

esta clase de curvas es un poco diferente la forma de trabajar.

Se crea una superficie, se le da la forma que tiene la curva que esta más al centro del

barco, luego se copia varias veces y a cada una, se le va dando la forma de los demás

Page 35: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

34

segmentos del barco, para un extremo y luego para el otro y por último se seleccionan

todas la curvas y se unen las caras, creando la superficie que se desea. Todo esto se

explica en la documentación de Blender.

Este barco está escalado de tal forma que tiene un tamaño aproximado de 2 m. de largo

por 80 cm. de ancho, es pequeño, para estar en mar abierto.

Material y Textura

Por supuesto, para dar como siempre el realismo deseado al barco, se le añade una

textura, que para este caso fue una como tablones de madera, tal como se ve en la figura

del lado derecho, cargada desde un archivo.

Luego al material se le hacen unos cambios para que luzca bien dentro de la escena,

(Spec: 0.53) para aumentar un poco el grado de especularidad de manera que se vea más

Page 36: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

35

brillante, (Amb: 0.32) para disminuir un poco la cantidad de color ambiental global que

el material recibe, dado que la escena tiene bastante luz.

Objetos Caracoles

Todos estos objetos fueron creados, por un Script Python para Blender, de distribución

libre, en francés “Coquillages”.

Este Script usa unas pocas fórmulas encontradas en un archivo de "C", del Author:

Randolf Schultz que fue inspirado en el artículo tomado de: Computer & Graphics

Vol.17, No 1, pp. 79-84, 1993 ("Digital Seashells" M.B. Cortie).

En esta imagen se ve como se maneja la herencia para estos objetos.

Aunque el Script provee la posibilidad de crear caracoles de una forma y variedad muy

interesante, para este caso se uso dos tipos de caracoles, Oxisteles y Lyrias, las primeras

fueron copiadas 7 veces, escaladas de manera diferente, y rotadas de forma un poco

aleatoria, para dar la impresión de que el mar las había dejado allí por la marea.

Tienen un tamaño aproximado de 15 cm. de largo.

No se quiso poner ninguna textura ni material, este es el color que trae por defecto

Blender para los objetos que son creados.

Page 37: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

36

Mesh

Esta figura muestra una ‘Lyria’, que fue escalada un poco más grande,

aproximadamente 60 cm. de largo. A este objeto se le agregó una textura muy

interesante de las que Blender trae por defecto.

Material y Textura

Page 38: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

37

Todos los valores del material se dejan por defecto, excepto uno de ellos: (Spec: 0.79) el

cual le da un toque brillante.

Se usa la textura llamada ‘Magic’, y se modifican los siguientes parámetros: (Depth: 10)

(Turbulence: 3) para adquirir esta textura tan original.

Objeto Coral Cerebro

En la misma forma en que se hizo la cueva de roca, está hecho este objeto, pero es aún

mucho más sencillo.

Mesh

Se toma un plano y se subdivide las veces que sea necesario, aproximadamente 4 veces;

luego se deforma un poco usando el método de caídas proporciónales OKEY, el los

vértices necesarios, y doblando un poco las esquinas hacia adentro, logrando una semi-

esfera del tipo (UVSphere), de hecho también se puede empezar una esfera con 16

segmentos y anillos más o menos, y deformarla un poco.

Es necesario oprimir la opción ‘Set Smooth’ para suavizar los vértices puntiagudos y las

caras con ángulos.

El tamaño aproximado de este coral cerebro en el mundo virtual, es de 1.5 m. de largo

por 1.3 m. de ancho por 80 cm. de altura.

Page 39: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

38

Material y Textura

Nuevamente lo más importante de este objeto para que luzca real, es la textura y la

forma es que esta se debe ver en el ‘render’.

Se usa un archivo con la textura de este coral, pero como sólo es una mínima porción de

las circunvoluciones, es necesario que se repita en el eje X y en el eje Y, 4 veces, para

adquirir la apariencia deseada.

En las propiedades del material únicamente se cambio (Amb: 0.14) para que contrastara

bien con la luz de ambiente.

Objeto Luces

Para crear un mundo virtual verdaderamente real, lo más importante es tener el sistema

de iluminación, muy bien desarrollado, aparte de los materiales y las texturas de los

objetos que también deben pegar bien. Es importante saber que una sola luz nunca logra

la imagen que se desea.

Page 40: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

39

Se tienen doce luces de tipo área, que para este ejemplo, están algo subutilizadas, (en el

tutorial no describen su funcionamiento), dos luces de tipo reflector “spot”. Esta es una

fuente de luz cónica y es la única capaz de proyectar sombras, y una luz de tipo lámpara

que ilumina en todas direcciones desde un único punto.

Es necesario mejorar el sistema de luces, realmente no ofrece aún imágenes realistas,

pero saberlas acomodar no es tarea fácil.

Las luces de tipo área, siguen la trayectoria por donde se mueve la cámara y por ende

por donde se mueve la animación; Todas éstas tienen una energía de 0.4, para no saturar

la escena con tanta luz, aunque de por sí está saturada de muchas luces que hacen muy

lento el render. Por otro lado, dado el tamaño grande de la escena, en principio está bien

pensado.

Se tienen además dos luces de tipo reflector, una de éstas está iluminando el barco desde

arriba, con la intención de que esta genere una sombra sobre el mar, pero claramente no

es posible lograr ese objetivo de este modo. Esta luz tiene el valor de las propiedades

por defecto excepto (Dist: 24), el valor de la distancia en el cual la intensidad de la luz

está reducido a la mitad. Este valor está un poco más grande de su valor por defecto.

El otro reflector tiene una importancia valiosa en la animación, su función se inicia

cuando la cámara se acerca a la cueva, ésta se prende y se mueve un poco. El rayo de

luz incide dentro de la cueva y luego se apaga. Esta luz usa propiedades especiales:

(Dist: 26) valor que tiene que ver con la visualización de la cámara, como se verá más

Page 41: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

40

adelante; (SpotSi: 20) ángulo del rayo de luz en grados, un poco más cerrado que el

valor por defecto; (SpotBi: 0.5), la suavidad del borde de la luz, en esta caso un poco

más suave que el valor por defecto. (Quad), botón que activado, hace que la luz del

reflector use una proporción cuadrática inversa para la atenuación de la misma; (Halo),

botón que presionado crea una luz con un halo volumétrico y da la ilusión de que la luz

pasa a través de la bruma, en este caso a través del agua, por eso es tan importante. Y

para añadir un poco mas realismo se cambia un poco la configuración de ésta: (Halo

Step: 8), muestreo de frecuencia en un Halo Volumétrico y (Soft: 4), tamaño de la

sombra en el área de muestreo.

La cámara

La cámara funciona como una cámara real, su configuración es muy sencilla, y de ésta

depende que lo que se haga realmente pueda verse. Y aunque Blender permite que

cualquier objeto sirva como cámara para ver el mundo, la cámara permite configurar

ciertos detalles que además en este caso son muy útiles.

El tamaño del lente se indica por el valor (Lens: 25) con un lente de 25 mm., se

adquiere un visión Semi-ojo de pescado, el lente que viene por defecto es de 35 mm.,

como el de una cámara normal.

La visión de bruma que alcanza a ver la cámara está definida en los valores del mundo,

con un alcance de 30 m. La cámara posee algunas propiedades, entre ellas un (ClipSta:

0), y un (ClipEnd: 60), valores desde y hasta donde se puede ver, respectivamente.

Como en los valores del mundo, la cámara no puede ver más allá de 30 m. porque hay

Page 42: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

41

bruma, esto permite el efecto de ver más estrellas (botón ‘Stars’), más vida, por decirlo

de algún modo.

La otra propiedad, (DrawSize: 1.05), sirve para agrandar o empequeñecer la figura de la

cámara en la vista 3D del programa. En este caso, el valor está un poco más grande,

porque el mundo es bastante amplio.

Dos botones están presionados, ‘ShowLimits’ que con una línea que sale del ángulo de

visión de la cámara, muestra el alcance visual de ésta, 60 m. en este caso; ‘Show Mist’

que también con una línea amarilla en la vista 3D muestra el alcance de visión de la

cámara a través de la bruma.

La cámara por defecto siempre va ver el mundo de forma perspectiva, es decir como ve

el ojo humano. De todas maneras si se quiere, la cámara también puede ver el mundo de

forma ortogonal, esto significa que tanto los objetos que están lejos como los que están

cerca se ven en la misma línea de visión, por esto los lejanos tendrán igual tamaño que

los cercanos, esta clase de vista es muy práctica cuando se trabaja en 3D, porque si se

trabaja en perspectiva, la manipulación de los objetos sería bastante complicada.

Esta jerarquía indica que la cámara tiene una animación IPO, de la cual se hablará más

adelante.

Es importante tener en cuenta cómo van dirigidos los ejes coordenados. En el momento

de crear una animación, pero de este se hablará luego.

Page 43: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

42

En la vista 3D del programa, se puede escoger la forma de visualización, NUMPAD1

para obtener una vista del eje XZ, NUMPAD3 para una del eje YZ y NUMPAD7 para

una del eje XY, teniendo además la posibilidad de ver cada uno de los ejes descritos

anteriormente, desde una vista posterior. Todas estas vistas vienen por defecto con

visión ortogonal. Por último NUMPAD0 para obtener una vista en perspectiva desde la

cámara.

Las Capas

Acceso rápido con MKEY, con el objeto seleccionado, para cambiarlo de capa.

Las Escenas 3D frecuentemente se vuelven exponencialmente más confusas con el

crecimiento de la complejidad. Para tener el control de esto, los objetos pueden ser

agrupados en capas, así que solamente las capas seleccionadas muestran los objetos que

hay en ellas.

Page 44: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

43

Blender provee 20 capas; las cuales se pueden escoger para ser mostradas con unos

botones pequeños sin nombre en la cabecera del grupo de botones en la ventana 3D.

Comienza con la capa 1 en la parte superior izquierda y hacia la derecha va

aumentando.

Solo las capas que son seleccionas van a salir en el ‘render’, por esto es importante no

olvidar seleccionar todas las capas en las cuales tenemos objetos.

La distribución de este proyecto está de la siguiente forma según las capas:

1. Suelo Marino

2. Superficie

3. Todos los caracoles

4. Coral Cerebro.

5. Cueva de roca

6. Salmonete amarillo y todos sus herederos

8. Barco

9. Cámara

10. Todas las Luces.

Sobre la Animación

Esta es la característica que hace de Blender un programa bastante práctico.

Page 45: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

44

Esta Figura muestra cómo se anima el esqueleto del Pez Salmonete Amarillo, a groso

modo, en 40 frames el pez hace todo su moviendo. Los valores de la animación fueron

hecho cada 10 frames, definiendo el moviendo máximo hacia un lado, moviendo todos

los huesos, 10 frames más para tener el pez otra vez recto, 10 frames más para obtener

el movimiento espejo del anterior, y 10 frames más para volver a su posición original.

De esta forma se puede repetir y definir el tiempo de vida de los peces, es decir 1000

frames.

Cada hueso tiene su propia grafica IPO, es decir cada parte que se mueva tendrá una

gráfica. En este caso, la animación se hace rotando los huesos del pez, visto desde

arriba, para darle un moviendo en el eje X Y, se aseguran las rotaciones en los frames

correspondientes con las llaves.

Posteriormente, el emisor de partículas hace su parte para que parezca un cardumen de

peces: con movimientos semi-aleatorios Y el ‘lattice’ lleva la dirección de este

cardumen, para que no sea simplemente algo recto.

Esta figura muestra la animación de la linterna que ilumina por un momento la cueva de

roca, esta tiene muchas más llaves que el resto de la animaciones, porque modifica

según el frame, la posición de la luz, su rotación, su energía, y el ‘SpotSi’ el ángulo del

rayo de luz, inicia en el frame 1011 y su actuación finaliza en el frame 1155.

Page 46: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

45

Esta figura muestra las curvas y las llaves, de la animación de la linterna, para las

propiedades de la energía de la luz y el ‘SpotSi’

Esta figura muestra la animación de la cámara, la cual hace interesante la animación, las

llaves que usa son únicamente para la posición y la rotación de esta, entre el frame 0 y

el frame 1500.

El sistema IPO, usa las curvas Bézier para su funcionamiento; esto es una ventaja, pero

aprender a utilizarlo es complejo. Para explicar lo interesante de esto -que además se

usa en todas las animaciones- primero se posiciona en el frame deseado, y se coloca una

llave (IKEY), ya sea para la posición y/o para la rotación en este caso con la cámara.

Luego se puede avanzar hasta otro frame lejano, y colocar otro par de llaves, y el

programa crea una curva desde el primero grupo de llaves hasta el segundo, suavizando

la animación, aunque algunas veces puedan obtenerse estados no deseados.

Page 47: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

46

Render

Esta animación tiene 1500 frames, cada segundo de animación tiene 25 frames, es decir

esta hecha para un minuto exacto, mostrando los objetos interesantes del mundo.

La renderización tarda 4 horas aproximadamente en un procesador Athlon XP 2800

GHz, con 512 MB. Se encuentra almacenada en formato AVI JPEG y ocupa 78.831

KB.

Se intentó añadirle sonido con el mismo Blender pero no funcionó, así que se le agregó

con otro programa, una pista de un minuto exacto, con 10MB de tamaño.

Y los frames que se muestran a continuación, son representativos de toda la animación.

Frame 1

Page 48: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

47

Frame 1041

Frame 1181

Page 49: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

48

Frame 1301

Frame 1421

Page 50: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

49

SEGUNDA PARTE

La versión de Blender con la cual se trabaja esta segunda parte del proyecto es: 2.33ª, y

la versión de Python es: 2.3.4

La diferencia de versiones entre la primera parte del proyecto y esta segunda parte se

debe a que salieron estas nuevas versiones en medio del camino.

Esta segunda parte del documento no pretende profundizar en la manipulación de las

opciones y herramientas de Blender ya que esto se realizó en profundidad en la primera

parte del mismo, y la forma de crear y manipular objetos es básicamente la misma.

Esta segunda parte pretende tratar de simular el Cantil de Nirvana en la isla de San

Andrés, aquí se muestra un mapa con la localización de este hermoso e interesante

destino de buceo.

Page 51: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

50

El mundo y el universo

Para llegar al menú de botones del mundo, se puede usar la HotKey F8 en esta versión

de blender.

En este caso no sirve aplicar ninguno de los efectos del primer grupo de botones (Real –

Blend – Paper), el efecto que produce el botón ‘Blend’ sería muy apropiado y hace falta,

pero el Game Engine no aplica ninguno de estos efectos, por esto mismo el único color

que se debe escoger es el del horizonte (HoR, HoG, HoB) para este caso está en azul

agua marina, dado por RGB: (0.0, 0.776, 1.0) escogido ajustando estos valores y

buscando este tipo de azul.

Ninguna otra opción que se ajuste sobre el grupo de botones ‘World’ funciona en el

momento del juego.

El efecto de bruma si funciona durante el juego entonces este está ajustado como se ve

en la figura, grupo de botones ‘Mist/Stars/Physics; el botón ‘Mist’ está presionado

indicando esto, la tasa en que decae la bruma está en una progresión cuadrática lo cual

lo indica el botón presionado ‘Qua’, pero no importa cual se oprima ni la intensidad de

la bruma, el cambio de estos valores no hace ningún efecto en la forma en que se ve el

juego, por esto la intensidad, opción (Misi: 0.0) tiene este valor “por defecto” y no tiene

utilidad alguna.

Lo único que si funciona en el juego es la distancia en la cual la cámara logra ver a

través de la bruma, se define un valor inicial en (Sta: 5.0) y un valor final (Di: 50). Estos

valores se obtuvieron por ensayo y error, aunque se pueden interpretar en el modo en el

cual está hecho la escala, es decir, si la cámara logra ver hasta 50 m., el buzo virtual

logra ver hasta la misma distancia, lo cual en la vida real no muy cierto (no es muy

Page 52: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

51

probable distinguir algo que este a esa distancia, así la visibilidad sea muy buena bajo el

agua), pero para esta simulación, funciona adecuadamente.

La opción de reducir el factor de densidad de la bruma por el incremento de la altura

(Hi: 5.0) tampoco funciona en tiempo real.

Aunque en el grupo de botones del cual se está hablando tiene presionado el botón

‘Stars’, este tampoco funciona con el ‘Game Engine’, pero es probable que en alguna

versión futura de Blender si funcione. Como ya se había dicho antes, este efecto causa

la impresión de agua no cristalina, lo cual se acerca más a realidad.

Si se desea obtener una simulación de noche, simplemente se cambia los colores del

horizonte, al negro o algún otro color cercano a este y asunto resuelto, porque durante la

ejecución del juego en donde se encuentre la cámara este lugar se ve más claro, como si

se llevara una luz, todo estos temas se retomarán más adelante.

DataBlocks

Estos gráficos únicamente muestran la idea de los DataBlocks, los objetos y su herencia,

no se entiende nada con todas estas líneas en desorden, entonces sólo es necesario saber

lo siguiente: lo cuadros de color gris son lo objetos, los de color café oscuro son los

‘Mesh’, los de color verde son los materiales, los de color café claro son las texturas, los

de color azul son animaciones u objetos IPO (InterPOlation) y los de color verde oliva,

son luces.

Primera Escena

Page 53: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

52

Segunda Escena

Tercera Escena

Page 54: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

53

Objeto Suelo Marino

Tal vez este sea uno de los puntos más importantes a la hora que el mundo luzca cerca a

la realidad. Para esta segunda parte del proyecto se trata de simular el cantil de nirvana,

teniendo en cuenta su extensión principalmente.

Primer Escenario

Este primer suelo tiene una extensión de 200 m. de ancho y aproximadamente 150 m. de

largo, lo cual no significa que el cantil de nirvana tenga exactamente estas medidas en

su primera parte, este lugar posee principalmente un suelo en roca, con algunos corales

blandos que se posan en él.

Este plano desciende en forma constante desde su lado izquierdo (pared) hasta la

hendidura que se ve con muchos vértices, en su parte más cerca de la superficie tiene

aproximadamente 3 m. de profundidad (donde se ve la flecha roja), en el extremo

derecho de este plano tiene una profundidad de 7 m. aproximadamente, y donde se

encuentra la hendidura, la profundidad es de aproximadamente 12 m.

Tratando de ser un poco fiel a la realidad, se hace este río subterráneo que al parecer

alguna vez existió en la superficie terrestre; este piso tiene una hendidura muy simétrica

la cual tiene su parecido en la realidad, pero en la realidad los corales de esta zona y

Page 55: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

54

formaciones rocosas sólo dejan pocas partes que se convierten en pequeñas cuevas y

otras no tan pequeñas, creando un relieve único. Por último, la posición donde se

encuentra la flecha roja señala más o menos el lugar donde se comienzan las

inmersiones, y la dirección de la flecha señala la dirección como se inician por lo

general las inmersiones.

Este plano tiene muy pocos vértices, con el único objetivo de generar un ‘render’ más

rápido sacrificando un piso ondulado, poco simétrico e interesante como en la realidad.

¿Como se hace?

Realizar una superficie así, es algo sencillo, sólo basta algo de paciencia y lo siguiente:

Preferiblemente en la vista superior, eje XY, es decir, cuando se presiona NUMPAD 7

sobre la ventana 3D, se inserta un plano (Barra Espaciadora->Mesh->Plane).

Se escala con SKEY hasta un tamaño apropiado para mayor facilidad, mientras se

mueve el ratón se mantiene presionada la tecla Ctrl. para que el objeto se escale

discretamente en saltos adecuados y si se requiere más precisión se mantiene presionada

la tecla Shift mientras se mueve el ratón.

Ahora este plano se subdivide tantas veces como sea necesario, para este caso solo se

subdividió 2 veces con WKEY->subdivide.

Para obtener la hendidura se realizan los siguientes pasos: en modo de edición TAB

KEY, se de-seleccionan todos los vértices con AKEY (cuando están seleccionados los

vértices tienen un color amarillo, de lo contrario tienen un color púrpura, la tecla A

selecciona todos los vértices si estos no están seleccionados y los de-selecciona si estos

están seleccionados. No sólo funciona con los vértices, sino también con todos los

objetos en cualquier ventana en general, seleccionando y de-seleccionando); luego con

BKEY se escogen los vértices que se van a modificar, y ya seleccionados, se subdividen

las caras cuantas veces sea necesario. Luego, cambiando de vista, eje ZX, con

NUMPAD1 se puede rotar con RKEY todos los vértices de esta sección del plano en la

Page 56: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

55

dirección que se espera, hacia abajo, por ejemplo. Luego se selecciona otro grupo de

vértices y se rotan, y posteriormente se puede agarrar y mover con GKEY al lugar

deseado, para de esta forma crear la hendidura. Si es necesario crear otros vértices que

se sujeten al plano y moverlos en alguna dirección, se utiliza extrude EKEY.

Para crear el río subacuático se usan las mismas teclas que para la hendidura y se trabaja

para lograr el efecto deseado.

Las Texturas

Lo primero que se debe tener en cuenta cuando se usa el ‘Game Engine’ son los

materiales y texturas. Nunca se va a ver los materiales y texturas que Blender provee en

sus menús (F5 materiales, F6 texturas) si se usan como se usó en la animación de la

primera parte del proyecto: si se realiza de esa manera, todo se verá en blanco y negro.

Para solucionar este inconveniente, se puede usar el texturizado ‘UV mapping’,

entonces el problema en la visualización de los objetos se traslada a la forma en la cual

se hacen o se escogen y colocan las texturas.

Para este piso se escogieron sólo estas 2 texturas

Page 57: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

56

Para toda la superficie Para el Río submarino

¿Cómo se manipulan las texturas?

Sobre la ventana 3D se selecciona el objeto que se desea texturizar y se entra en modo

UV Face Select, es posible hacerlo con FKEY sobre la ventana 3D.

Para mayor comodidad es conveniente partir la ventana principal en dos, posicionado el

ratón sobre la línea superior que divide la barra de herramientas con la ventana 3D,

hasta que el ratón se convierta en una flecha doble; luego se presiona el botón derecho

del ratón ‘BDR’ y se selecciona la opción ‘Split Area’. La ventana 3D se partirá

entonces en dos iguales, ahora se cambia el tipo de una de las ventanas a UV/Image

Editor.

Con esta ventana abierta, se puede cargar los archivos con las texturas que se van a usar

sobre los objetos, para este caso, el primer suelo.

Sobre la ventana 3D se puede seleccionar el modo en que se desea aplicar la textura al

objeto. Para esto existe un menú en el que UKEY cambia al modo UV Face Select, y

para una mejor manipulación de la textura sobre el objeto en la ventana UV/Image

Editor, se puede manipular la forma en que Blender aplica la textura al objeto usando

las famosas transformación básicas: GKEY (agarrar), RKEY (rotar), SKEY (escalar).

Por supuesto cada cara del objeto se puede seleccionar independientemente, y aplicarle

una textura diferente, y de hecho, esto es lo que se debe hacer para el río subacuático.

Page 58: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

57

Segundo Escenario

Al igual que en el primer escenario, se crea un plano (Barra Espaciadora->Mesh-

>Plane) y se subdivide varias veces (WKEY->Subdivide). Para este caso en modo de

edición se seleccionan 2 filas del plano y se eliminan (XKEY->Vértices) para crear un

rectángulo.

Nuevamente al igual que el primer piso, éste tiene las mismas medidas:

aproximadamente 200 m. de ancho por 150 m. de largo, comenzado con una

profundidad de 12 m. y llegando a un máximo de 16 m. de profundidad en su otro

extremo. Este lugar posee especialmente zonas amplias de arena blanca coralina y

algunos pedazos aislados de arrecifes coralinos.

Page 59: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

58

Para completar este segundo escenario se toman pedazos del primer escenario y del

tercer escenario, precisamente los pedazos que están en el borde, para que se note algo

de continuidad al nadar por este lugar, aunque los escenarios aledaños están sólo en

parte con el objeto de evitar el agotamiento de la máquina, es decir para que no se ponga

demasiado lenta al momento del juego.

Precisamente este escenario hace que una máquina de esta época en promedio se vuelva

lenta, entonces el juego va a ser un poco más pausado aquí que en el resto de escenarios,

lo cual representa un gran inconveniente si a esto se le añade el hecho de que los demás

objetos que también son pesados.

Las Texturas

Como se sabe, para usar el ‘Game Engine’ es necesario texturizar con el método ‘UV

Mapping’, por consiguiente todas las siguientes texturas se usan, “para adornar este

segundo el piso”.

El método que se usa para aplicar las texturas a este objeto Piso (es decir un plano

subdividido) es exactamente el mismo que se explicó para el primer piso, teniendo en

cuenta la rotación de las caras texturizadas.

Page 60: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

59

Estas 17 texturas se usan para el segundo piso y ayudan a dar un mayor realce al relieve, generando a su vez inconvenientes relacionados con el desempeño de la máquina.

Tercer Escenario

Al igual que en los dos escenarios anteriores, se crea un plano y se subdivide, en este

caso se inclina un poco hacia abajo algunas caras del plano, creando este pequeño

abismo en el cual existe un bosque de corales hasta llegar a otra zona de arena blanca.

Page 61: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

60

Como siempre, este piso tiene un ancho de 200 m., la primera sección, la cual es un

descenso suave como la del segundo piso y tiene 100 m. de largo, comenzando con una

profundidad de 16 m. hasta una profundidad de 18 m. en el borde de la ladera, luego un

descenso marcado hasta una profundidad de 34 m. aproximadamente, con 20 m. de

largo para finalizar con la zona de arena blanca, cuya extensión es desconocida para el

autor en el mundo real, de manera que ésta sólo es una parte que se logra ver desde la

ladera, ya que generalmente las inmersiones no se hacen más allá de esta profundidad.

En este escenario también se ve un poco del segundo escenario, para evitar un corte

abrupto del mundo.

Este tercer piso en realidad está partido en dos, pensando en la facilidad de usar las

texturas o de cambiar a un cuarto escenario en algún momento, pero realmente no hacia

falta para este ejemplo en particular.

Como siempre se usa el mismo método de texturizado, que se ha usado en los anteriores

pisos, en este plano se nota que hay un lado más claro, ya que se trata de simular la

continuidad del río que alguna vez existió, y cuyo vestigio llega aún hasta este punto

alejado de la playa. El resto del plano, es en la vida real un intrincado arrecife de coral,

que en este modelo tiene una textura con el tono mas oscuro de café que simula piedras

y el lado claro es nuevamente arena blanca en un surco, como si fuera un río.

Page 62: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

61

Las Texturas

Sirve de referencia

para que en un futuro este sea un arrecife coralino

Marca el lugar por donde pasó tal vez

un río antiguo.

Es el borde de la ladera donde está el cambio de coral a

arena coralina.

Solo arenas blancas

Los Objetos Estáticos

En esta sección no se pretende explicar en perfecto detalle cómo se hizo cada objeto

estático; el interés de este proyecto no esta basado en ello. De manera que se hará un

recorrido rápido y colorido sobre este interesante contenido.

En cada tabla de cada objeto se tiene una vista en alambre del objeto (sombreado tipo

‘Wireframe’) y otra vista texturizada para el juego, capturada de la ventana 3D por lo

general. “En el juego posiblemente se vea mejor” de lo que se ven estas imágenes.

Todos estos objetos sirven como puntos de referencia en las inmersiones (con excepción

de unos pocos).

Page 63: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

62

Gran bloque de cemento y su cadenota

Este objeto esta compuesto de tres partes: un bloque, una agarradera y una cadena

formada por eslabones. La cadena y agarradera heredan del objeto bloque.

En el capitulo 17 de la documentación de Blender, “Técnicas especiales de

modelamiento”, se describe como crear un cadena comenzando desde ceros, desde la

pequeña curva que debe crear el primer eslabón. Después de probar incansable e

inútilmente con este método, se descubre que la forma de crear la cadena es mucho más

sencilla.

Primero se crea una dona (Espacio->Surface->NURBS Donout), luego se subdivide, se

mueven los extremos y se cambia de curva a ‘Mesh’ para poder manipular sus vértices y

para crear bien la ranura del centro del eslabón; Luego se Duplica (Shift D), el

duplicado se gira 90º grados, se coloca en lugar adecuado, y de esta forma se van

duplicado de en dos eslabones a la vez, rotando y moviendo, para dar forma a la

cadenota.

Esta cadena no tiene una textura ni un material como tal, se uso un modo especial para

que en el juego se lograra ver los colores; “Pintar vértices” (Vertex Paint), que se

encuentra en el menú de la ventana 3D (VKEY sobre la ventana 3D), de este modo en

los botones de edición (F9) aparece un nuevo grupo de botones llamado ‘Paint’

Page 64: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

63

De esta forma se puede pintar el objeto seleccionado como si se tuviera una pintura en

spray, el tamaño del spray es variable (Size 25.00); Es necesario tener en cuenta algo

curioso que sucede cuando se usa el ‘Game Engine’: los colores rojo y azul por aparte

van a quedar invertidos como en negativo, mientras que el verde queda intacto.

La agarradera se hace en forma similar a los eslabones de la cadena, se toma una dona,

se parte por la mitad y se pinta con el mismo método “Vertex Paint” que se pinta la

cadena.

El bloque de cemento tiene aproximadamente 1.50 m. de ancho, largo y alto, dando la

impresión de algo realmente pesado. Tal vez sea el objeto más sencillo de todos. Es un

simple cubo, como aquel que aparece por defecto cuando se inicia Blender. El cubo se

texturiza con ‘UV mapping’ y se calcula el UV cúbicamente (en modo UV FACE

Select, UKEY->Cube).

En el cantil de nirvana real, existen tres bloques como el de este modelo, con sus

respectivas cadenas, ciertamente más largas que en el mundo virtual, pero como se ha

dicho antes este mundo virtual es solo una muestra de las posibilidades.

Textura

Page 65: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

64

La Escalera

Crear una escalera como esta es un trabajo sencillo: se crean cilindros de no muchos

anillos ,16 a los sumo, y luego se escalan en cada eje, teniendo en cuenta que cuando se

van creando nuevos objetos como estos cilindros con el modo de edición seleccionado,

se añaden a un mismo ‘Mesh’, exactamente lo que se necesita.

Luego se usa ‘UV mapping’ para agregar la textura, y el cálculo UV se hace

cilíndricamente tomando únicamente la sección roja oxidada de la textura.

Esta escalera sirve en el mundo real para ingresar al lugar de buceo que se quiere

modelar.

Textura

Page 66: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

65

La Pared Rocosa

Para formar esta pared, se toma un plano preferiblemente creado en una vista lateral,

para este caso en particular, eje ZY (NUMPAD 3), se escala y se subdivide fractalmente

varias veces, luego se le aplica la textura con ‘UV mapping’. En caso de que no se

logre ver nada por el frente y sí por atrás, entonces se debe invertir las normales del

plano.

Como para este mundo es necesaria una pared de 200 m. de ancho, se debe duplicar la

pequeña y cuadrada pared original, cuantas veces sea necesario, luego se puede unir

todo en un solo ‘Mesh’, se ajusta al piso doblando un poco los vértices de abajo hacia el

piso.

Page 67: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

66

Como se ve en la ultima figura, en una parte de la pared está la escalera de entrada a

este lugar de buceo, entonces la pared se curva un poco por este lado, tomando los

vértices y moviéndolos con la edición de caídas proporcionales (OKEY).

Esta pared en el mundo real es de piedra más puntiaguda y oscura.

Textura

El “Muelle”

Se crean cilindros, escalándolos un poco para que luzcan de aproximadamente de 3 a 4

m. de altura y se le aplica la misma textura que posee la escalera.

Los postes en el mundo real están más oxidados y junto con los bloques de cemento, se

nota que no mucho tiempo atrás fue un muelle concurrido que acabó un poco con la

fauna y flora del lugar.

Page 68: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

67

El Ancla

Aunque en el mundo real no es posible determinar fácilmente si existe el lugar donde se

encuentre un ancla, no está de más tener una en este mundo virtual para siguientes

ediciones de mundos.

Uniendo una dona, tres cilindros -uno de ellos doblado-, y dos cubos modificados como

punta de flecha, se obtiene una bella ancla.

Para doblar cualquier ‘mesh’ es necesario estar en modo de edición, seleccionar todos

los vértices, poner el cursor en el centro del círculo imaginario por donde se curvará el

objeto, y luego, usar Shift W (Wrap) para mover el ratón hasta obtener la curvatura

deseada.

Para manipular las otras partes del ancla se hace como siempre se ha hecho, con

paciencia y las teclas G, R, S. (mover, rotar y escalar respectivamente), las

transformaciones básicas.

Luego se une todo en un solo ‘Mesh’.

Page 69: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

68

El Barco Hundido

El barco en el mundo real no tiene la forma de éste, en la realidad es un yate de dos

pisos de color blanco, pero este sirve de referencia para marcar el lugar donde se

encuentra este objeto hundido.

Se usó exactamente el mismo barco de la primera parte, únicamente escalándolo un

poco para hacerlo aproximadamente de 3 m. de largo y rotándolo contra el piso, para

dar la impresión de su prematuro hundimiento.

Se aplica la misma textura de madera, pero usando ‘UV mapping’.

El Erizo Negro

Este objeto claramente está entre las excepciones que no sirven como punto de

referencia.

Page 70: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

69

Para crear este erizo de aspecto extraño, se usa una UV esfera, luego se escalan algunos

vértices, para achatar la esfera y para que tome forma de cuerpo de erizo.

Las púas se generan con el mismo programa que crea pastos, (se explica más adelante)

para tener púas que funcionen en tiempo real.

Este es el erizo que no funciona dentro del juego, sus púas no se logran ver, aun que el

aspecto es mucho más real que el anterior erizo, lastimosamente no se puede usar con el

‘Game Engine’, pero se vería bastante bien en una animación.

Sus púas fueron creadas con el efecto especial de partículas tomadas estáticamente de la

siguiente forma.

Page 71: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

70

Texturas

Para el cuerpo del Erizo Para las peligrosas Púas

La raya

En principio este hermoso ejemplar es un objeto dinámico, pero por razones del ‘Game

Engine’ no fue posible mostrarlo dentro del juego nadando elegantemente.

Esta raya es más conocida como “Chucho” o por su nombre científico: Aetobatus

narinari, puede llegar a crecer como máximo 2.4 m., la raya del mundo virtual mide

aproximadamente 1 m. y es menos cabezona.

Page 72: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

71

Para crear una raya como esta, se usa una UV esfera, y se comienza a modificar

escalándola hasta aplastarla, cortándole un pedazo de los vértices, haciendo ‘Extrude’

para la cabeza y la cola, moviendo y escalando más vértices.

Esta es una pequeña muestra de lo que no se puede ver en el juego, un bello movimiento

ondulado, pero se encuentra en la carpeta objetos de la segunda parte en el CD.

Para lograr el efecto de vuelo, se usa un efecto especial de olas.

Aunque la intención de la raya es nadar libremente, sólo se encuentra una inerte y rígida

raya, escondida tímidamente tras unos pastos marinos en el mundo virtual.

Page 73: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

72

Los Objetos de apoyo

En este punto son llamados objetos de apoyo, porque no fueron creados en su totalidad

por el autor, simplemente se usa herramientas ya existentes descargadas de Internet para

crearlas.

Todos estos objetos están hechos con ‘Scripts’ de Python de ejecución manual,

descargados de Internet.

El Caracol

Este es el mismo caracol tipo ‘Lyria’ tomado de la primera parte del proyecto.

Se escaló al tamaño adecuado, se colocó en el mundo en un lugar apropiado y se

texturizó con ‘UV mapping’.

Textura

Esta textura se llama

plasma vertical

Page 74: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

73

Los corales Blandos.

Un acercamiento en alambre, para notar su interesante y compleja estructura. Este

ejemplar tiene un tamaño aproximado de 1.5 m. de alto.

Este segundo ejemplar tiene un tamaño aproximado de 1 m. de alto.

Estos objetos fueron creados con un ‘Script’ de Python llamado L-System, versión 1.1

creado por Armagan Yavuz, 2001, que sirve para crear árboles.

Luego los objetos fueron importados como todos los demás objetos con ‘Shift F1’, al

mundo principal, para ser escalados, rotados y duplicados.

Page 75: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

74

Con esta herramienta se pueden crear (con un poco de paciencia) corales como: corales

candelabro, coral látigo, coral negro, coral de fuego, entre otros. Esponjas, gusanos de

mil pies, etc., Además las anteriores figuras son solo dos ejemplos de la infinidad que se

puede lograr, si se requiere.

A continuación, el menú grafico que provee el ‘Script’ L-System.

Con algo de esfuerzo y mucha paciencia, modificando las opciones que provee este

menú gráfico, se pueden lograr corarles blandos maravillosos y mucho más.

Page 76: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

75

Los Pastos

Este pasto fue creado por un ‘script’ de Python llamado “Grass Generador”, Versión 3,

creado por Alan Denis.

La anterior figura es la que se usa como base para generar el pasto sobre él, luego se

importa al proyecto y se dobla un poco los lados hacia la tierra para dar la impresión

adecuada. El ‘Script’ genera en este ejemplo tres ‘Mesh’ de pasto independiente, luego

es necesario hacer que todos estos ‘Mesh’ sean hijos de la malla que hace de piso.

Page 77: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

76

Cada vértice tiene la posibilidad de crear un grupo de pasto, así entre más vértices se

tenga en un plano, mas frondoso se verá el césped.

Son un poco más de 40.000 hojas de pasto.

#________________________________________________________________ Estos son los valores que se deben cambiar en el ‘Script’, para obtener diferentes resultados #________________________________________________________________ density = 40 #Cuántas hojas por grupo gravity = 200 #Qué tanto es afectado el pasto por la gravedad segments = 2 #Cuántos segmentos por hoja length = 50 #Longitud de cada segmento width = 20 #Ancho de cada hoja individualmente init = 0 #Efecto inicial de la gravedad rand = 50 #Aleatoriedad de la dirección del pasto rloc = .5 #Aleatoriedad en el encrespamiento del pasto #________________________________________________________________

Texturas

El suelo donde crece el pasto

El primer grupos de pastos

El segundo grupo de pastos

El tercer grupo de pastos

Objetos Dinámicos

“Lastima que la raya no esté en esta sección”.

En esta sección se tiene que entender un poco más sobre Python y que le aporta a

Blender

Page 78: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

77

Entendiendo algo de Python Primero

Python es un lenguaje de programación de alto nivel de tipo interpretado, el cual ofrece

varias ventajas y algunas desventajas:

• Los códigos son siempre legibles, con lo que se puede aprender mucho de los

demás.

• No hay que hacer pasos intermedios entre “tocar” el código y ejecutarlo.

• Es más fácil encontrar errores y probar el programa, ya que el programa corre

hasta que encuentra uno, en lugar de ser un compilador que se detiene sin haber

ejecutado ninguna instrucción.

• Esto puede ser también una desventaja, porque tales errores podrían ser críticos

y un compilador los filtraría, pero el hecho de que sea de alto nivel hace que no

sea fácil provocar estos errores.

• Se vuelve más lento en la ejecución de programas.

• Es sumamente utilizado para programar sobre otros programas, o sea, hacer

‘scripts’ y manipular explícitamente los datos del proyecto activo, es decir, lo

que se hace sobre Blender.

Dependiendo de su funcionalidad, los ‘scripts’ son de los siguientes tipos:

De ejecución manual: sirven para realizar una tarea en el diseño del proyecto. Es decir,

basta con ejecutarlas. Se ejecutan dejando el cursor sobre la ventana de texto y pulsando

Alt P. A su vez pueden tener un entorno gráfico, usando instrucciones OpenGl, y

funcionando por eventos.

De ejecución automática: se ejecutan cada vez que (a) Blender redibuja el entorno, o (b)

se cambia de frame. Así se puede aplicar instrucciones a un objeto, por ejemplo, para

dar una localización dependiendo del tiempo.

Para hacer esto, se presiona el botón de ‘script linking’ (aquel que tiene un papel

dibujado, en la ventana de botones) y se asocia el ‘script’ presionando uno de los

botones ‘Add’.

Page 79: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

78

Se asocian a toda una escena o a ciertos objetos 3D, afectando a alguno de los distintos

objetos enganchados a este: objeto 3D, material, etc.

Logic brick: se emplea en el motor de tiempo real ‘Game Engine’ para toma de

decisiones, aplicación de atributos, etc.

El Delfín

El ‘Mesh’ de este delfín fue tomado de un grupo de ejemplos, descargados de la página

oficial de Blender, llamados “Test233”.

En el ejemplo, el delfín tiene un movimiento generado por un ‘Lattice’ de tamaño U:24

V:1 W:1. Posee un IPO interesante, pero lastimosamente no se puede usar en el juego,

porque ningún ‘Lattice’ se visualiza en tiempo real, y el delfín hereda del ‘Lattice’.

Page 80: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

79

Entonces para solucionar este problema, el ‘lattice’ fue reemplazado por una armadura

con seis huesos, colocados en toda su extensión, de la cabeza a la cola; luego se realiza

la animación de los huesos como se muestra en la primera parte del documento, con el

pez salmonete amarillo, aunque en este caso se puede tomar como muestra el

movimiento del ‘lattice’. Los primeros 160 frames de movimientos se trataron de copiar

para generar el movimiento que se encuentra en el proyecto.

Atracción y repulsión

Para incluir un movimiento interesante al delfín se toma un ‘script’ (que no funcionaba)

para atracción magnética de Claudio J. Dobniewski, noviembre 2002, descargado de la

pagina http://www.nicodigital.com; este se mejoró y se adaptó para ser usado con el

delfín, configurando los ‘logic Bricks’.

El siguiente código de Python para Blender, muestra la parte de la atracción. La parte

para la repulsión magnética, se puede leer en los comentarios, son pocos los cambios

que son necesarios hacer para que cambie de atracción a repulsión.

# El símbolo # es ignorado por el interprete # importa módulos import GameLogic import math # Carga (importa) los módulos que va a utilizar # tomo el “nombre” del controlador que activa el guión controlador = GameLogic.getCurrentController() objeto = controlador.getOwner() sensor = controlador.getSensor("imanA") # luego es imanR, para el otro caso objx , objy , objz = objeto.getPosition() masa = objeto.getMass() mover = controlador.getActuator("moverAca") # luego es moverAlla para el otro caso dump = 100.0 # uso esta variable como ajuste de atracción, prueba cambiarla fuerzax , fuerzay , fuerzaz = 0.0 , 0.0 , 0.0 # declaro todas las variables que necesito # SENSOR DE OBJETOS A EVALUAR listaiman = sensor.getHitObjectList() #CALCULO DE OBJETOS A EVALUAR SI LOS HAY

Page 81: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

80

if listaiman: # si “listaiman” no esta vacía, entonces hace todo lo azul # tomo la lista (ver Listas) de objetos que cumplen con las condiciones que activan el sensor, en este caso que tengan la propiedad “magneto” y que se encuentran en el rango especificado “Dist” for otros in listaiman: # recorre los elementos de la lista “listaiman” de a uno por ves, lo va llamando “otros”, realiza el proceso y repite la operación con el siguiente, hasta terminar con toda la lista. otrox , otroy , otroz = otros.getPosition() otromasa = otros.getMass() x = otrox - objx y = otroy - objy z = otroz - objz distancia = math.sqrt( (x*x) + (y*y) + (z*z) ) atraccion = (masa*otromasa) / (distancia*distancia) # la atracción es proporcional a la masa de todos los objetos de la lista # aplica el vector fuerza por cada eje # los tres IF son para el caso de distancias demasiado cortas if x == 0: # esto es una precaución por si se acerca x = 0.0001 # demasiado un objeto al otro, ya que if y == 0: # si la distancia entre ellos en cualquier eje y = 0.0001 # la división por un numero demasiado pequeño if z == 0: # puede provocar desastres!!! z = 0.0001 # # suma fuerzas de atracción por eje fuerzax=fuerzax+(atraccion*dump*(distancia*math.fabs(x))/x) # Si en este punto se hace una resta, la fuerza se repele fuerzay=fuerzay+(atraccion*dump*(distancia*math.fabs(y))/y ) # Es justo lo que se busca para la otra parte del problema fuerzaz=fuerzaz+(atraccion*dump*(distancia*math.fabs(z) )/z ) # suma las fuerzas por eje #aplica la resultante de fuerzas por eje mover.setForce( fuerzax , fuerzay , fuerzaz , 0) # en el actuador mover, configura la fuerza (x,y,z) y el ultimo numero es para aplicarla en coordenadas globales (si el ultimo numero fuera 1 serian coordenadas locales) #activa el actuador fe movimiento GameLogic.addActiveActuator(mover,1) # Activa el actuador mover (el numero 1 es activo y 0 es inactivo, como si no existiera)

Entendiendo primero cómo funcionan los Bloques Lógicos (Sensores, Controladores y Actuadores)

El sensor se activa cuando la condición (siempre, proximidad, contacto, etc.) se cumple.

Es necesario tener en cuenta los botones que contienen tres puntos arriba (repite la señal

o pulso de “activo” mientras se cumpla la condición), tres puntos abajo (repite la señal o

pulso de “inactivo” mientras no se cumpla la condición) y el que dice Inv (invierte la

Page 82: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

81

señal, es decir que solo indica “activo” cuando no se cumple, e “inactivo” cuando si se

cumple). Es importante configurar correctamente estas opciones.

Cuando el sensor envía pulsos (lo que puede no ser todo el tiempo) el controlador

evalúa:

AND: todos los sensores con los que está vinculado deben estar enviando un pulso de

“activo”, entonces la salida es “activa”.

OR: al menos uno de los sensores con los que está vinculado debe estar enviando un

pulso “activo”, entonces la salida es “activa”.

Expresión: compara propiedades, si la comparación es verdadera entonces la salida es

“activa”.

Python: determina en el ‘Script’ qué información toma (no se limita a los sensores), la

procesa, la compara y finalmente determina qué actuadores de los que se encuentran

vinculados se activan y con qué valores. También puede modificar la configuración de

los sensores.

El Delfín Juega

En esta imagen se muestra exactamente lo que se debe hacer, para configurar los

bloques lógicos que hacen del delfín un objeto dinámico en el mundo.

El botón “Dynamic” cuando está presionado, hace que el objeto colisione y no traspase

los demás objetos del mundo, en un tamaño definido por (Size: 3.00).

Page 83: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

82

El primer sensor es del tipo “Siempre” (Always), que se conecta con tres controladores.

Dos de ellos son los dos ‘Scripts’ para atracción y repulsión, que generan en el actuador

un movimiento, y el otro es un conector lógico “AND” que permite el moviendo de la

armadura del delfín en todo momento.

Los otros dos sensores son del tipo “Cerca” (Near) y tienen una propiedad que está

asociada a la cámara (es decir al que bucea en el juego) llamada magneto, la cual hace

que el movimiento del delfín funcione solamente cuando este esté cerca al objeto,

interactuando con los controladores que tienen los dos ‘Scripts’ ya mencionados.

Por ultimo este delfín tiene un gran problema, sus movimientos siempre van a estar

dirigidos en una sola dirección, (en fondo del plano) no tiene ningún controlados que los

haga girar coherentemente con sus movimientos.

La Cámara y sus camaradas

La forma en la que está configurada la cámara y sus camaradas (ya se darán más

detalles sobre estos), permite que toda esta segunda parte tenga un sentido, porque es la

que permite bucear, virtualmente hablando.

Page 84: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

83

El padre visor tiene varios objetos hijos de tipo “Empty”: la cámara y un hombro por un

lado, y las burbujas por otro lado.

Esta cámara fue tomada de un archivo llamado “walkthrough_demo.blend” de un

paquete de demos de juegos descargado de la pagina oficial de Blender.

El visor del juego tiene 2 formas de manejo:

La primera, que comienza por defecto cuando se inicia el juego, en la que se camina por

el piso usando las flechas de dirección del teclado. El buzo siempre está con la mirada al

frente, a menos que se presione el botón izquierdo del ratón, caso en el cual se puede

mover la vista del visor y girar en cualquier dirección.

La segunda se activa cuando se presiona la barra espaciadora, y a diferencia de la

primera, permite volar. Para este caso, es posible bucear realmente, aunque el caso

inmediatamente anterior, permite sumergirse rápidamente. Esta forma de manejo se

controla exactamente de la misma forma que la anterior, y una y otra son fácilmente

intercambiables cuando se oprime espacio.

¡La cámara Bucea!

Page 85: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

84

En la figura se muestran todos los bloques lógicos que se deben usar para lograr el

amplio movimiento de la cámara y sus camaradas, los cuales incluyen 3 ‘Scripts’ en

Python que hacen de todo esto una realidad “virtual”, (los ‘Scripts’ se llaman:

flymode.py, walk.py, aim.py).

Para terminar se le agrega 2 propiedades al visor, la primera llamada “magneto”, para

permitir los movimientos magnéticos del delfín cuando el visor se acerca a éste, y la

segunda, llamada “toca”, para permitir los sonidos cuando el visor (es decir el buzo)

colisiona o se acerca a ciertos objetos que tienen sonidos asociados a la propiedad toca.

Las burbujas

La primera y original burbuja es un objeto del tipo UV esfera. Ésta se achata un poco en

el eje Z para que quede como en la figura, y luego se le agrega una textura en modo

‘UV mapping’, con el calculo UV, esférico. Posteriormente ésta se hace hija de un

objeto tipo “vacío” (Empty), que tiene una animación sencilla y errática de rotaciones

pequeñas.

Page 86: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

85

Textura

Respiración

La verdadera finalidad de las burbujas es crear la ilusión de la respiración del buzo, y

esta exhalación sucede cada tres segundos, tiempo definido por las expresiones con la

propiedad de tiempo del controlador.

Las burbujas tienen dos sensores: uno activado en “siempre” que se regula luego con los

controladores de tiempo para que siempre se esté respirando (esto nunca se debe olvidar

en la vida real en el momento de bucear), y otro sensor de tipo “aleatorio” para que las

burbujas salgan en desorden, como debe ser.

En los actuadotes se tiene la animación del objeto vació que contiene la burbuja original

y esta también se incluye aquí en la forma de edición de objetos, un sonido para que

funcione cuando se exhale. Y por último, la propiedad de tiempo.

Page 87: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

86

Creando Mallas En el afán de tener lograr la representación exacta de una superficie, topográficamente

hablando. Se intenta crear una serie de Scripts en Python para Blender que permitan

generar objetos 3D que simulen superficies.

“Creando Mallas” es el nombre que se le da a un pequeño programa, que sirve como

base para crear superficies en malla, con la finalidad de refinarlo y usarlo por ejemplo

en los datos que genera un aparato de ultrasonido para cargar datos topográficos y para

este caso especial datos paquimétricos.

Para usarlo se necesita un archivo que tenga vértices tridimensionales en cada línea, es

decir que contenga tres valores X, Y, Z para alimentar la superficie a crear un ‘mesh’

con estos datos.

El CD que viene con este proyecto trae otros tres ejemplos en la carga de puntos XYZ,

el que sólo carga vértices, el que sólo carga las aristas y por último, el que sólo carga

caras triangulares. El siguiente código funciona de la siguiente manera a groso modo

(para entenderlo mejor, el código esta bien comentariado para este efecto).

Para generar una superficie se necesitan vértices, y entre varios de ellos (únicamente

tres o cuatro) se pueden formar caras, de esta forma este ‘Script’ sirve para generar

caras cuadradas es decir de cuatro vértices, tomando los dos anteriores y dos nuevos.

# ############################################# # Programa para cargar superficies en Mallas # Versión 1.0 # Realizado por: Hermes Pérez Cardona # Julio 2004 # Para conseguir un buen uso de este programa, el archivo debe tener los vértices adyacentes # para lograr que las caras se carguen coherentemente # ############################################# import Blender from Blender.Window import * #from Blender.BGL import * # Librería para usar comandos "OpenGl" from Blender import NMesh import nt

Page 88: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

87

path = "c:/tmp/base.txt" # Aquí escribe el path en donde se encuentra el archivo a leer malla = NMesh.New() # Se crea una malla todosLosVertices = [] # Se crea un vector para guardar todos los vértices # Algunos comandos OpenGl, es necesario, posicionarnos sobre la matriz a la cual se le van a hacer las trasformaciones, antes de usar estos comandos # glShadeModel(GL_SMOOTH) # glPolygonMode(GL_FRONT_AND_BACK, GL_LINE) file = open (path) #Se abre el archivo con el path lineaVertice = file.readline() # se lee la primera línea i = 0 # se crea un índice para contar el numero de vértices while lineaVertice: #Mientras haya líneas tresPuntos1 = lineaVertice.split(',') # Se crea un vector con la cadena, el tamaño lo define la separación de las comas #Asignación triple para crear vértices vx,vy,vz vx1,vy1,vz1=float(tresPuntos1[0]),\ float(tresPuntos1[1]),\ float(tresPuntos1[2]) v1=NMesh.Vert(vx1,vy1,vz1) # Se crea un vértice con los 3 valores x,y,z malla.verts.append(v1) # Se agrega el vértice a la malla todosLosVertices.append(v1) # Se agrega el vértice al arreglo de vértices lineaVertice = file.readline() # Se lee la línea siguiente. i +=1 file.close() # Se cierra el archivo # El siguiente ciclo crea las caras con 4 vértices. Es decir los polígonos son cuadrados j=0 while j < (i-3): cara=NMesh.Face() # Se crea un cara cara.v.append(todosLosVertices[j]) # Se usan los siguientes 4 vértices para crear la cara cara.v.append(todosLosVertices[j+1]) # Y las caras siguientes usan 2 puntos de la cara anterior y 2 nuevos cara.v.append(todosLosVertices[j+2]) cara.v.append(todosLosVertices[j+3]) malla.faces.append(cara) # Se asigna la cara a la malla j +=2 NMesh.PutRaw(malla) # Se dibuja la Malla, con sus vértices y caras.

Por supuesto esto es sólo el principio, una idea de cómo cargar superficies. Se necesitan

muchos mas datos, que sólo los vértices, para cargar adecuadamente los datos y

pintarlos correctamente. Por ejemplo, cuando en una superficie se encuentra un hueco,

este no se puede no pintar con el anterior código.

Page 89: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

88

Ideas sobre qué más se puede lograr

Esta sección, pretende dar algunas ideas más, sobre el avance del proyecto en la misma

línea de trabajo y en otros aspectos como se verá en la visión.

Primero que todo, lo más importante es aprender a manejar Blender y Python muy bien,

de este modo todo será posible.

Lo siguiente es una lista sin detalle para la continuación del proyecto:

- Una simulación nocturna.

- La carga de escenarios automáticamente.

- Teniendo la carga de escenarios automáticamente, se puede hacer una superficie

sobre el nivel del mar, real, con sol y nubes, para cuando el buzo emerge.

- Rotoscopio (es un cubo gigante que rodea al mundo y tiene texturas en su

interior que simulan un horizonte más interesante).

- Crear controles gráficos o en principio en texto para el juego: profundidad, aire,

temperatura, brújula 3D.

- Corales blandos y otra flora que se muevan con la corriente y cuando se pasa por

allí.

- Definitivamente muchos, pero muchos más objetos dinámicos y estáticos de

fauna y flora, y objetos especiales como barcos hundidos etc.

- Arreglar el movimiento del delfín, y crear más Scripts de comportamientos, para

peces y la fauna en general.

- Crear mejores texturas.

- Mejorar y hacer muy funcional el creador de mallas, para cargar paquimetrías y

topografías, adecuada y eficientemente.

- Obtener los sonidos adecuados.

Y ojalá todo esto sea posible integrarlo con la visión que se tuvo de este proyecto en un

principio, cuando el área de trabajo estaba en Sistemas de información geográfica, para

tener una idea de todo esto se presenta esa visión.

Page 90: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

89

Visión

Este se divide en varios aspectos:

El software para un aparato como una PDA subacuática en la cual se pueda tener varios

sistemas integrados y comunicación con el resto del equipo de buceo.

Primero se desea tener mapas tridimensionales, (por supuesto dejarían de ser mapas en

el buen sentido de la palabra, para convertirse en pequeños mundos virtuales), los

mapas no sólo muestran la información geográfica como cuevas, rocas, (barcos

hundidos) y formaciones importantes en el suelo marino, sino también datos

interesantes como la flora, la fauna dada ciertas variables como la época del año, la

temperatura promedio las corrientes, todos estos datos también serán mostrados por el

sistema en conjunto con datos geográficos interesantes.

Lo fascinante del sistema esta en lograr esto en tiempo real, es decir en el momento de

la inmersión, la localización de cada miembro del equipo incluyéndose en el mapa

(mundo virtual).

El sistema proveerá comunicación con los demás miembros del equipo inmersos y los

que están en tierra, con el equipo para este propósito (para lo cual existen, aunque

costosas, caretas para el rostro completo en las cuales se puede hablar normalmente con

los demás miembros del equipo por ondas de radio), con ayuda de ciertas plantillas para

facilitar la comunicación más rápida o simplemente escribiendo lo necesario.

Este sistema se puede integrar a otros componentes del equipo para que almacene

estadísticas sobre el aire consumido, la profundidad, las rutas tomadas, y junto con otro

sistema modulo con tecnología médica ya existente (un brazalete) que obtiene datos

como el pulso, la presión en el cuerpo, los niveles de oxígeno, etc., para tener datos

completos sobre el estado del buzo, y la inmersión. Se puede generar alarmas a los

demás miembros del equipo y a uno mismo cuando este sucediendo algo anormal, como

por ejemplo poco aire en el tanque, entre otros.

Page 91: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

90

El sistema también podrá proveer rutas para los buzos, previo a los datos estadísticos y

rutas optimas según se quiera o requiera.

También se tiene acceso a los mapas que se conocen en 2D, por capas, sobre las áreas

de buceo.

En principio está destinado para el buceo recreativo, incentivando el turismo y la

aventura principalmente en Colombia, pero es probable que se adapte mejor al buceo

técnico, posiblemente por costos.

Además de las útiles funciones en tiempo real, se puede tener una base de datos sobre la

información de cada lugar, las especies que la habitan (fauna y flora) y datos curiosos e

interesantes, incluso relatos descriptivos en varios idiomas.

La información también puede ser accedida por Internet, por supuesto la que

objetivamente se puede dejar en este medio.

Proveer un modulo de actualización lo suficientemente robusto, amigable y completo

para lograr mayor facilidad en un futuro.

Page 92: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

91

CONCLUSIONES

Este proyecto es sólo el principio y una herramienta para agregar aprendizaje y

tecnología en las áreas en la cuales se desenvuelve, facilitando el trabajo de los buzos

antiguos y en potencia, creando trabajo a los desarrolladores de este tipo de

aplicaciones.

Aunque los conocimientos en computación grafica que se aplican en este proyecto están

únicamente enfocados al apoyo en el buceo, claramente se puede extender a cualquier

área que requiera estas herramientas.

Igualmente, los avances que se realizaron en este trabajo de grado, son fácilmente

extensibles a cualquier ambiente de computación grafica, de manera que el presente

documento, así como todos los anexos que se presentan, sirven como base para futuras

investigaciones que puedan hacerse en este mismo tema.

Lo importante, más que leer un largo y tal vez aburrido texto con explicaciones a veces

complejas y otras veces incompresibles sobre cómo se hizo cada cosa en detalle, es

agarrar el programa, este producto y divertirse un poco.

La ultima Conclusión, esto nunca concluye.

Page 93: EDITOR 3D DE MUNDOS SUBMARINOS EN BLENDER

92

BIBLIOGRAFÍA

Pagina oficial de Blender

http://www.blender3D.org

Pagina Oficial de Python

http://www.python.org

Una pagina para Blender adictos en Español

http://www.nicodigital.com

Un buen sitio para Blender Adictos en Ingles y otros programas

gráficos

http://www.elysiun.com

Haciendo Humanos en Blender

http://www.dedalo-3d.com

Editor de texto muy útil para editar código Python

http://www.scintilla.org

Mapa de San Andrés Isla

http://www.sanandres.gov.co/

Información Previa sobre el buceo para el Prefacio

http://gerzo.virtualave.net/Que_es_el_buceo/que_es_el_buceo.html

http://icarito.tercera.cl/enc_virtual/deportes/aventuras/buceo1.htm

http://icarito.tercera.cl/enc_virtual/deportes/aventuras/buceo2.htm

BONAIRE MARINE PARK. a guide for divers and snorkelers. Tom Van’t Hof.

Harbour Village Beach Resort Bonaire. 1997.

GUIA DE BUCEO Y PECES DE CARTAGENA DE INDIAS y el Parque Nacional

Natural Corales del Rosario Colombia. Diego Torres. 1995