Existen multitud de técnicas de modelado 3D. En una primera taxonomía de alto nivel podemos hacer una categorización dependiendo de si el modelado se centra en definir únicamente las características del contorno del objeto:

  • Modelado Sólido: también conocidos como de Geometría Sólida Constructiva (CSG Constructed Solid Geometry). Los modelos sólidos definen el volumen del objeto que representan, y en muchos casos indican incluso el centro de masas, la densidad del material interna, etc. Se utilizan en fabricación por computador y en aplicaciones médicas e industriales.
  • Modelado de Contorno: también conocidos como de Representación de Contorno (B-Rep - Boundary Representation). Los modelos de contorno únicamente representan la superficie límite del objeto (de forma conceptual, la "cascara"). Son mas faciles de definir y modificar. Ademas, lo interesante para la representación del objeto es su apariencia exterior (en los casos donde interesa el interior simplemente se apróxima, como en el caso del SubSurfaceScattering). Practicamente todos los paquetes de diseño y animación (incluido Blender) empleados en síntesis de imagen y en aplicaciones interactivas emplean este tipo de modelos.

Debido a las posibilidades de tratamiento, operadores y velocidad de procesamiento, la mayoría de los paquetes de diseño grafico permiten el modelado de contorno. Dentro de esta categoría distinguimos entre modelado poligonal y modelado mediante curvas (ver Figura 01).



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


Modelado Poligonal Vs. Modelado mediante Curvas

Los modelos poligonales son ampliamente utilizados, debido a su velocidad de procesamiento y a la exactitud de definición que permite. Hay que tener en cuenta el fin para el que se construira el modelo para decidir el nivel de detalle con el que se definira su geometría. No es lo mismo construir un modelo para un videojuego, donde el número de polígonos es crítico debido a que debe ser representado de forma interactiva a un alto número de frames por segundo, que un modelo que se destinara a una película de animación. Otros factores tales como distancia con la camara virtual o importancia del modelo en la escena condicionaran el nivel de detalle de la geometría que forma el modelo.



"La finalidad del modelo 3D debe condicionar el nivel de detalle de la geometría que lo forma. Es importante mantener tan bajo como sea posible el número de polígonos de un modelo."


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


Frente a la representación basada en conjuntos de polígonos, las curvas pueden ser descritas de un modo preciso mediante una ecuación. Estas ecuaciones, como veremos, pueden ser evaluadas y convertidas a conjuntos de polígonos (típicamente triangulos) en el momento de su representación (Rendering). Entre las características que hacen el modelado mediante curvas interesante, se puede destacar:




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

Desde el punto del vista del diseñador, una de las principales ventajas de los modelos poligonales es el alto número de operadores de modelado existentes. Esta es una de las razones por las que el modelado mediante superficies curvas se emplea




Figura 02. Modos de sombreado.

Sombreado de Superficies

El uso de mallas poligonales simplifica la escritura de ciertas partes del software de diseño 3D, como el motor de render. En general los triangulos apróximan una superficie compleja que es la que queremos definir cuando modelamos. No es posible usar los "infinitos" triangulos que harían falta para definir correctamente algunas superficies, de modo que hay que recurrir a algunos trucos de sombreado para ocultarlos.


Hay dos formas de presentar una superficie de triangulos en el render. Una de ellas es asumir que el objeto es localmente plano. Es decir, que no tiene curvatura alguna, sólo una serie de caras planas. Es el caso de un cubo, que tiene 6 caras cuadradas y por lo tanto 12 triangulos como mínimo para definirlo. Al renderizarlo se asume que los triangulos son planos y de normal constante. En la Figura 02 vemos como el sombreado cambia bruscamente entre cada par de caras de la calavera superior. Esto es debido al cambio del vector normal entre triangulos.


