Está en la página 1de 31

Capítulo 9: Modelado en 3D y composición de objetos

Francisco José Rodríguez Pérez

Almudena Vicente Tocino


Índice

9.1 Problemática de la representación tridimensional................................ 4

9.2 Necesidad del modelado 3D ................................................................ 5

9.3 Conceptos básicos de 3D .................................................................... 7

9.3.1 Espacio tridimensional .................................................................. 7

9.4 Creación de gráficos 3D....................................................................... 8

9.4.1 Modelado ...................................................................................... 8

9.4.1.1 Fundamentos básicos del modelado en 3D........................... 9

9.4.2 Composición de la escena .......................................................... 12

9.4.2.1 Iluminación de la escena ..................................................... 13

9.4.3 Tesselation y mallas ................................................................... 13

9.4.4 Renderizado................................................................................ 13

9.4.4.1 Proyecciones ....................................................................... 14

9.4.4.2 Proyección ortogonal ........................................................... 15

9.4.4.3 Proyección en perspectiva................................................... 17

9.5 Modelos de reflexión y sombreado .................................................... 20

9.6 Métodos procedimentales para la generación de objetos .................. 21

9.6.1 Métodos basados en gramáticas formales ................................. 21

9.6.2 Geometría fractal ........................................................................ 22

9.6.2.1 Dimensión topológica y dimensión fractal............................ 22

9.6.2.2 ¿Cómo se generan? ............................................................ 23

9.6.2.3 Terrenos fractales................................................................ 24

9.7 APIs de Gráficos 3D........................................................................... 25

9.7.1 OpenGL ...................................................................................... 25

9.7.1.1 Historia de OpenGL ............................................................. 25

9.7.1.2 OpenGL 2.1 ......................................................................... 27

9.7.2 Direct3D ...................................................................................... 27


9.7.2.1 Historia de Direct3D............................................................. 27

9.8 Software de gráficos 3D..................................................................... 29

9.9 Referencias........................................................................................ 31
9 Modelado en 3D y composición de objetos

9.1 Problemática de la representación tridimensional


Las superficies u objetos planos se representan con facilidad en la pantalla.
Situando el centro de la figura o su aproximación, en el centro de la pantalla, q
pasa a ser considerado como el centro de las coordenadas. Se ha realizado así
una sencilla homotecia con el cambio de puntos de origen y de los demás
puntos de la figura plana a una superficie bidimensional que aquí es la pantalla,
como podía haber sido un papel.

La representación de superficies que no son planas tiene una serie de


problemas adicionales. Si se parte de los datos de una estructura definida
numéricamente e intentamos transformarlos en una gráfica representada en
pantalla, tenemos que pasar de dos a tres dimensiones con un mínimo de
perdida o deformación en la información.

Para pasar de la figura real a la grafica se utiliza una proyección elegida en


cada caso sobre la pantalla obteniendo un resultado con ciertos detalles. Estos
detalles deben de ser tales que la relación entre estos y las magnitudes de las
dimensiones sea la mejor posible. Se admite que una gráfica de estas
características es representativa y define al objeto real.

La técnica más sencilla de representación bidimensional de modelos


tridimensionales consiste en escoger proyecciones ortogonales de todas las
caras del cuerpo a representar, o solo de las caras más indicativas cuando las
demás son triviales. Así, una sola cara podría considerarse suficiente para
representar, por ejemplo, un cubo, y hasta excesiva, pues todas las caras son
iguales.

Pero cuando el objeto es más complejo, se necesita proyectar adicionalmente


cortes o secciones planas, a definir, del objeto. Estas técnicas no darán la
impresión de volumen, solo dibujan superficies. Para conseguir el efecto de
relieve, profundidad o fondo en la figura hay estos dos procedimientos:

• Proyectar oblicuamente el objeto sobre la pantalla desde un punto, a


elegir, más o menos lejano al objeto desde una posición más o menos
ladeada u oblicua.

• Girar el cuerpo respecto a uno o varios de sus ejes y proyectarlo


adecuada y repetidamente sobre la pantalla, con o sin traslación de cada
proyección.

Como estas proyecciones se hacen desde un foco luminoso puntual, existen


partes del objeto, que quedan ocultas y pueden dificultar la interpretación de la
gráfica.
9.2 Necesidad del modelado 3D
El diseño ayudado por ordenador representa un gran ahorro de esfuerzo y
tiempo. Además se consiguen resultados extraordinarios con respecto a los
procedimientos clásicos de diseño. Los programas de diseño industrial o
arquitectónico admiten tres maneras de representación de objetos:

• Modelos bidimensionales del objeto o parte de él. Se reproducen


separadamente las diferentes caras, planos o cortes para ser estudiados
y modificados. Normalmente se utiliza una representación formal del
objeto, obteniendo sus vistas desde diferentes puntos de visualización.
Se denominan vistas principales de un objeto, a las proyecciones
ortogonales del mismo sobre 6 planos, dispuestos en forma de cubo.
También se podría definir las vistas como, las proyecciones ortogonales
de un objeto, según las distintas direcciones desde donde se mire. Si
situamos un observador según las seis direcciones indicadas por las
flechas, obtendríamos las seis vistas posibles de un objeto.

Figura 9.1: Vistas 2D

• Modelos tridimensionales que incluyan únicamente un conjunto de


puntos y líneas en el espacio. Estos modelos se llaman “wireframe” o
alambrado (armazón de alambre). El objeto así representado rota en
diferentes ángulos para su estudio o transformación definitiva.

Existen varias formas de representación en modo wireframe:

1. Representación alambrica: Activa este modo de sombreado.

2. Representación alambrica det: Se muestran bordes alámbricos e


iluminación
3. Área de trabajo: Muestra los objetos como área de trabajo solamente.
El área de trabajo se define como la caja más pequeña que abarca
completamente un objeto.

Figura 9.2: Figura en 3D

• Modelos sólidos que incluyen el dibujo de superficies y son los más


completos y complejos.

1. Suavizado + Resaltes: Activa este modo de sombreado, que


permite ver la homogeneidad e iluminación de los objetos.
También puede presentar mapas en la superficie de objetos. Esto
sucede mapa a mapa, pero puede presentar tantos mapas como
desee simultáneamente en el visor. Los mapas sólo aparecen en
objetos que tienen coordenadas de mapeado.

2. Suavizado: Muestra suavizado, pero no resaltes

Un uso importante de las gráficas es el diseño y representación de diferentes


tipos de sistemas. Los sistemas arquitectónicos y de ingeniería, como los
proyectos de construcción y los esquemas de circuitos electrónicos,
comúnmente se conjuntan utilizando métodos de diseño con ayuda de la
computadora. Los métodos gráficos se utilizan asimismo para representar
sistemas económicos, financieros organizacionales, científicos, sociales y
ambientales. Las representaciones de estos sistemas a menudo se construyen
para simular el comportamiento de un sistema en diversas condiciones.

