Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Introducción a Java3D (página 2)




Enviado por goodlafa



Partes: 1, 2, 3

1.3. ¿Cómo Obtener
Java3D?

Para obtener Java3D es necesario entrar en la
página de sus creadores: . En esta
página podemos encontrar una liga de download, al
entrar en ella podremos ver la gran variedad de recursos que
ofrece Sun Microsystems, entre ellos Java3D, se nos
preguntará qué versión queremos y para
qué sistema
operativo. Después de registrarnos como usuarios
podremos descargar el paquete deseado y la documentación.

1.4. La
Instalación.

Java3D está disponible para la
mayoría de las plataformas
. Hay versiones para
Solaris/Sparc, Solaris/x86, Linux y
©Windows, etc.
La instalación es realmente sencilla y los requisitos que
debe cumplir nuestra PC son los mismos que se necesitan para
poder trabajar
con Java en general.
A continuación listamos dichos requisitos (mínimos)
para tenerlos en cuenta antes de comenzar a trabajar.

  • Sistema Operativo: ©Windows 95/98/Me/XP/2000,
    Linux, SolarisTM (plataforma SPARCTM), IRIX de SGI, HP-UX de
    HP, AIX de IBM.
  • Java: Versión J2SE 1.4.0 o
    superior.
  • Java3D: Versión 1.3 Beta 2 o
    superior.
  • DirectX u OpenGL.
  • Microprocesador: En plataformas x86, Pentium 200
    MMX o superior.
  • Memoria de 64 Mb de RAM o
    más.
  • Espacio en disco: 150 Mb aproximadamente (Java +
    Java3D + DirectX u OpenGL).

Nosotros usamos la versión para ©Windows
disponible como ejecutable (*.exe). Al ser ejecutado el archivo
descargado se mostrará un asistente que guiará paso
a paso al usuario para completar su
instalación.

1.5. Procesos De
Modelado Y Animación 3D.

El modelado en Java3D, al igual que en otras
aplicaciones homólogas, consiste en construir objetos a
partir de elementos geométricos. Los objetos 3D
son sólidos virtuales formados por datos
. Los datos
tridimensionales se presentan en pantalla mediante líneas,
puntos, degradados de color, imágenes o
una combinación de todos ellos. Tradicionalmente, se ha
modelado siempre en modo línea o en modo
puntos
. Sin embargo, desde hace unos años la potencia de los
ordenadores y el uso de las capacidades 3D en tiempo real,
ha permitido la posibilidad de trabajar en modo casi
fotográfico
. Esta técnica se conoce normalmente
como Open- Gl. A pesar
del atractivo indudable del modelado en Open-Gl, muchas
veces el modo línea puede ser la forma más efectiva
de afrontar un proyecto.

El texturizado consiste en recubrir nuestros
objetos, o mejor dicho, la superficie de nuestros objetos, con
imágenes que le proporcionen un aspecto muy realista.
Las texturas, pueden ser fotográficas o
procedurales
. Las primeras, son fotografías
digitalizadas. Las segundas, son producidas mediante algoritmos
matemáticos. También se pueden aplicar a los
objetos superficies rugosas o suaves para imitar esta propiedad de
los objetos reales. Aprender a texturizar es básico para
obtener un render lo más realista posible. Es necesario un
trabajo
importante de retoque y redimensionado de imágenes
(mediante un editor de imágenes que generalmente es
independiente de la aplicación 3D), antes de poner manos a
la obra. Un proyecto concienzudo y una preparación
meticulosa de las imágenes nos evitarán muchos
quebraderos de cabeza. Los programas de 3D
pueden volverse muy manejables si tenemos una buena planificación del trabajo a realizar
además de creatividad.
La creatividad del diseñador se verá
reflejada en la calidad del
trabajo 3D realizado y la herramienta, en nuestro caso Java3D,
será sólo un complemento de ella.