Sin embargo hay otros casos en los que se pretende simular una superficie curva y suave como una esfera. En estos casos no nos podemos permitir un salto brusco de normal de un triangulo a otro; se puede indicar a Blender que suavice los vectores normales de las caras. Para esto se asigna una normal a cada vértice de la superficie. Generalmente basandose en la medía de las normales de las caras que delimitan con el vértice en cuestión. Después, a la hora de renderizar, se interpola la normal entre los vértices del triangulo, por lo que deja de ser una normal constante. En el borde entre dos triangulos las normales son iguales a ambos lados, por lo que con una definición aceptable el ojo no detectara la presencia de triangulos en la superficie.


Los objetos de la Figura 02 tienen idéntica geometría. La diferencia es que el objeto superior no tiene las normales suavizadas mientras que el inferior sí. En la calavera no suavizada se pueden apreciar claramente las caras poligonales. En algunas zonas, como en la zona entre los ojos, vemos cuadrados en lugar de triangulos debido a que estan alineados formando facetas de cuatro vértices.


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




Figura 03. Suavizado.

No obstante, no conviene abusar del suavizado en exceso. Esto quiere decir que no debemos intentar simular superficies suaves usando muy pocas caras dado que:

  • En el contorno del objeto las caras si se llegan a distinguir.
  • La interpolación es lineal, por lo que una cara demasiado grande no aparenta una curvatura real.


Figura 04. Variación del número de triangulos en una esfera. Esquema de suavizado.

No podemos por ejemplo intentar representar una esfera a partir de un cubo suavizando las normales. En la Figura 04 vemos como según se reduce el número de triangulos, el objeto pierde definición y se hace difícil su identificación. No sólo se percibe en el borde segmentado, también vemos como el sombreado se deforma. Hay que buscar siempre un buen balance de triangulos que no supongan mucha carga para el programa pero que den un buen resultado en pantalla. Autosuavizado

En la mayoría de programas de diseño (entre ellos Blender), existe una opción de autosuavizado (Autosmooth). Esta opción suaviza selectivamente las caras que forman superficies sin aristas. Esta opción lleva siempre un argumento, el angulo maximo tolerado. Todas las caras que formen entre si un angulo menor que el indicado seran suavizadas mientras que el resto de las aristas seran consideradas como "duras", con bordes afilados. Ésto es muy útil y, de hecho, resulta imprescindible para representar superficies que combinan suavidad con cortes duros. Un buen ejemplo es el cilindro.



Mientras que el cuerpo del cilindro es una superficie suave, sus tapas son como cortes a cuchillo de un supuesto cilindro infinito. Por lo tanto las tapas no han de ser suavizadas con el resto del cuerpo, sino que deben de considerarse superficies planas a parte. Las caras de las tapas forman un angulo de 90 grados con las del cuerpo, de modo que basta con poner un angulo de autosmooth inferior para conseguir el resultado deseado. En la Figura 05 se ve la diferencia entre el suavizado normal y el autosuavizado. Nótese como la tapa del cilindro se fusiona con el resto si usamos un suavizado normal.




Figura 05. Autosuavizado en un cilindro.



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




Figura 06. Pestaña Mesh.

Uso de Texto