Un aspecto muy importante de esta simulación es el modelado del mundo


virtual. El desarrollo de una aplicación empieza inevitablemente por un análisis
de las tareas. En esta etapa, se describen matemáticamente los procesos
subyacentes y los recursos materiales que deberán asignárseles.

Después del análisis de las tareas, deben desarrollarse las bases de datos de
los objetos y optimizar el modelo. Es decir, modelar la forma del objeto, su
aspecto, su comportamiento, su condicionante etc., ya que, corresponderán a
las herramientas de entrada/salida al mundo simulado.

9.3 Conceptos básicos de 3D

9.3.1 Espacio tridimensional


El espacio 3d es un espacio matemático virtual creado por el programa de
diseño 3d.Este espacio está definido por un sistema cartesiano de tres ejes: X,
Y, Z. El punto donde salen las líneas virtuales que definen los ejes se llama
origen y sus coordenadas son (0, 0, 0). En este espacio virtual se crean,
modifican y disponen los diferentes objetos tridimensionales que van a
componer la escena.

Figura 9.3: El espacio 3D

La Figura 9.4 representa los elementos básicos para el diseño en 3D descritos


a continuación:

Punto: Es el elemento fundamental de construcción de los programas de


diseño 3d. La posición en el espacio de cada punto es definido con un grupo de
coordenadas X,Y,Z. - Dimensión 0.

Línea: Definida por el recorrido más corto del espacio entre dos puntos en
cualquier dirección. - 1ra Dimensión.
Plano: Definido por la extensión de la línea en dirección perpendicular. - 2da
Dimensión.

Volumen (objeto): Definido por la prolongación del plano en dirección


perpendicular. - 3ra Dimensión.

Figura 9.4: Elementos del diseño 3D

9.4 Creación de gráficos 3D

9.4.1 Modelado
El modelado consiste en ir dando forma a objetos individuales que luego serán
usados en la escena. Existen diversas técnicas de modelado; Constructive
Solid Geometry, modelado con NURBS y modelado poligonal son algunos
ejemplos. Los procesos de modelado pueden incluir la edición de la superficie
del objeto o las propiedades del material (por ejemplo, color, luminosidad,
difusión, especularidad, características de reflexión, transparencia u opacidad,
o el índice de refracción), agregar texturas, mapas de relieve (bump-maps) y
otras características.

El proceso de modelado puede incluir algunas actividades relacionadas con la


preparación del modelo 3D para su posterior animación. A los objetos se les
puede asignar un esqueleto, una estructura central con la capacidad de afectar
la forma y movimientos de ese objeto. Esto ayuda al proceso de animación, en
el cual el movimiento del esqueleto automáticamente afectara las porciones
correspondientes del modelo.

El modelado puede ser realizado por programas dedicados (como Blender,


Lightwave 3D, Rhinoceros 3D o Moray), un componente de una aplicación
(Shaper, Lofter en 3D Studio) o por un lenguaje de descripción de escenas
(como en POV-Ray). En algunos casos, no hay una distinción estricta entre
estas , el modelado es sólo una parte del proceso de creación de escenas (por
ejemplo, con Caligari trueSpace).
9.4.1.1 Fundamentos básicos del modelado en 3D
El 3D es una mera representación de coordenadas, que conforman estructuras
envueltas por una textura.

Por tanto, primero se deben construir un modelo, para ello hay técnicas de
modelado comunes, en las cuales se encuentran:

1. Estructuras Predefinidas: Aquellas estructuras ya armadas por el sistema.


Existen tres tipos:

a. Primitivas: caja, cono, esfera, geo esfera, cilindro, tubo, anillo,


pirámide, tetera y plano.

b. Primitivas Extendidas: hedra, nudo toroide, caja "redondeada",


cilindro "redondeado", tanque de aceite, capsula, sprindle, forma L,
gengon, forma c, anillo ondulado, hose, prisma.

c. Librerías: son formas armadas, disponibles en 3d Max 7; puertas,


ventanas, árboles, escaleras.

Todas estas estructuras nos sirven para poder modelar objetos o


escenas más complejas a partir de ellas. Por ejemplo, con 3 cajas
podríamos armar una escena para una habitación.

Figura 9.5: Estructuras predefinidas

2. Box Modeling: Como su nombre lo indica, es el modelado de figuras


complejas a través de una caja. Empleando un modificador de mallas,
Edith Mesh, podrán ir extendiendo la caja, convirtiéndola en otra cosa.

Figura 9.6: Objeto diseñado con Box Modeling


3. NURBS Modeling: Es una técnica para construir mallas de alta
complejidad, de aspecto orgánico ó curvado, que emplea como punto de
partida splines (figuras 2d) para mediante diversos métodos, crear la malla
3d anidando los splines.

Figura 9.7: Objeto diseñado con NURBS Modeling

4. Operaciones Booleanas: Consiste, en tomar dos mallas y aplicarles una


de tres operaciones booleanas disponibles:

a. Resta: resta dos figuras A – B ó B – A.

b. Intersección: da como resultado sólo lo que esta "tocándose" de


ambas figuras.

c. Unión: funde ambas figuras creando una única nueva.

Figura 9.8: Objeto diseñado aplicando operaciones booleanas

5. Extrude || Lathe. Son dos técnicas que a partir, de una figura 2d (spline)
crea el volumen.

a. Extrude: da profundidad a un objeto 2d. Extiende la profundidad.

b. Lathe: tomando un spline, lo reproduce por un eje en toda su


rotación. Ideal para botellas, copas, y demás objetos sin diferencia
en sus costados. Aunque puede combinarse con otra técnica luego,
y crear por ejemplo, una tasa.
Figura 9.9: Imagen de ejemplo Extrude

Figura 9.10: Imagen de ejemplo Lathe

6. Loft: Se deben emplear 2 ó más splines, para crear una malla 3d continua.
El primer spline, funciona como path (camino) mientras que los demás,
dan forma, extendiéndose, a traves del path. Ideal para crear cables,
botellas, etc.

Figura 9.11: Objeto diseñado con la técnica Loft

7. Sistema de Partículas: Es como su nombre lo indica, un sistema de


partículas (proyección de formas geométricas, de forma controlada
mediante parámetros varios tales como choque, fricción y demás). Es
combinable, con efectos de dinámica y deformadores. Es ideal para crear
humo, agua, ó cualquier cosa que sea muchos objetos y repetitivos.
Figura 9.12: Objeto diseñado utilizando un sistema de partículas