¿Como obtener resultados muy realistas?
¿Hay trucos? ¿Hay libros? Bueno,
el mejor truco es aprender a observar. Tenemos objetos a nuestro
alrededor. Estos, tienen propiedades físicas, reflejan o
absorben la luz de una
determinada forma. Pueden dejar pasar la luz a través de
ellos o producir reflejos especulares (espejos). Destellar como
los cristales o brillar suavemente. Algunos incluso pueden emitir
luz.

A poco que observemos los materiales
naturales, descubriremos que la luz es el elemento central
de la apariencia de los mismos. El mejor modelado pobremente
iluminado se echa a perder. El texturizado más sofisticado
no se aprecia. Incluso un resultado insignificante en los dos
primeros aspectos puede ser corregido mediante una buena iluminación. El que conozca las técnicas
cinematográficas sabe la importancia de la luz en el
cine. Una
escena gris y sin gracia puede convertirse en un universo vibrante
mediante la iluminación. En 3D se vienen a utilizar
técnicas similares de iluminación a las que se
utilizan en los estudios fotográficos o
cinematográficos, aunque no exactamente iguales, ya que
los motores de render
presentan ciertas limitaciones a la hora de imitar el comportamiento
de la luz.

1.6. Java3D En El Mundo
Real.

Las aplicaciones de Java3D en el mundo real al igual que
otras herramientas
del mismo tipo son un tanto obvias: cine, televisión, páginas Web, modelado
gráfico, arquitectura
(planos arquitectónicos), juegos,
publicidad,
etc.

Java3D es una buena opción de desarrollo
para quien quiera realizar un entorno 3D, tanto para la Web, como
para una aplicación específica.

Por su alto nivel de abstracción, la generalidad
de su modelado y la facilidad del lenguaje es
una gran herramienta de trabajo.

Además, proporciona todas las ventajas de ser un
lenguaje basado en Java, con la portabilidad, y el código
de fácil comprensión.

1.7. Ventajas Y Desventajas De
Java3D.

Mientras el lector vaya descubriendo Java3D,
también descubrirá que hay en él varias
ventajas y desventajas. Entre esas ventajas destacamos las
siguientes:

  • Es completamente libre, lo cual implica
    otras ventajas como ahorro de
    recursos, modificación por parte de los usuarios para
    mejorarlo o adaptarlo a sus requerimientos, etc.
  • Es multiplataforma.
  • Fácil creación de
    animaciones.
  • Fácil creación de
    juegos.
  • No utiliza demasiados recursos de
    cómputo.
  • Intenta optimizar el renderizado.
  • En animación no hay demasiada necesidad de
    crear hilos como en la animación de
    Java2D.
  • La documentación es buena, aunque la
    mayoría de ella se encuentra sólo en inglés.
  • Se pueden explotar todas las características
    del lenguaje.

Respecto a las desventajas podemos mencionar:

  • Es demasiado lento todavía para
    realizar proyectos en
    los que se requiera la velocidad
    como parte fundamental del mismo.
  • Sólo se puede trabajar con Applets y algunos
    formatos especializados, no genera formatos de salida
    como AVI, JPG, etc.
  • La mayoría de los recursos sólo se
    encuentran a través de la red y los más
    importantes sólo en el idioma
    inglés.

Por tales ventajas y desventajas vemos que Java3D es una
herramienta de modelado y animación 3D bastante
buena
, pero lo más importante es ir descubriendo poco
a poco todas sus capacidades y complementarlas con otras
herramientas que nos ayuden a cumplir con nuestros objetivos como
diseñadores y destacar que la creatividad del usuario es
uno de los elementos más importantes para obtener un
trabajo de calidad.

1.8. La Estructura De
Este Manual.

Iniciamos en el capítulo dos explicando los
conceptos generales de Java3D, algunos de estos son: universo
virtual, objetos del grafo de escena, nodos hoja y algunos otros
implicados en la construcción de aplicaciones 3D;
posteriormente, en el mismo capítulo, veremos cómo
se construye un árbol para una animación en Java3D
dando un algoritmo que
es bastante útil, también se explicará el
concepto de
sistema de
coordenadas específico para Java3D, y otro tipo de sistema
de coordenadas llamado "de alta resolución",
también conoceremos algo sobre el renderizado y por
último, se comenta algo sobre el uso de los paquetes
Java3D.