Blender tiene un buen soporte de opciones para trabajar con texto. ¡Incluso existe un fork del proyecto (DTP Blender centrado en el desarrollo de una herramienta para el trabajo 2D de maquetación!.



Figura 07. Opciones de Texto.

Los elementos de texto son tratados internamente como un tipo de curvas, por lo que las opciones permitidas para estos objetos son similares a las que veremos en el trabajo con superficies curvas en la siguiente sección.
Para añadir un texto lo haremos desde el menú principal Barra Espaciadora Add/ Text. Esto nos añadira un texto Text en la ventana 3D, que podremos editar en Modo de Edición . En los botónes de edición hay dos pestañas interesantes; las opciones de Curve and Surface, que veremos en la siguiente sección, y la pestaña de Font que estudiaremos ahora (ver Figura 07):

  • Load: Permite elegir una fuente truetype. La fuente elegida aparecera en la lista desplegable de la derecha. Una vez cargada, el icono del paquete situado a su derecha nos permite empaquetar la fuente en el propio fichero .blend. Esto es útil si quieremos compartir el fichero y asegurarnos que pueden visualizar las fuentes correctamente. En general, siempre que aparece este icono, nos permite empaquetar el elemento relacionado para que vaya comprimido dentro del propio fichero .blend.
  • Insert Text: Nos permite abrir un fichero .txt e insertarlo en el objeto de texto. Podemos insertar el típico Lorem Ipsum empleado para probar la composición de un diseño con texto pinchando en el botón Lorem.
  • Left, Center... La siguiente fila de botónes nos permite elegir el tipo de justificación del texto. Para que funcione esta justificación, es necesario definir Marcos de Texto (ver a continuación).
  • Text on Curve: Modifica la línea base del texto para que siga la forma de una curva (ver a continuación).

Las opciones de la caja inferior permiten definir la apariencia del texto; tamaño, distancia entre líneas de texto (conocido en aplicaciones de maquetación como leading), distancia entre palabras, etc.
En la pestaña Char (por defecto aparece situada detras de la pestaña descrita anteriormente Font cuando el texto esta en Modo de Edición) podemos acceder a caracteres concretos de esa fuente. Esto es especialmente interesante si usamos alguna tipografía con dibujos, iconos, etc...


Definición de Marcos de Texto

Blender sorprende con esta funcionalidad poco habitual en herramientas de diseño 3D, la definición de Marcos de Texto. Los marcos que pertenecen al mismo texto permiten que el texto que no quepa en el primero continue en el segundo, del segundo al tercero, y así sucevisamente (como se puede ver en el Video: 1:20). Los marcos de texto se definen mediante la caja de controles situada arriba a la derecha del panel Font (ver Figura 07 y 0. Mediante el botón New podemos añadir un nuevo Marco al texto, y con Delete borramos el marco activo. Podemos desplazarnos entre los marcos existentes empleando la fila de botónes superior ( Video: 1:35), que, en el caso de la Figura 08 nos indica que estamos editando actualmente el primer marco (número situado a la derecha) de un total de 2 marcos (número situado a la izquierda). Los números que definen los parametros X e Y indican el desplazamiento del marco (referido al primer marco del grupo). Finalmente, los parametros Width y Height indican la anchura y altura del marco respectivamente. En el siguiente videotutorial se muestra cómo se trabaja con marcos de texto.



F 08. Marcos







Texto que sigue un camino

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




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

Por ejemplo, podemos añadir una curva de Bézier Barra Espaciadora Add/ Curve/ Bézier Curve que servira como camino. En modo de edición ajustaremos los puntos de control y cambiaremos el nombre del objeto en el campo OB: de la pestaña Linque and Materials de los botónes de edición (por ejemplo, pondremos "camino"). Hecho esto, seleccionaremos el texto y en el campo TextOnCurve pondremos el nombre de la curva. La edición de la curva se refleja automaticamente en la disposición del texto, como se muestra en la figura 09. Veremos cómo editar y añadir puntos a este tipo de curvas en la siguiente sección.
Conversión de curva a malla poligonal

Hay muchos casos en los que interesa convertir un objeto curvo a malla poligonal (esta operación se denomina Teselación Tessellation), por ejemplo para convertir un texto 3D a un objeto que quieres distribuir sin tener que dar la fuente, en el caso de querer utilizar un objeto en el módulo de simulaciónes físicas (fluidos, partículas), si quieres animar los objetos mediante un esqueleto... La conversión se realiza con el objeto curvo seleccionado en Modo de Objeto, pulsando Alt C Convert curve to mesh. El proceso inverso de conversión de malla poligional a superficie curva es algorítmicamente muy complicado de realizar con precisión. Blender, como la mayoría de aplicaciones 3D, no incorpora ninguna opción para realizar eta operación.