8. Modelos por Texturas: Este tipo de modelado, si es que se lo puede


denominar así, en vez de emplear deformadores en la malla, engañan la
vista, con mapas del canal alpha (transparencia) para crear recortes, ó
engaños directos de relieve (con un canal especial para esto
independiente del de relieve) para crear terrenos por ejemplo. Es un tipo
de modelado, usado mucho para abstractos en 3d, y no es muy difícil de
emplear, simplemente se deben manipular los canales para engañar la
vista.

Figura 9.13: Objeto diseñado utilizando un modelo por texturas

9.4.2 Composición de la escena


Esta etapa involucra la distribución de objetos, luces, cámaras y otras
entidades en una escena que será utilizada para producir una imagen estática
o una animación. Si se utiliza para Animación, esta fase, en general, hace uso
de una técnica llamada "Keyframing", que facilita la creación de movimientos
complicados en la escena. Con la ayuda de la técnica de keyframing, en lugar
de tener que corregir la posición de un objeto, su rotación o tamaño en cada
cuadro de la animación, solo se necesita marcar algunos cuadros clave
(keyframes). Los cuadros entre keyframes son generados automáticamente, lo
que se conoce como 'Interpolación'.

La iluminación es un aspecto importante de la composición de la escena. Como


en la realidad, la iluminación es un factor importante que contribuye al resultado
estético y a la calidad visual del trabajo terminado. Por eso, puede ser un arte
difícil de dominar. Los efectos de iluminación pueden contribuir en gran medida
al humor y la respuesta emocional generada por la escena, algo que es bien
conocido por fotógrafos y técnicos de iluminación teatral.

9.4.2.1 Iluminación de la escena


La intensidad de la luz que se observa en cada superficie de un objeto depende
del tipo de fuentes de luz situadas en la vecindad y de las características de la
superficie del objeto. Algunos objetos tienen superficies brillantes y algunos
tienen superficies opacas o mate. Además, algunos objetos se construyen con
materiales opacos, mientras que otros son más o menos transparentes. Un
modelo de sombreado para producir intensidades realistas sobre superficies de
un objeto debe tomar en consideración estas diversas propiedades.

Cuando se observa un objeto, se percibe la intensidad de luz reflejada de sus


superficies. La luz que se refleja de las superficies proviene de las diversas
fuentes de luz que rodean al objeto. Si el objeto es transparente, también se
percibe luz de cualquier fuente que pueda estar situada detrás del mismo. Las
fuentes de luz que iluminan un objeto son de dos tipos básicos:

• Fuentes emisoras de luz: entre las que se incluyen los focos y el Sol.

• Fuentes reflectoras de luz: son superficies iluminadas de otros objetos,


como las paredes de un cuarto, que están próximas al objeto que se
está observando. Una superficie que no esta expuesta directamente a
una fuente emisora de luz seguirá siendo visible si se iluminan los
objetos circunvecinos. Las múltiples reflexiones de luz que proviene de
estos objetos cercanos se combinan para producir una iluminación
uniforme denominada luz ambiente o bien luz de fondo.

9.4.3 Tesselation y mallas


El proceso de transformar la representación de objetos, como el punto medio
de coordenadas de una esfera y un punto en su circunferencia, en una
representación poligonal de una esfera, se conoce como tesselation. Este paso
es usado en el rénder basado en polígonos, donde los objetos son
descompuestos de representaciones abstractas primitivas como esferas,
conos, etcétera, en las denominadas mallas, que son redes de triángulos
interconectados.

Las mallas de triángulos son populares ya que está probado que son fáciles de
'renderizar' usando Scanline rendering.

Las representaciones poligonales no son utilizadas en todas las técnicas de


rénder, y en estos casos, el paso de tesselation no es incluido en la transición
de representación abstracta y la escena 'renderizada'.

9.4.4 Renderizado
El renderizado es un proceso de cálculo complejo desarrollado por un
ordenador destinado a generar una imagen 2D a partir de una escena 3D. Así
podría decirse que en el proceso de renderización, la computadora "interpreta"
la escena 3D y la plasma en una imagen 2D.
La renderización se aplica a los gráficos por ordenador, más comúnmente a la
infografía. En infografía este proceso se desarrolla con el fin de imitar un
espacio 3D formado por estructuras poligonales, comportamiento de luces,
texturas, materiales, animación, simulando ambientes y estructuras físicas
verosímiles, etc. Una de la partes más importantes de los programas dedicados
a la infografía son los motores de render los cuales son capaces de realizar
técnicas complejas como radiosidad, raytrace (trazador de rayos), canal alpha,
reflexión, refracción, iluminación global, etc.

Cuando se trabaja en un programa de diseño 3D por computadora, no es


posible visualizar en tiempo real el acabado final deseado de una escena 3D
compleja ya que esto requiere una potencia de cálculo demasiado elevada. Por
lo que se opta por crear el entorno 3D con una forma de visualización más
simple y técnica y luego generar el lento proceso de renderización para
conseguir los resultados finales deseados.

9.4.4.1 Proyecciones
En dos dimensiones, las operaciones de visión transfieren puntos
bidimensionales en el plano coordenado mundial a puntos bidimensionales en
el plano de coordenadas del dispositivo. Las definiciones de objetos, sujetados
contra el marco de una ventana, se delinean en un puerto de visión (viewport).
Estas coordenadas de dispositivo normalizadas se convierten después en
coordenadas de dispositivo y el objeto se despliega en el dispositivo de salida.

Figura 9.14: Ejemplo de proyección

En tres dimensiones, la situación es un poco más complicada, ya que ahora


tenemos algunas alternativas como la forma en que se van a generar las vistas.
Podríamos visualizar una escena desde el frente, desde arriba o bien desde
atrás. También podríamos generar una vista de lo que observaríamos si
estuviéramos parados en medio de un grupo de objetos. Además, las
descripciones tridimensionales de objetos deben proyectarse en la superficie
de visión plana del dispositivo de salida.

La visualización en nuestro caso significa información del mundo real en la


pantalla. La visualización 2D son las operaciones de transferencia de puntos
bidimensionales en el plano coordenado del mundo en el plano coordenado del
dispositivo.

Existen dos métodos básicos para proyectar objetos tridimensionales sobre una
superficie de visión bidimensional. Estas dos maneras, dependen de si todos
los puntos del objeto pueden proyectarse sobre la superficie a lo largo de líneas
paralelas o bien los puntos pueden proyectarse a lo largo de líneas que
convergen a una posición denominada centro de proyección. En ambos casos,
la intersección de una línea de proyección con la superficie de visión determina
las coordenadas del punto proyectado sobre este plano de proyección.

9.4.4.2 Proyección ortogonal