En el capítulo 3 vamos a hacer un ejemplo muy
sencillo, el HelloJava3D, éste se expandirá poco a
poco a través de todo el manual para mostrar varias de las
cosas que se pueden hacer con Java3D. Este ejemplo
generará un simple cubo, pero nos ayudará a
entender mejor la construcción de un grafo de escena, el
algoritmo dado en el segundo capítulo y varias de las
clases que se usan comúnmente en Java3D.

El capítulo número 4 habla sobre
transformaciones, algunas de las cuales son aplicadas al ejemplo
HelloJava3D, además, como se explica en el mismo
capítulo, las transformaciones pueden ser combinadas para
obtener algún tipo de resultado final; ese es
también uno de los temas a tratar.

Finalmente, en el quinto capítulo se da una
introducción sobre la animación en
Java3D, sobre comportamientos, y se genera una variante del
ejemplo HelloJava3D para aplicarle animación y combinar
esa animación con las transformaciones hechas en el
capítulo cuarto. En este capítulo también se
da un algoritmo que nos ayudará a crear animaciones de una
forma muy sencilla.

1.9. Convenciones De Este
Manual.

Para facilitar la comprensión de este manual,
tenemos tres convenciones que serán usadas constantemente.
Aquí mostramos la lista:

  1. Las notas y algunas aclaraciones se mostrarán
    en recuadros grises a la izquierda o derecha de la
    página sobre la banda gris con la leyenda
    "NOTAS".
  2. Los conceptos más importantes los colocaremos
    en negritas o cursivas.
  3. Todo lo que mostremos en este tipo de letra
    será, código, clases o paquetes de
    Java3D.

2. Conceptos
Generales
.

Vamos a iniciar en este capítulo a comprender
algunos de los conceptos básicos y más importantes
sobre Java3D, tales como universo virtual, objetos del grafo
escena y otros objetos implicados, construcción de un
árbol, sistemas de
coordenadas dentro de Java3D, coordenadas de alta
resolución, modos de renderización y por
último los paquetes de Java3D.

2.1. Universo
Virtual.

Un universo virtual de Java3D se crea a partir de
un grafo de escena. Una definición habitual de grafo es
una estructura de datos compuesta de nodos y
arcos
:

Nodos:

Un nodo es un elemento de datos. Los nodos del
grafo de escena se corresponden con instancias de clases Java3D.
A los nodos padre, se les denomina nodos grupo.

Arcos:

Un arco es una relación ente elementos de
datos (representados por los nodos). Los arcos representan dos
tipos de relaciones entre las instancias de Java3D, a
saber:

1. La relación más habitual es la
relación padre–hijo. Un nodo grupo puede
tener varios hijos, pero sólo un padre. Un nodo hoja puede
tener un padre, pero no hijos.

2. La otra relación es la de referencia.
Una referencia asocia un objeto del tipo NodeComponent con
un nodo del grafo de escena. Los objetos NodeComponent definen
tanto la geometría como los atributos de apariencia
que se utilizan para renderizar los objetos visuales.

Los grafos de
escena de Java3D se construyen utilizando objetos Node
unidos por relaciones padre–hijo formando una estructura de
árbol. En una estructura de árbol, un nodo es la
raíz. Se puede acceder al resto de los nodos del
árbol siguiendo los arcos que parten del nodo raíz.
Un grafo de escena está formado por árboles
cuya raíz se sitúa en los objetos Locale.
Los NodeComponent y los arcos de referencia no forman parte,
realmente, del árbol del grafo de escena.

