Amiga.InFo Nº 1 - Enero/Febrero 1995 - Tutorial 3D
NOTA: Pulsando sobre las fotos con borde azul ampliarás la imagen.
REAL 3D TUTORIAL
MODELADO BÁSICO DE OBJETOS 3D
En el anterior número de Amiga.InFo hicimos una primera incursión en el mundo del 3D con el REAL 3D. Nos familiarizamos con su entorno de trabajo y mencionamos algunas de sus herramientas para generar imágenes estáticas o animaciones. En esta ocasión nos detendremos en el modelado de los objetos que van a componer nuestra escena. Veremos como un objeto puede construirse a base de formas primitivas. Los cuerpos de revolución y los que tengan algún tipo de simetría serán fácilmente modelables. Otras formas que consideraremos son las lineares con cualquier sección y finalmente los objetos de forma libre como el cuerpo de seres vivos.
Después, investigaremos entre los materiales y texturas para acabar de definir un objeto.
|
TIPO DE CUERPOS
FIGURA 1. En el menú de crear objetos hay muchas formas de generar cuerpos. Los más básicos son los polígonos irregulares. |
REAL 3D clasifica los cuerpos básicos en 6 grupos: Los polígonos irregulares, los rectángulos, los polígonos regulares, los círculos, las elipses y las formas hiperbólicas. Adicionalmente, considera sectores de todas las formas que sean de revolución. La figura 1 nos muestra los derivados de un polígono irregular: un polígono plano, un prisma, una pirámide normal y otra cortada.
Los otros grupos se pueden obtener a base de polígonos irregulares. Un rectángulo no es más que un polígono irregular particular. Un círculo se puede simular con un polígono regular de muchas aristas. Para nuestra comodidad, tenemos ya definidas las formas antes mencionadas. En el caso de cuerpos con curvas será mucho mejor usar las opciones de que disponemos. REAL 3D no recurre a estas vastas aproximaciones a fin de conseguir la máxima calidad en la imagen final ( figura 2 ).
FIGURA 2. Formas básicas generadas a partir de un círculo. El cilindro, cono, tronco de cono, esfera, elipsoide, sección de elipsoide y rebanada de una esfera. |
Imaginemos que queremos hacer algo tan simple como una pirámide con un túnel que la atraviese. Miramos los objetos de que disponemos: una pirámide cuadrada, un rectángulo para la entrada del túnel, o quizás mejor, un paralelepípedo. Necesitaríamos un objeto que vaciara la pirámide. En realidad necesitamos poder hacer operaciones entre objetos. Tenemos todas las que necesitamos en el menú "Create/Boolean".
Primero vamos a crear una pirámide en la ventana de vista XZ. En la vista XY observamos que la pirámide queda un poco achatada. La extendemos en dirección vertical usando el menú "Modify/linear/extend". Pulsamos el puntero una vez en labase, otra en la parte superior y pulsamos de nuevo en la nueva altura. La pirámide debe reescalarse y seguir el puntero. Si no nos ha quedado bien, eliminamos el "monstruo" que hayamos creado con "Modify/structure/delete" asegurándonos de que en la ventana de selección de objetos lo tenemos marcado.
Esta vez vamos a intentarlo usando la ventana de medidas. Pondremos 0.4 en el zoom de la ventana de control de vistas. Seleccionaremos "Parallel" en el tipo de proyección. Escogemos la pirámide entre los iconos "Vis." de la ventana de herramientas "Tool" y nos vamos a la ventana de medidas. Ponemos 0 a todas las coordenadas y pulsamos "Accept". Aparece un puntero en el centro de la ventana de vistas XZ y en la base de título hay "Top View.1, Paral, C:Pyrimid N:". A continuación introducimos 1 en las coordenadas X y Z para indicar el largo y ancho de la base de la pirámide. Pulsamos "Accept" e introducimos 0.5, 1 y 0.5 para las coordenadas del vértice superior. Nos dirigimos al control de vistas y pulsamos XY y "Perspect" para observar una flamante pirámide.
Para colocar la pirámide en el centro de la ventana, podemos escoger el menú "Modify/Linear/MoveCOG" para desplazar el objeto agarrándolo por el centro de gravedad, Realizaremos esta operación a mano con el puntero. Recomiendo que se practique usando la ventana de medidas.
Figura 3 Cuerpo creado operando una pirámide y un paralelepípedo. Este segundo actúa como un cuerpo inverso y resta volumen a la pirámide. |
Ahora, creamos un paralelepípedo ( nombre técnico de una caja de zapatos ) con las dimensiones del túnel. Creamos un cubo cualquiera que extenderemos hasta que quede en las proporciones deseadas. Si no consigues extender el cubo de forma paralela y queda una especie de trapezoide, vamos a ver un truco que en REAL 3D sirve para muchas operaciones que nos evitarán complicados cálculos o tener la sensación de que lo hacemos todo a ojo de buen cubero. Supongamos que estamos en la vista superior XZ y tenemos seleccionado nuestro túnel. Seleccionamos la operación extender. Dejando pulsado el puntero, marcamos un recuadro alrededor de un vértice del cubo, como si estuviéramos en un programa de dibujo y quisiéramos recortar una brocha. Una línea nos sigue, no se preocupe. Realizamos la misma operación en el vértice del extremo opuesto y "et voilá", podemos extender el cubo sin desviarnos. Ahora vamos a ver la potencia de las operaciones entre objetos: selecciona los dos objetos, elige la opción "Create/Boolean/AND NOT" y haz el "Render".
En la figura 3 podemos ver el aspecto en sólido. Si observas en detalle la ventana "Select", verás que hemos creado un nivel que incluye la pirámide y el cubo. Este último aparece con un (!). Esto nos indica que este objeto vacía los objetos que están en su mismo nivel. Siempre que tengamos una lista de objetos, podremos hacer que algunos vacíen. Si seleccionamos uno o más objetos usamos el menú "Modify/Properties/Atributes"
Precisamente, la primera "Inverted" es la que nos interesa. Otras interesantes son convertir el objeto en fuente de luz "Light Source" o si se trata de un plano, hacerlo infinito "Infinite" para usarlo de suelo. Si en la pantalla aparecieran demasiadas líneas, podemos usar "Create/Boolean/Rethink" para que sólo se dibujen las líneas visibles. Así, si interseccionamos dos esferas con "Create/Boolean/AND" de forma que la intersección es una "lenteja", no dibujará "dos pompas de jabón", sino una "lenteja".
Estas operaciones no son irreversibles.
Para que el objeto parezca real, hay que darle aspecto material. Un material se define en el panel de materiales y la opción más espectacular es usar una textura. Una textura no es más que un gráfico en formato IFF de hasta 24 bits.
Figura 4. En este caso, el cuerpo ha cambiado de imagen debido a la introducción de texturas. |
La forma en que se pinta esta textura sobre el objeto se llama mapeado. Podemos mapear de forma plana, esférica o cilíndrica. Según el objeto que queramos envolver, escogeremos uno u otro método. En la figura 4 se ha usado una textura de mármol con mapeado cilíndrico, Destacamos que los mapeados se tratan como un objeto más. Se pueden extender, notar o mover como deseemos. En la lista de objetos, los nombres aparecen marcados con una (t) de textura.
Figura 5. Imagen más elaborada que incluye reflejos y transparencias. Un rectángulo infinito realiza perfectamente la función de suelo. |
Continuando con el objeto, imaginemos que queremos colocarle una cúpula de cristal en la parte superior. Primero generaremos una esfera. Después crearemos un mapeado esférico de cristal alrededor de la esfera. Vayamos por pasos. Nos fijaremos en la ventana "Select". Si colocamos una esfera junto a la pirámide y la textura de mármol, la esfera se convertirá inmediatamente también en mármol. Debemos separar los objetos de materiales diferentes en niveles. El problema es semejante a tener dos ficheros con el mismo nombre. No se pueden colocar en un mismo directorio, habrá que crear un directorio para cada uno. De la misma manera marcamos la pirámide y la textura y seleccionamos "Create/Boolean/OR". Ahora tenemos los dos objetos agrupados en un nivel ( directorio ). Crearemos un nuevo nivel donde incluiremos la esfera y la textura de cristal. Se le puede poner nombre con "Modify/Properties/Name" estando seleccionado el nivel. Pulsando dos veces sobre el nombre del nivel entramos dentro. Ahora sí podemos crear la esfera y el cristal. Recordamos que para colocar la esfera o la textura en el vértice de la pirámide, usaremos el truco de mantener pulsado el puntero mientras envolvemos el vértice con un rectángulo discontinuo. El resultado queda patente en la figura 5.
Figura 6. Objeto creado por el método de revolución. Generar imágenes de estos cuerpos es un proceso muy rápido y no consume mucha memoria. |
Las operaciones simples que podemos realizar entre objetos son: "OR" equivale a la unión, "AND" se usa para obtener la intersección de dos objetos, "AND NOT" une todos los objetos excepto el último que varía, "AND with Paint" y "AND NOT With Paint" actúan igual que las equivalentes sin "Paint" pero la superficie de corte queda pintada del color del objeto que corta.
OBJETOS DE REVOLUCIÓN
Este tipo de objetos se caracteriza porque su forma puede ser generada rotando una silueta. Son todos los que podría realizar un alfarero con sus manos y el torno. Se seleccionan con la opción de menú "Create/CompoundTools/Lathe". Primero marcamos dos puntos que delimitarán el eje de rotación. A continuación vamos encadenando unas curvas pulsando el botón izquierdo en el lugar que se encuentre el puntero. Como todas las entradas de REAL 3D, se acaba o aborta con el botón de menú. La figura 6 muestra un objeto de revolución generado con 5 curvas que podemos ver en la ventana "Select".
Figura 7. Varias versiones de cuerpos lineales con sección circular. Las mismas formas pueden generarse con secciones rectangulares. |
OBJETOS LINEALES
Llamaremos objetos lineales a los que se crean a partir de tubos. El tubo podrá tener sección elíptica o rectangular. La herramienta que permite generarlos es "Create/CompoundTools/Circular subdivided" y tres opciones más que aparecen en la figura 7. Se pueden observar gráficamente las diferencias entre cada tipo. Tenemos las versiones cilíndrica y esférica con las versiones normales o suavizando las curvas intercalando más piezas. Para generarlos, basta con indicar el tamaño de la sección y después se van enlazando rectas que indican la trayectoria del tubo. Los tubos generados con cónicas tienen una forma de generación diferente. Primero, marcamos las esferas que actúan de nodos y al pulsar el botón de menú, automáticamente, se genera el tubo con conos.
Las versiones anteriores se pueden generar con secciones rectangulares para modelado de maquinaria.
FORMAS NATURALES
Frecuentemente, la naturaleza ofrece formas que son a la vez simples y complicadas. ¿Es simple la superficie de un paisaje? ¿Es complicada la forma de un árbol? Como en muchas ocasiones, la matemática va a echarnos una mano.
Figura 8. Objetos creados a partir de cálculos recursivos y aleatorios. Este tipo de gráficos se conoce con el nombre de fractales. Son adecuados para generar estructuras naturales como la superficie del suelo o plantas. |
Los gráficos fractales tienen muchas de las características de las formas naturales. Los fractales se generan a partir de un algoritmo recursivo muy simple pero producen una estructura muy elaborada. La figura 8 es un ejemplo de ello. En menos de 10 minutos se genera esta imagen partiendo del ordenador parado (A4000/40) y sin ningún fichero preparado previamente. Sólo hay que seleccionar "Create/Fractal/Lanscape" y rellenar algunos parámetros como altura máxima y la semilla de números aleatorios para generar terrenos. La creación de estructuras arbóreas requiere rellenar una pequeña tabla comprensible sin conocimientos matemáticos avanzados. Indicamos la longitud de las ramas, el número de ramificaciones o el grado de inclinación aproximado del tronco.
FORMAS LIBRES
REAL 3D nos ofrece dos objetos que podremos estirar, doblar, hundir o arrugar de la forma que queramos. Podemos partir de una rejilla "MESH" o de un toro ( una rosquilla, para entendernos ). Cada vértice de la malla puede desplazarse produciendo una deformación a todas las aristas de alrededor.
OTRAS FORMAS
"Create/Compound Tools/Rounded Poligon" y las tres siguientes se usarán para definir figuras tipo "manchas" o "patatas", es decir, polígonos irregulares redondeados. Una forma curiosa de obtener objetos es cargar una pequeña brocha de unprograma de dibujo y sustituir cada píxel por un objeto. "Create/Compound Tools/Object-Pixel Tool" realiza esta maravilla, pero hay que ir con sumo cuidado con el tamaño del gráfico. Si colocamos una brocha de 100x100 pixels generaremos hasta 10000 objetos. Si cada objeto es un robot articulado con 200 piezas, no es muy arriesgado suponer que el proceso ocupará muchos recursos de nuestra máquina.
|