Una proyección ortogonal (o en paralelo) preserva dimensiones relativas de los
objetos y esta es la técnica que se utiliza en el dibujo mecánico para producir la
traza a escala de objetos en tres dimensiones. Este método sirve para obtener
vistas exactas de varios lados de un objeto, pero una proyección en paralelo no
ofrece una representación realista de un objeto tridimensional.

Figura 9.15: Ejemplo de proyección ortogonal

Las vistas formadas con proyecciones en paralelo pueden caracterizarse de


acuerdo con el ángulo que la dirección de proyección forma con el plano de
proyección. Así tenemos:

• Proyección ortogonal: Cuando la dirección de proyección es


perpendicular al plano de proyección

• Proyección ortogonal axonométrica: Si la vista muestra más de una cara


del objeto. La proyección axonométrica más usada es la isométrica, que
se obtiene alineando el plano de proyección de modo que corte con
cada eje coordenado en el cual se defina el objeto a la misma distancia
del origen.

• Proyección oblicua: Proyección que no es perpendicular al plano.

En las figuras siguientes se puede apreciar las diferencias en estos tipos de


proyecciones.
Figura 9.16: a) Construcción de una proyección axonométrica. b) Vista desde
arriba. c) Vista lateral

Figura 9.17: Vistas axonométricas.

Figura 9.18: a) Construcción de una proyección oblicua. b) Vista desde arriba.


c) Vista lateral. Son las vistas paralelas más utilizadas Los proyectores tienen
un ángulo arbitrario con el plano de proyección.
Figura 9.19: Proyecciones ortogonales

Las proyecciones ortogonales se utilizan con mayor frecuencia para producir


las vistas de frente, lado y fondo de un objeto. Estas vistas se denominan
elevaciones y las vistas de la parte superior se conocen como plantas. Los
trazos de ingeniería comúnmente emplean estas proyecciones ortogonales, ya
que las longitudes y los ángulos se representan en forma más exacta y pueden
medirse a través de los trazos.

9.4.4.3 Proyección en perspectiva

Figura 9.20: Proyección en perspectiva de una línea sobre una superficie de


visión (plano de proyección)

Una proyección en perspectiva produce vistas realistas pero no preserva las


dimensiones relativas. Las líneas distantes se proyectan como menores que
aquellas que están más próximas al plano de proyección.
Para obtener una proyección en perspectiva de un objeto tridimensional, se
proyectan los puntos a lo largo de líneas de proyección que se interceptan en el
centro de proyección. Puede elegirse cualquier posición par el centro e
proyección, pero la elección de una posición a lo largo del eje z simplifica los
cálculos en las ecuaciones de transformación.

Figura 9.21: Proyección en paralelo de una figura sobre una superficie de visión
(plano de proyección)

Cuando un objeto tridimensional se proyecta sobre un plano mediante


ecuaciones de transformación de perspectiva, cualquier conjunto de líneas
paralelas del objeto que no sean paralelas al plano se proyectan en líneas
convergentes. Las líneas paralelas que son paralelas al plano se proyectan
como líneas paralelas. El punto en el cual un conjunto de líneas paralelas
parece converger se denomina punto de fuga. Cada conjunto de líneas
paralelas proyectadas tendrá un punto de fuga aparte. En la figura se muestra
el resultado de una proyección en perspectiva con varios puntos de fuga
distintos.

El proceso de rendering de una escena es un proceso bastante simple por un


lado, pues es hacer siempre lo mismo, y muy complejo por otro, pues hay que
saber qué parámetros poner para obtener lo que queremos. En general, el
proceso es el siguiente:

• se describe una escena en base a unos modelos matemáticos, donde se


especifican los objetos que intervienen y la posición tanto de la cámara
(punto de vista del observador) como la de las fuentes de iluminación.

• se calcula la imagen fotorealista a partir de la especificación anterior, y


por medio de un programa de rendering. Hay muchos, tanto comerciales
(RenderMan, Alias, 3D Studio) como freware/shareware (POV,
RayShade, PolyRay, BobTracer).

• se postprocesa (por medio de técnicas para oscurecer, aclarar, rotar la


imagen) y se visualiza

Dependiendo del algoritmo de cálculo en el proceso de rendering, se tienen los


siguientes tipos:

• métodos scanline: tienen en cuenta sólo la iluminación de los objetos, y


no las propiedades físicas de estos. Son métodos muy rápidos, pero los
resultados que se obtienen son los menos realistas (3D Studio).
• métodos radiosity: calculan las ecuaciones de radiosidad para cada
objeto, en función de la energía que reciben, emiten y propagan. Son
métodos independientes del punto de vista del observador, muy lentos,
pero que producen los mejores efectos de sombreado/iluminación.
Tienen en cuenta las propiedades físicas relacionadas con la reflexión,
pero no la refracción (Radiosity).

• métodos de raytracing: calculan las trayectorias de los rayos de luz


que inciden en la cámara, provenientes de las fuentes de iluminación. Se
tienen en cuenta tanto las propiedades de reflexión como las de
refracción. Son métodos muy lentos (los que más), pero que consiguen,
en general, los mejores efectos fotorealistas ya que son capaces de
calcular reflexiones, refracciones, transparencias, sombras, etc. El fallo
más importante de estos métodos es precisamente en el sombreado,
que, si bien, es más realista que con métodos scanline, lo es menos que
con radiosity. Dentro del raytracing, se encuentran básicamente dos
submétodos:

o photom tracing: se calculan las trayectorias directas, entre las fuentes


de ilumi y el observador. Método poco usado.

o el visible tracing: se calculan las trayectorias inversas, entre el


observador y las fuentes de iluminación. Es el método más usado, y el
que se usará en el presente curso. Es el que implementan programas
como: RenderMan, Alias, POV, etc.

El método de raytracing presenta una serie de limitaciones y/o inconvenientes,


que se solventan por medio de una serie de técnicas.

• líneas escalonadas: debido a la discretización en pantalla de los rayos


de luz (pixel), las líneas rectas inclinadas se ven como hechas a
escalones (aliasing). La solución es colorear en todos más suaves los
pixel que quedan entre los escalones (antialiasing). Método que ralentiza
la generación de imágenes, pero consigue mayor calidad.

• desaparición de objetos diminutos: debido al grosor de los pixel,


estos son el promedio de los rayos que llegan. Si se trazan pocos rayos,
pueden desaparecen objetos. Una de las técnicas para solventar esto es
el supersampling, que consiste en tener internamente muchos más
pixels de los que se van a representar, y luego promediar. Se consiguen
buenas soluciones, aunque el tiempo de rendering se multiplica por 10-
100.

• falta de difracción: la refracción desvía la luz, pero no de igual forma en