Existe sólo un camino desde la raíz de un
árbol hasta cada una de las hojas, de igual forma,
sólo hay un camino desde la raíz de un grafo de
escena hasta cada uno de los nodos hoja. El camino desde la
raíz de un grafo de escena hasta un nodo hoja en
particular se llama el camino de escena de ese nodo hoja.
Por lo tanto, teniendo en cuenta la propiedad antes descrita,
cada nodo hoja tiene sólo un camino de grafo de escena.
Cada camino de grafo de escena en Java3D specifica completamente
la información del estado de su
hoja. La información del estado incluye datos como la
localización, orientación y tamaño de un
objeto visual. Por lo tanto, los atributos de cada objeto visual
dependen directamente de su camino de grafo de escena. El
renderizador de Java3D utiliza esta propiedad y renderiza las
hojas en el orden que él determina que es más
eficiente.

Las representaciones gráficas de los grafos de escena sirven
como herramienta de desarrollo así como de
documentación para los programas de Java3D. Los grafos de
escena se crean utilizando la notación mostrada en la
Tabla 2.1. Los programas de Java3D pueden tener muchos más
objetos que los que se muestran en el grafo de escena.

Para diseñar un universo virtual de Java3D se
dibuja un grafo de escena utilizando el conjunto habitual de
símbolos. Una vez se haya construido el
programa, el
grafo de escena creado es la representación precisa del
mismo.

Nodos y
NodeComponent

(Objetos).

Arcos

(Relaciones entre
objetos).

 

VirtualUniverse.

Relación padre- hijo.

 

Locale.

Referencia.

 

Group.

  

 

Leaf.

  

 

NodeComponent.

  

 

Otros objetos.

  

Tabla 2.1.
Notación para grafos de escena.

En la tabla anterior, los símbolos de la columna
de la izquierda representan los distintos objetos que se usan en
el grafo de escena. Los dos primeros se corresponden con objetos
de clases específicas: VirtualUniverse y Locale. Los tres
símbolos siguientes representan objetos de las clases
Group, Leaf y NodeComponent. Estos tres símbolos suelen
llevar anotaciones para indicar la subclase a la que pertenece el
objeto en cuestión. El último símbolo de la
izquierda se utiliza para representar cualquier otro tipo de
objeto. Por otro lado, los símbolos de la derecha
representan los arcos que indican la existencia de relaciones. La
flecha convencional representa una relación padre-hijo
entre dos objetos y la flecha punteada referencia otro objeto.
Los objetos que son referenciados se pueden compartir entre
diferentes ramas del grafo de escena.

2.2 Objetos Del Grafo De
Escena.

2.2.1 Objetos de la
superestructura del grafo de escena.

Java3D define dos objetos de superestructura del grafo
de escena, Virtual Universe y Locale, que se utilizan para
contener los distintos subgrafos que forman el grafo de
escena.

Objeto VirtualUniverse:

Un objeto de esta clase consiste
en una lista de objetos Locale que contienen una serie de nodos
del grafo de escena que existen en el universo. Normalmente, las
aplicaciones sólo necesitan un universo virtual, incluso
las bases de datos
virtuales muy grandes. Las operaciones sobre
este objeto incluyen la enumeración de los distintos
objetos Locale contenidos en dicho universo.

Objeto Locale:

Contiene un conjunto de subgrafos del grafo de escena
cuya raíz se corresponde con un nodo del tipo BranchGroup.
Un objeto Locale también define la localización del
universo virtual utilizando coordenadas de alta resolución
(HiResCoord) para especificar la posición. El HiResCoord
se utiliza como el origen de todos los objetos del grafo de
escena contenidos en el Locale. Un objeto Locale no tiene padre
en el grafo de escena, pero se une de forma implícita a un
universo virtual cuando se construye. Este objeto puede
referenciar un número arbitrario de nodos BranchGroup,
pero no tiene hijos explícitos. Las coordenadas de todos
los objetos del grafo de escena son relativas al HiResCoord del
Locale en el que se encuentran. Las operaciones del objeto Locale
incluyen establecer y obtener el HiResCoord y añadir y
eliminar subgrafos.

2.2.2 Objetos de
agrupación de nodos.