todas las longitudes de onda. Por este motivo, cuando la luz blanca
atraviesa un prisma, se descompone en colores (arco iris). Esto es
imposible por medio de raytracing.

• falta de sombras suaves: puesto que las fuentes de iluminación son


puntos infinitamente pequeños, no se crean zonas de penumbra, y en
cambio entre zona con sombra y zona iluminada es muy drástico.
• falta de reflexión especular: la luz, al incidir en una superficie reflexiva
no rebota. La mayoría de los raytracers no solucionan el problema.

• falta de reflexión difusa: no sólo los objetos especulares reflejan la luz,


si no también los mates. Se puede intenta remediarlo con la iluminación
ambiental, como si todos los objetos reflejaran una cantidad constante y
pequeña de luz.

• falta de efectos cáusticos: efectos que se producen debido a la


refracción no uniforme de la luz (p.e. en lentes).

• reflejos defectuosos: los reflejos se producen debido tanto a la


reflexión especular como a la difusa, generalmente en las superficies
curvadas. Debido a la imposibilidad de calcular ambas reflexiones, estos
efectos se simulan por medio de métodos matemáticos aproximados.
Entre los disponibles, se utilizan reflexiones Phong y especulares

9.5 Modelos de reflexión y sombreado


Los gráficos 3D por ordenador modernos cuentan con un modelo de reflexión
llamado Phong reflection model, que no debe ser confundido con Phong
shading, que es algo completamente diferente.

Este modelo de reflexión y las técnicas de sombreado que permite, se aplican


solo a rénders basados en polígonos. Por ejemplo, raytracing y radiosity no lo
utilizan.

Técnicas de rénder de reflexión populares son:

• Flat shading: Una técnica que sombrea cada polígono de un objeto


basado en la normal del polígono y la posición e intensidad de una
fuente de luz.

• Gouraud shading: Inventado por H. Gouraud en 1971, es una rápida


técnica de sombreado de vértices usada para simular superficies
suavemente sombreadas.

• Texture mapping: Es una técnica para simular un gran nivel de detalle


superficial, aplicando imágenes (texturas) sobre los polígonos.

• Phong shading: Inventado por Wu Tong Phong, es utilizado para simular


brillos especulares y superficies sombreadas suaves.

• Bump mapping: Creado por Jim Blinn, es una técnica de perturbación