Los nodos de agrupación son los elementos de
unión que se utilizan para construir un grafo de escena.
Todos los nodos de agrupación pueden tener un
número variable de nodos hijos incluyendo otros nodos de
agrupación y nodos hoja. Estos hijos tienen un
índice asociado que permite realizar operaciones sobre un
hijo en particular. Sin embargo, salvo que se utilice alguno de
los nodos de agrupación ordenados especiales, el
renderizador de Java3D puede renderizar los hijos de un nodo de
agrupación en el orden que considere más
oportuno.

Nodos Group:

Los objetos Group son nodos de agrupación de
propósito general. Tienen un solo padre y un número
arbitrario de hijos. Entre las operaciones que proporciona este
objeto están las de añadir, eliminar y enumerar los
hijos del grupo. Las subclases de este objeto añaden
semánticas adicionales.

Nodos BranchGroup:

Un nodo BranchGroup es la raíz de un subgrafo de
una escena que puede compilarse como una unidad, unirse a un
universo virtual o incluirse como hijo de un nodo de
agrupación en otro subgrafo. Un subgrafo, cuya raíz
sea un nodo de este tipo puede imaginarse como una unidad de
compilación a la que se le pueden realizar las siguientes
acciones:

  • Compilarse mediante su método
    de compilación. Esta operación hará que se
    compile el subgrafo completo así como cualquier otro
    nodo de tipo BranchGroup contenido en dicho subgrafo
    (además de todos sus descendientes).
  • Se puede insertar dentro de un universo virtual
    conectándolo con un objeto Locale, entonces, se dice que
    el subgrafo completo está vivo.
  • Se puede desconectar el BranchGroup del subgrafo al
    que está contenido en tiempo de ejecución,
    siempre y cuando se den las condiciones necesarias para poderlo
    hacer.
  • Puede cambiar de padre. Si un BranchGroup se
    encuentra dentro de un subgrafo, como hijo de algún otro
    nodo de agrupación, no se puede unir a un
    Locale.

Nodos TransformGroup:

Los nodos TransformGroup especifican una
transformación espacial sencilla utilizando un objeto
Transform3D que puede colocar, orientar y escalar todos sus
hijos. La transformación especificada puede realizarse en
los objetos aplicables. Si un nodo TransformGroup se utiliza como
antecesor de un nodo ViewPlatform en el grafo de escena, entonces
la transformación tiene que ser congruente, es decir,
sólo se pueden realizar rotaciones, traslaciones y
escalados uniformes en un camino directo desde un Locale hasta un
nodo ViewPlatform. El intento de realizar una
transformación no permitida genera una excepción
(BadTransformException). Los efectos de las transformaciones en
el grafo de escena son acumulativos. La concatenación de
las transformaciones de cada TransformGroup en un camino directo
desde el Locale hasta un nodo hoja define un modelo de
transformación que toma los puntos de las coordenadas
locales del nodo hoja y los transforma en coordenadas del mundo
virtual. Este modelo de transformación se utiliza para
transformar puntos, normales y distancias en coordenadas del
mundo virtual.

2.2.3 Objetos Nodos
Hoja.

Los nodos hoja (Leaf) forman una clase abstracta para
todos los nodos del grafo de escena que no tienen hijos.
Proporcionan enlaces espaciales y capacidades de
instanciación para compartir grafos de escena.
Proporcionan también una plataforma de visión para
colocar y orientar los objetos en un punto de vista dentro del
mundo virtual.

Nodos Shape3D:

La clase Shape3D da soporte a la creación de
objetos geométricos. Contiene dos componentes: una
referencia a la forma geométrica y a su componente de
apariencia. El objeto de geometría
define los datos geométricos de la forma, mientras que el
objeto de apariencia especifica los atributos de apariencia del
objeto como pueden ser color, material, textura, etc.

Nodos ViewPlatform:

Los nodos ViewPlatform definen una plataforma de
visualización que se referencia mediante un objeto View.
La posición, orientación y escala de las
transformaciones desde el grafo de escena hasta el nodo
ViewPlatform especifican la localización del punto de
vista y hacia qué dirección está orientado. Un
observador puede deambular por una escena cambiando las
transformaciones en la jerarquía del grafo de escena por
encima del ViewPlatform.

Nodos Behavior:

Los nodos hoja Behavior permiten que una
aplicación modifique el grafo de escena en tiempo de
ejecución. Behavior es una clase abstracta que define
propiedades comunes a todos los objetos de comportamiento de
Java3D. Hay varios comportamientos predefinidos que son subclases
de Behavior. Además, el usuario puede redefinir estos
objetos.

Nodo BoundingLeaf:

Define una región limitada que puede ser
referenciada por otros nodos para definir una región de
influencia (nodos Fog y Light), una región de
activación (nodos de Background, Clip y Soundscape) o una
región de planificación (nodos Sound y Behavior).
La región limitada se define en el sistema de coordenadas
local del nodo BoundingLeaf. Se puede utilizar una referencia a
este nodo en lugar de a los límites de
un objeto de alguno de los nodos antes mencionados. Este nodo
permite a la aplicación especificar una región
limitada en un sistema de coordenadas diferente del sistema local
del objeto que referencia los límites. Es decir, si, por
ejemplo, en una habitación hay varias luces, los
límites aplicados a las distintas luces se
corresponderán siempre con la habitación,
independientemente del movimiento de
las propias luces. Así, utilizando un objeto de este tipo,
no es necesario aplicar coordenadas de límites distintas
para cada objeto de iluminación (ya que cada uno
tendría su propio sistema de coordenadas), sino que todos
los límites se aplicarían en función
del objeto BoundingLeaf.

Nodo Background:

Este nodo define un fondo para la aplicación.
Este fondo puede ser un color fijo o una imagen que se
utiliza para rellenar la ventana utilizada. También
especifica a la aplicación la región en que el nodo
Background está activo. Un nodo de este tipo está
activo cuando la región de la aplicación intersecta
con el volumen de
activación del ViewPlatform. Si hay varios nodos
Background activos, se
utiliza el que esté más cercano al ojo, y si no hay
ninguno activo, el fondo de la ventana se pinta de
negro.

Nodo Fog:

Se trata de una clase abstracta que define un conjunto
de atributos comunes que controlan la niebla de la escena. Entre
dichos atributos se encuentran el color y un objeto de
límites que especifica la región de la influencia.
Todos los objetos que intersecten con la región de
influencia modifican su color (para aplicarle la niebla) una vez
aplicadas las luces y texturas.

  • Nodo ExponentialFog: Extiende el nodo Fog
    añadiéndole una densidad de
    niebla que se usa como exponente de la ecuación de
    niebla. La densidad se define en el sistema local de
    coordenadas del nodo, aunque la ecuación de niebla se
    referirá a las coordenadas del ojo.
  • Nodo LinearFog: Extiende el nodo Fog
    añadiendo un par de valores de
    distancia en el eje Z que indican el punto en que la niebla
    debe comenzar a oscurecer la escena y en el que debe
    oscurecerla completamente.

Nodo Light:

Es una clase abstracta que define las propiedades
comunes a todos los nodos de luz. Cada luz tiene asociado un
color, un estado (encendida o apagada) y un objeto de
límites que especifica la región de influencia de
la luz. El modelo de iluminación de Java3D se basa en un
subconjunto del modelo de iluminación de
OpenGL.

Nodo Sound:

Es también una clase abstracta que define las
propiedades comunes de todos los nodos de sonido. Un grafo
de escena puede contener varios elementos de sonido. Cada nodo de
sonido contiene una referencia a los datos de sonido, un factor
de escala de amplitud, un flag que indica si el sonido
asociado con el objeto debe reproducirse hasta que se acaba o
sólo hasta que se desactive el objeto, el número de
veces a repetirse, un estado (si está activado o no), una
región de influencia, una prioridad, etc. Siempre que el
usuario se encuentre dentro de los límites de influencia
del sonido, este será potencialmente audible.

  • Nodo BackgroundSound: Define una fuente de
    sonido sin atenuación que no tiene ni posición ni
    dirección. Tiene los mismos atributos que el nodo Sound.
    Se utilizan como sonidos de ambiente y
    puede haber varios activos a la vez.
  • Nodo PointSound: Define un sonido cuyas
    ondas se
    emiten en todas las direcciones desde su localización.
    Se añaden a los parámetros del nodo Sound la
    localización y el grado de atenuación con la
    distancia.
  • Nodo ConeSound: Define un nodo PointSound cuyo
    sonido está dirigido a lo largo de un vector en el
    espacio. El sonido se atenúa tanto a lo largo como en un
    cierto ángulo también definido.