utilizada para simular superficies rugosas que es bastante popular
actualmente. Se usa cuando se desea dar un efecto de relieve en el
objeto. Esta técnica modifica las normales de la superficie a modificar,
sin modificar su geometria. Lógicamente, las normales originales de la
superficie serán perpendiculares a la misma. El bump mapping se
encarga de eliminar esa perpendicularidad y modificar estas normales
para lograr el efecto deseado, todo ello sin modificar en ningún momento
la topología ni la geometría del objeto. El resultado es bastante rico y
detallado, y pueden lograrse grandes parecidos a elementos naturales
(como puede ser la textura de una naranja.

9.6 Métodos procedimentales para la generación de objetos

9.6.1 Métodos basados en gramáticas formales


La idea básica consiste en partir de una forma simple, e ir añadiendo nueva
información geométrica. La técnica consiste en aplicar una serie de reglas de
transformación a la forma original.

Hay muchos objetos naturales que son candidatos a ser modelados de forma
recursiva.

Partes del objeto se asemejan al propio objeto. Por tanto, estos objetos pueden
a ser modelados de forma algorítmica. Un ejemplo de estos son los árboles.
Aunque no hay dos árboles iguales, se pude ver que de su tronco parten las
ramas, de las cuales a su vez salen más y así durante un cierto número de
iteraciones. Las diferencias entre dos árboles pueden ser perfectamente
modeladas mediante una distribución de probabilidad. Esta distribución puede
ser uniforme o incluso para obtener más realismo, una distribución normal. No
hay ningún problema en simular computacionalmente estas distribuciones de
probabilidad. La recursividad se puede definir matemáticamente mediante
gramáticas formales. Las gramáticas a su vez definen lenguajes a través de los
símbolos terminales. Los símbolos terminales en el contexto de los gráficos
pueden interpretarse de varias formas, todas ellas relacionadas con la
geometría o forma del objeto a representar. Por tanto, el lenguaje generado por
la gramática, interpretado de forma apropiada, nos da la sucesión de
operaciones que debemos realizar para generar el objeto.

En general, hay más de una regla de producción que puede aplicarse a un


mismo símbolo no terminal. Por tanto, si seleccionamos la regla de forma
aleatoria se pueden generar objetos muy parecidos con ciertas diferencias.
Esto se puede utilizar en el ejemplo de los árboles. Hay diferentes formas para
la interpretación de los símbolos terminales de la gramática.

Una forma podría ser la siguiente: Supongamos un bolígrafo que va trazando


líneas de acuerdo a las reglas definidas por el lenguaje. Así, el bolígrafo puede
moverse una unidad hacia delante, torcer a la derecha o a la izquierda. El
ángulo en el que puede girar el bolígrafo se considera constante. Se pueden
denotar estas operaciones mediante los símbolos: A, D, I, para representar:
hacia delante, a la derecha y a la izquierda. Suponiendo que el ángulo sea de
120 grados, la cadena ADADAD genera un triángulo equilátero.

Con un ángulo de 60 grados. La interpretación gráfica de esta regla se muestra


en la figura:
Si se sustituye cada símbolo terminal ‘A’ por su regla de producción, se obtiene
la siguiente sucesión de figuras:

9.6.2 Geometría fractal


Un fractal se puede definir como una característica o una propiedad que tienen
todos los elementos que poseen forma, aunque tradicionalmente un fractal se
le asocia a ciertas imágenes que son generadas a partir de fórmulas
matemáticas. En realidad estas imágenes son “Imagenes Fractales”, pero por
abreviar simplemente se les dice “Fractales”.

Una definición más completa sería la siguiente: Un fractal es aquel ente


geométrico que tiene una dimensión fractal, estrictamente mayor que su
dimensión topológica.

Para poder hablar de fractales es necesario entender y establecer primero lo


que significa la dimensión topológica y lo que significa la dimensión fractal,
para, a partir de ello, definir el objeto fractal y su correspondiente geometría, asi
como sus aplicaciones más básicas, para hacer esto hay que entender ciertos
conceptos y fórmulas matemáticas.

9.6.2.1 Dimensión topológica y dimensión fractal


Desde un cierto punto de vista (que llamaremos topológico) una circunferencia
y un segmento de recta son la misma curva y encierran el mismo tipo de
superficie puesto que es posible transformar una en la otra mediante una
deformación continua, es decir, sin cortar o someter a manipulaciones “no
topológicas”.

Desde otro punto de vista (métrico) no son la misma curva, ya que la


circunferencia y el área que encierra, el círculo, son finitos, y, en cambio, el
segmento, aunque es finito, no encierra con su borde un área finita.

Aquí aparece una característica distinta de las matemáticas: intentar clasificar


los objetos por lo que se conserva, y analizar, por otra parte, qué ocurre con lo
que no se conserva. En el ejemplo anterior, lo que se conserva es su carácter
topológico, es decir, su dimensión topológica.

La definición de dimensión topológica dada por Henri Poincaré fue la siguiente:

• El conjunto vacío tiene dimensión -1.


• Si los bordes de los entornos pequeños de todos los puntos del ente son
espacios (n-1)-dimensionales, decimos que el espacio que
consideramos es n-dimensional.

Así, según esto, se tiene:

• conjunto vacío: dimensión topológica: D = -1

• punto: dimensión topológica: D = 0

• segmento: dimensión topológica: D = 1

• cuadrado: dimensión topológica: D = 2

• cubo: dimensión topológica: D = 3

La dimensión topológica en el sentido de Poincaré o de Devlin coincide en


general con la dimensión por semejanza de Hausdorff-Besicovich como por
ejemplo los “cuerpos euclídeos” (rectas,segmentos,etc), esto es : Dt = Df. Pero
hay ciertos objetos geométricos en los que no ocurre así, es decir Dt < Df. Y
estos objetos son precisamente los Fractales.

Las características que definen un fractal son las siguientes:

Autosimilitud: A diferentes escalas, un fractal conserva la misma apariencia,


siempre existe una clara similitud entre partes muy distantes de una misma
figura fractal.

Infinito Detalle: Relacionada con la anterior característica al ampliar un fractal


tanto más detalle revela este sin que se tenga un límite en el que se aprecien
bloques.

Dimensión no entera: Al contrario de la geometría clásica, en la que las


figuras tienen 1, 2 o 3 dimensiones, un fractal puede desarrollarse en una
dimensión no entera, como, por ejemplo la curva de Koch, que lo hace en la
dimensión 1.26, puesto que ocupa parte del plano pero no llega a tener la
entidad de una figura bidimensional.

En general, un fractal tiene tantos puntos como todo el espacio tridimensional y


tiene tal estructura que cada una de sus partes, observada con una lente de
aumento adecuada, reproduce en cierto sentido el conjunto generador de
partida (autosemejanza).

Entendemos por Geometría Fractal a la parte de la matemática que estudia la


generación, dimensionalidad y aplicación práctica de los fractales.

9.6.2.2 ¿Cómo se generan?


Existen diversas formas para la generación de un fractal, sin embargo,
matemáticamente se define como la repetición constante de un cálculo simple,
esto es, la iteración. Así entonces los fractales se generan a través de
iteraciones de un patrón geométrico establecido como fijo.
La siguiente figura representa La curva de Koch (copo de Nieve) la cual se
forma a partir de un triángulo equilátero al cual se dividen sus lados en tres
partes iguales, de forma tal que en los tercios medios se coloca otro triángulo
semejante al primero. Esta iteración, en un alto grado de complejidad, se
asemejará a una circunferencia, ya que los triángulos se irán colocando
infinitamente. Ahora su dimensión fractal es:

9.6.2.3 Terrenos fractales


Una de las principales aplicaciones de la geometría fractal para los gráficos por
ordenador son los terrenos y montañas fractales. Se pueden generar una
montaña mediante una subdivisión recursiva de un tetraedro. La subdivisión
puede ser semejante a la utilizada en la curva de Koch. Por tanto, se van
escogiendo los puntos medios de los lados del tetraedro y se desplazan.

Se puede utilizar la función Random() para controlar el desplazamiento de los


puntos medios. Así se generan objetos más irregulares y diferentes en cada
ejecución del algoritmo.

Este algoritmo puede ser utilizado también para la generación de terrenos. Se


puede utilizar como axioma de la gramática un terreno hecho mediante
rectángulos en el plano (x, z).

Figura 9.22: Terreno fractal

Subdividiendo cada rectángulo en cuatro rectángulos más pequeños y


desplazando todos los vértices en la dirección del eje y obtenemos un terreno
más rugoso y realista.

Figura 9.23: Imagen generada mediante fractales


9.7 APIs de Gráficos 3D
Los gráficos 3D se han convertido en algo muy popular, particularmente en
juegos de computadora, al punto que se han creado APIs especializadas para
facilitar los procesos en todas las etapas de la generación de gráficos por
computadora. Estas APIs han demostrado ser vitales para los desarrolladores
de hardware para gráficos por computadora, ya que proveen un camino al
programador para acceder al hardware de manera abstracta, aprovechando las
ventajas de tal o cual placa de video.

Las APIs más populares actualmente son dos:

• OpenGL

• Direct3D

9.7.1 OpenGL
OpenGL es una especificación estándar que define una API multilenguaje y
multiplataforma para escribir aplicaciones que produzcan gráficos 2D y 3D. Fue
desarrollada por Silicon Graphics Inc. (SGI) en 1992[1]. Su nombre viene del
inglés Open Graphics Library, cuya traducción es biblioteca de gráficos abierta
(o mejor, libre, teniendo en cuenta su política de licencias[2]).

OpenGL se utiliza en campos como CAD, realidad virtual, representación


científica y de información, simulación de vuelo o desarrollo de videojuegos, en
el que su principal competidor es Direct3D de Microsoft Windows.

9.7.1.1 Historia de OpenGL


En los años 1980 el desarrollo de software que fuese compatible con un amplio
rango de hardware gráfico era un verdadero reto para los desarrolladores.
Había que tratar con interfaces muy diferentes y escribir drivers específicos
para cada tipo de hardware, resultando muy costoso; por ello, se
subcontrataban equipos de programadores para agilizar el desarrollo. Dado
que cada equipo trabajaba por separado en sus interfaces, se producía mucho
código redundante. Además, era un proceso caro, por lo que varios grupos
innovadores aceptaron el reto de encontrar un método mejor.

Al principio de los años 1990 SGI era un grupo de referencia en gráficos 3D


para estaciones de trabajo. Suya era la API IRIS GL[7], considerada puntera en
el campo y estándar de facto, llegando a eclipsar a PHIGS, basada en
estándares abiertos. IRIS GL se consideraba más fácil de usar y, lo más
importante, soportaba renderizado en modo inmediato. Además, PHIGS, aparte
de su mayor dificultad, fue considerada inferior a IRIS GL respecto a
funcionalidad y capacidad.

La competencia de SGI (Sun Microsystems, Hewlett-Packard e IBM, entre


otros) fue capaz de introducir en el mercado hardware 3D compatible con el
estándar PHIGS mediante extensiones. Esto fue reduciendo la cuota de
mercado de SGI conforme iban entrando diferentes proveedores en el
mercado. Por todo ello, en un intento de fortalecer su influencia en el mercado,
SGI decidió convertir el estándar IRIS GL en un estándar abierto.

SGI observó que la API IRIS GL no podía ser abierta debido a conflictos de
licencias y patentes; también contenía funciones no relevantes para los gráficos
3D como APIs para ventanas, teclado o ratón (en parte, porque fue
desarrollada antes de la aparición del X Window System o de los sistemas
NeWS de Sun). Además, mientras iba madurando el soporte del mercado para
el nuevo estándar, se pretendía mantener los antiguos clientes mediante
bibliotecas añadidas como Iris Inventor o Iris Performer.

El resultado de todo lo anterior fue el lanzamiento del estándar OpenGL.

Algunos de los logros que se consiguieron fueron:

• Estandarizar el acceso al hardware.

• Trasladar a los fabricantes la responsabilidad del desarrollo de las


interfaces con el hardware.

• Delegar las funciones para ventanas al sistema operativo.

Con la variedad de hardware gráfico existente, lograr que todos hablasen el


mismo lenguaje obtuvo un efecto importante, ofreciendo a los desarrolladores
de software una plataforma de alto nivel sobre la que trabajar.

En 1992[8], SGI lideró la creación del OpenGL Architecture Review Board


(OpenGL ARB), grupo de empresas que mantendría y extendería la
especificación OpenGL en los años siguientes. OpenGL evolucionó desde IRIS
GL, superando su problema de dependencia del hardware al ofrecer emulación
software para aquellas características no soportadas por el hardware del que
se dispusiese. Así, las aplicaciones podían utilizar gráficos avanzados en
sistemas relativamente poco potentes.

En 1994 SGI barajó la posibilidad de lanzar un producto denominado


OpenGL++, el cual incluía elementos como una API de scene-graph (basada
presumiblemente en la tecnología de Performer). Dicha especificación fue
divulgada entre unos pocos grupos interesados, pero nunca apareció
finalmente como producto[9].

En 1995 Microsoft lanzó Direct3D, que se convertiría en el principal competidor


de OpenGL. El 17 de diciembre de 1997[10] Microsoft y SGI iniciaron el
proyecto Fahrenheit, esfuerzo cooperativo con el objetivo de unificar las
interfaces de OpenGL y Direct3D (y añadir también una API scene-graph). En
1998 se uniría al proyecto Hewlett-Packard[11]. Pese a tener un principio
prometedor en estandarizar las APIs de gráficos 3D, debido a restricciones
financieras en SGI y la falta general de apoyo por parte de la industria, fue
finalmente abandonado en 1999[12].
9.7.1.2 OpenGL 2.1
El 2 de agosto de 2006 se publicó OpenGL 2.1. Siendo completamente
compatible con las versiones anteriores[13], aporta además nuevas
características como:

• Revisión 1.20 del OpenGL Shading Language (GLSL).

• Comandos que soportan la especificación de matrices no cuadradas.

• Objetos Pixel buffer para acelerar el tráfico de imágenes en los buffers


en comandos como glTexImage2D y glReadPixels. Esta funcionalidad
corresponde a la extensión ARB_pixel_buffer_object.

• Texturas sRGB. Esta funcionalidad corresponde a la extensión


GL_EXT_texture_sRGB.

9.7.2 Direct3D
Direct3D es parte de DirectX, una API propiedad de Microsoft disponible tanto
en los sistemas Windows de 32 y 64 bits, como para sus consolas Xbox y Xbox
360 para la programación de gráficos 3D.

El objetivo de esta API es facilitar el manejo y trazado de entidades gráficas


elementales, como líneas, polígonos y texturas, en cualquier aplicación que
despliegue gráficos en 3D, así como efectuar de forma transparente
transformaciones geométricas sobre dichas entidades. Direct3D provee
también una interfaz transparente con el hardware de aceleración gráfica.

Se usa principalmente en aplicaciones donde el rendimiento es fundamental,


como los videojuegos, aprovechando el hardware de aceleración gráfica
disponible en la tarjeta gráfica.

9.7.2.1 Historia de Direct3D


En 1992, Servan Keondjian fundó RenderMorphics, una compañía que
desarrollaba una API de gráficos 3D llamada Reality Lab. Esta API se usaba en
programas de CAD y representación de imágenes médicas. En febrero de
1995, Microsoft compró RenderMorphics, incorporando a Keondjian a la
compañía para implementar un motor gráfico para Windows 95. El resultado
fue la primera versión de Direct3D, incluída en DirectX 2.0 y DirectX 3.0.

Inicialmente, Direct3D se implementó sobre dos APIs: la API retained mode y la


API inmediate mode. El modo retenido era una API de escenarios gráficos
basada en el COM (Computer Object Model) de Microsoft, que tuvo escasa
acogida. Los desarrolladores de juegos solicitaron un control más directo sobre
las actividades del hardware del permitido en el Retained Mode. Solamente el
juego Lego Island se basó en dicha API, por lo que Microsoft abandonó la
evolución de dicho modo después de DirectX 3.0, quedando intacto desde
entonces.
La primera versión del modo inmediato de Direct3D consistía en un modelo de
programación basado en un buffer de ejecución. Microsoft confiaba en que
dicho buffer fuera soportado directamente por los vendedores de hardware
pretendiendo que se almacenaran en memoria y fueran parseados por
hardware, con el objetivo de realizar renderización 3D. Dichos buffers
resultaron ser muy difíciles de programar, frenando la adopción de la nueva API
y generando una corriente de opinión que solicitaba la adopción de OpenGL
como la oficial para renderización 3D en Microsoft. Microsoft decidió seguir
mejorando Direct3D, no solo para ser competitivos con OpenGL, sino también
para competir de forma más efectiva contra otras APIs propietarias como Glide
de 3dfx. Se encargó a un equipo de Redmond hacerse cargo del desarrollo del
modo inmediato de Direct3D, mientras el equipo de RenderMorphics
continuaba el trabajo sobre el modo retenido, abandonado no mucho después
como ya se ha dicho.

A continuación se muestra una relación de las diferentes versiones de Direct3D


con las mejoras más importantes que aportaron:

• Direct3D 5.0 introdujo el conjunto de primitivas DrawPrimitive que


eliminaba la necesidad de construir buffers de ejecución por parte de las
aplicaciones.

• Direct3D 6.0 introdujo numerosas características para la abstracción del


hardware (como multitexturas y buffers de patrones), optimizó el uso de
las pipelines de geometría para x87, SSE y 3DNow!, y la gestión
opcional de texturas para simplificar la programación.

• Direct3D 7.0 introdujo el formato de texturas .dds y soporte para la


aceleración hardware de transformaciones y luces. También añadió la
posibilidad de almacenar buffers de vértices en memoria hardware. Los
buffers hardware de vértices supusieron la primera mejora sustancial
con respecto a OpenGL en la historia de DirectX. También se aumentó
el soporte para multitexturas. Aunque Direct3D 7.0 era muy potente, era
tan complicado de programar que necesitaba un nuevo modelo de
programación para mostrar las capacidades de shading que
proporcionaba el hardware.

• Direct3D 8.0 introdujo programabilidad en forma de vertex y pixel


shaders, permitiendo a los desarrolladores escribir código sin
preocuparse del hardware. Programar shaders sencillos equivalían a
tareas sencillas, y shaders más complejos se usaban para tareas más
complejas. El driver de pantalla compilaba estos shaders en
instrucciones comprensibles por el hardware. Direct3D 8.0 también
eliminó la API DirectDraw, absorbiéndola. Se resolvieron muchos
problemas de usabilidad. Además, se incluyeron características muy
potentes como niebla (fog), bump mapping y texture mapping.

• Direct3D 9.0 añadió una nueva versión del High Level Shader Language
(HLSL, lenguaje de programación de shaders), soporte para HDR,
renderización de múltiples objetos e indexación del buffer de vértices.
• Direct3D 10 consigue un aumento considerable en el rendimiento
eliminando el llamado object overhead, que consiste en realizar
llamadas entre la API y el driver usando la CPU. Dichas llamadas
producían un cuello de botella, limitando, a unos 500, la cantidad de
objetos que se podían representar en una escena. Direct3D 10 incorpora
además, los shaders de geometría (geometry shaders) junto con la
nueva función Stream Out; esta nueva función permite guardar en un
buffer información de los shaders permitiendo operaciones de varias
pasadas en el shader de geometría. Otra novedad de Direct3D 10 es la
unificación de los pixel y vertex shaders, que a partir de ahora pasarán a
funcionar como pixel, vertex o geometry shaders, dependiendo de la
situación. Con Direct3D 10 se conseguirá un mayor nivel de detalle en
las texturas, permitiendo un mayor realismo sin incrementar la
complejidad; además, la generación de sombras dejará de ser tarea del
procesador central para ser la GPU la que las genere y posteriormente
renderice. También se ha mejorado la generación dinámica de
geometría, que anteriormente se realizaba en el procesador y ahora
también calcula la GPU, y otros efectos como el motion blur que resulta
más realista. El principal problema de DirectX 10 es que sólo funciona
con el sistema operativo Windows Vista, mientras que DirectX 9.0
trabaja con toda la familia de Windows a partir de Windows 98. El SDK
de DirectX 10 está disponible desde Febrero de 2007.

9.8 Software de gráficos 3D


A pesar de haber muchos paquetes de modelado y animación 3D, los cuatro
que se han ganado la mayor popularidad son:

• Maya (Alias Wavefront). Es el software de modelado más popular en la


industria. Tras la adquisición de la empresa fabricante, ALIAS, por parte
de AUTODESK, la versión octava de Maya fue publicada. Es utilizado
por multitud de importantes estudios de efectos visuales en combinación
con RenderMan, el motor de rénder fotorrealista de Pixar. Última versión
a octubre de 2006: Maya 8.

• 3D Studio Max (Discreet). Fue originalmente escrito por Kinetix (una


división de Autodesk) como el sucesor de 3D Studio para DOS. Más
tarde Kinetix se fusionaría con la última adquisición de Autodesk,
Discreet Logic. La versión más reciente en Octubre de 2006 era la 9.0.
Es el líder en el desarrollo 3D de la industria del videojuego y es muy
utilizado a nivel amateur.

• Lightwave 3D (Newtek). Fue originalmente desarrollado por Amiga


Computers a principios de la década de los 90. Más tarde evolucionó en
un avanzado paquete gráfico y animación 3D. Actualmente disponible
para Windows, Mac OS y Mac OS X. La versión a principios del 2006
era la 8.5. El programa consiste en dos componentes: el modelador y el
editor de escena. Es utilizado en multitud de productoras de efectos
visuales como Digital Domain.
• Softimage XSI (Avid). El contrincante más grande de Maya. En 1987,
Softimage Inc, una compañía situada en Montreal, escribió
Softimage|3D, que se convirtió rápidamente en el programa de 3D más
popular de ese período. En 1994, Microsoft compró Softimage Inc. y
comenzaron a reescribir SoftImage|3D para Windows NT. El resultado
se llamó Softimage|XSI. En 1998 Microsoft vendió Softimage a Avid. La
versión a mediados del 2003 era la 3.5.

Junto a estos paquetes mayores, hay otros que no se han ganado tal
aceptación general, pero que no son simples juguetes. Algunos son:

• Caligari trueSpace - una aplicación 3D integrada, con una interfase muy


intuitiva. Una característica distintiva de esta aplicación es que todas las
fases de creación de gráficos 3D son realizadas dentro de un único
programa. No es tan avanzado como los paquetes líderes, pero provee
características como simulación de fenómenos físicos (viento, gravedad,
colisiones entre cuerpos).

• Cinema4d - Motor de rénder rápido, cálculo de radiosidad.

• formZ - Ofrece manipulación topológica de las geometrías.

• Rhinoceros 3D - Un potente modelador bajo NURBS.

• POV-Ray - Un avanzado software gratuito de Raytracing. Usa su propio


lenguaje de descripción de escena, con características como macros,
bucles y declaraciones condicionales. Es completamente gratuito
aunque no fue lanzado bajo GPL. No incluye modelador.

• Moray - Modelador para POV-Ray.

• Blender (NaN) - Programa de modelado y animación libre, con


características como soporte para programación bajo Python con un
amplia gamma de script en constante desarrollo, posee un engine
robusto para la programación de juegos, un Motor de render propio y
una comunidad de usuarios totalmente abierta y dispuesta a colaborar.

• RealSoft3D - Modelador 3D para Linux y Windows. Incluye rénder.

• Universe por Electric Image - Paquete de modelado y animación con uno


de los motores de rénder más rápidos que existen.
9.9 Referencias
http://lsi.ugr.es/~mode3d/

http://www.cristalab.com/tutoriales/148/fundamentos-basicos-de-modelado-3d

http://www3.uji.es/~ribelles/Investigacion/3GT/index.html

http://es.wikipedia.org/wiki/Gr%C3%A1ficos_3D_por_computadora

http://www.casa3d.com/

También podría gustarte