Nodo Morph:

Este nodo permite que una aplicación realice
morphings entre diferentes matrices de
geometría. Este nodo contiene un único nodo de
apariencia y una matriz de
matrices de geometría, con un peso para cada una. El nodo
Morph combina todas estas matrices en una sola en función
del peso asignado a cada una.

Nodo Link:

Este nodo permite que la aplicación referencie un
subgrupo compartido cuya raíz es un nodo SharedGroup,
dentro de una rama del grafo de escena. Varios nodos Link pueden
referirse a un mismo nodo SharedGroup.

2.3 Otros Objetos
Implicados.

Los objetos del grafo de escena analizados hasta ahora
son los que realmente se consideran parte de dicho grafo. Pero,
además de estos nodos, existen otros que permiten incluir
información adicional y esencial en la estructura de
árbol. El primer grupo de estos elementos son los que
permiten configurar la rama de visualización y que se unen
al objeto ViewPlatform. Estos objetos son Canvas3D, Screen3D,
View, PhysicalBody y PhysicalEnvoronment. De forma breve se
detallan a continuación:

View:

Este es el objeto principal de visualización ya
que es el que determina toda la información necesaria para
generar la escena 3D. Contiene diferentes elementos del estado de
visualización.

Canvas3D:

Es la versión 3D del objeto Canvas del
Abstract Windowing Toolkit (AWT). Representa una ventana
en la que Java3D dibujará las imágenes. Contiene
una referencia a un objeto Screen3D e información que
describe el tamaño forma y localización dentro del
objeto Screen3D del objeto Canvas3D.

Screen3D:

Es un objeto que contiene información relativa a
las propiedades físicas de la pantalla. Java3D separa la
información relativa a la pantalla en un objeto
independiente para evitar la duplicación de
información, en caso de que varios objetos Canvas3D
compartan una sola.

PhysicalBody:

Se trata de un objeto que contiene información de
calibración relativa al cuerpo físico del
usuario.

PhisicalEnvironment.

Este objeto contiene información de
calibración del mundo físico.

El segundo grupo de objetos adicionales son los
NodeComponent. Estos no forman parte de la estructura de
árbol, pero son esenciales para generar contenidos. De
hecho, son los responsables, entre otras cosas, de que una figura
tenga una cierta geometría bajo una cierta apariencia
(color, textura, etc.). Se asocian a través de relaciones
de referencia con objetos Leaf para los cuales define la
apariencia y la geometría.

2.4 Construcción De
Un Árbol.

Las subclases del objeto SceneGraph son los elementos
que se unen para formar los grafos de escena. El procedimiento
básico para desarrollar un programa en Java3D consiste en
siete pasos, estos se muestran en el Algoritmo 2.1:

1. Crear un objeto Canvas3D.

2. Crear un objeto VirtualUniverse.

3. Crear un objeto Locale y unirlo al objeto
VirtualUniverse.

4. Construir la rama de visualización del
grafo.

a. Crear un objeto View.

b. Crear un objeto ViewPlatform.

c. Crear un objeto PhysicalBody.

d. Crear un objeto PhysicalEnvironment.

e. Unir los objetos ViewPlatform,
PhysicalBody,

PhysicalEnvironment y Canvas3D al objeto
View.

5. Construir la(s) rama(s) de contenido del
grafo.

6. Compilar la(s) rama(s) del punto anterior.

7. Insertar los distintos subgrafos en el
Locale.

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter