Introducción a Java3D
AlbrtCInforme27 de Abril de 2014
2.530 Palabras (11 Páginas)314 Visitas
Introducción a Java3D
Daniel Prieto Vicente
Héctor Rodríguez Cornejo
Departamento de Informática y Automática
Universidad de Salamanca
Introducción a Java3D
______________________________________________________________________
JAVA 3D 2
______________________________________________________________________
Información de los autores:
Daniel Prieto Vicente
abosanh@hotmail.com
Héctor Rodríguez Cornejo
hrcornejo@wanadoo.es
Este documento Puede ser libremente distribuido.
© 2003 Departamento de Informática y Automática - Universidad de Salamanca
Prieto y Rodríguez
______________________________________________________________________
3 JAVA 3D
_____________________________________________________________________
Resumen
Este trabajo pretende ser una introducción al lenguaje Java3D. Tanto en el enfoque de diseño
sobre este lenguaje, como en la creación practica de trabajos con él.
Abstract
This work try to introduce de Java3D lenguaje. The desing and the practical creation of proyects
are presented by this work.
Introducción a Java3D
______________________________________________________________________
JAVA 3D 4
______________________________________________________________________
Tabla de Contenidos
1. Introducción________________________________________________________ 7
1.1 ¿Que es la API Java3D?_____________________________________________ 7
1.2 Características ____________________________________________________ 7
1.3 Estructura de los objetos en Java3D ___________________________________ 8
1.4 Paradigma de Programación _________________________________________ 8
1.4.1 Modelo de programación del grafo de escena __________________________ 9
1.4.2 Aplicaciones y applets ____________________________________________ 9
2. Conceptos Generales _______________________________________________ 10
2.1 Universo Virtual __________________________________________________ 10
2.2 Objetos del grafo escena ____________________________________________ 11
2.2.1 Objetos de la superestuctura del grafo escena __________________________ 11
2.2.2 Objetos de la agrupación de nodos __________________________________ 12
2.2.3 Objetos nodos hoja _______________________________________________ 13
2.3 Otros objetos implicados ____________________________________________ 14
2.4 Construcción de un árbol ____________________________________________ 15
2.5 Sistemas de coordenadas ____________________________________________ 15
2.5.1 Coordenadas de alta resolución _____________________________________ 16
2.6 Modos de renderización_____________________________________________ 18
2.7 Paquetes de Java3D ________________________________________________ 19
3. Ejemplos de Código _________________________________________________ 20
3.1 HelloJava3Da _____________________________________________________ 20
3.2 Clases Java3D usadas en hellojava3Da _________________________________ 23
3.3 Código fuente _____________________________________________________ 26
4. Conclusiones_______________________________________________________27
5. Bibliografía ________________________________________________________ 28
Prieto y Rodríguez
______________________________________________________________________
5 JAVA 3D
_____________________________________________________________________
Tabla de figuras
Figura 1.1. Grafo de diseño del universo virtual_____________________________ 8
Figura 2.1. Sistema de coordenadas en Java 3D ____________________________ 16
Figura 3.1 __________________________________________________________ 22
Figura 3.2 __________________________________________________________ 22
Introducción a Java3D
______________________________________________________________________
JAVA 3D 6
______________________________________________________________________
Tabla de tablas
Tabla 2.1. Notación utilizada en los grafos de escena. _______________________ 11
Tabla 2.2Escalas de las coordenadas de alta resolución ______________________17
Prieto y Rodríguez
______________________________________________________________________
7 JAVA 3D
_____________________________________________________________________
1.INTRODUCCIÓN
1.1 ¿Qué es la API Java3D?
La API (Application Program Interface) Java 3D es una interfaz de programación de aplicación
utilizada para realizar aplicaciones y applets con gráficos en tres dimensiones. Proporciona a los
desarrolladores constructores de alto nivel para crear y manipular geometrías 3D y para
construir las estructuras utilizadas en el renderizado de dichas geometrías. Se pueden describir
grandes mundos virtuales utilizando estos constructores, que proporcionan a Java 3D la
suficiente información como para renderizar dichos mundos de forma eficiente. Java 3D
proporciona a los desarrolladores de gráficos 3D la principal característica de Java: “escribe una
vez y ejecútalo donde sea”. Java 3D es parte del conjunto de APIs JavaMedia, lo cual hace que
esté disponible en un gran número de plataformas. También, se integra correctamente con
Internet ya que tanto los applets como las aplicaciones escritas utilizando Java 3D tienen acceso
al conjunto completo de clases de Java.
Los objetos geométricos creados por los constructores residen en un universo virtual, que
luego es renderizado. El API está diseñado con flexibilidad para crear universos virtuales
precisos de una amplia variedad de tamaños, desde astronómicos a subatómicos.
A pesar de toda esta funcionalidad, la API es sencilla de usar. Los detalles de renderizado se
manejan automáticamente. Aprovechándose de los Threads Java, el renderizador Java 3D es
capaz de renderizar en paralelo. El renderizador también puede optimizarse automáticamente
para mejorar el rendimiento del renderizado.
Un programa Java 3D crea ejemplares de objetos Java 3D y los sitúa en un estructura de
datos de escenario gráfico. Este escenario gráfico es una composición de objetos 3D en una
estructura de árbol que especifica completamente el contenido de un universo virtual, y cómo va
a ser renderizado.
Las construcciones gráficas de bajo nivel de Java 3D sintetizan las mejores ideas
encontradas en otras APIs de bajo nivel como Direct3D, OpenGL, QuickDraw3D y XGL. Del
mismo modo, sus construcciones de alto nivel integran las mejores características
proporcionadas por varios sistemas de escenas basados en grafos. Además, Java 3D introduce
algunos conceptos que no se consideran habitualmente como parte de los entornos gráficos,
como el sonido espacial 3D. Las posibilidades de sonido de Java 3D permiten proporcionar una
experiencia más realista al usuario.
1.2 Características
El diseño de de Java 3D se basa en múltiples objetivos, siendo el principal el rendimiento. Se
tomaron diferentes decisiones relativas al diseño de tal forma que las implementaciones de Java
3D proporcionaran el mejor rendimiento posible a las aplicaciones de usuario. En particular,
cuando se realizan distribuciones, se elige la alternativa que permite obtener mejores
prestaciones en tiempo de ejecución.
Otros objetivos importantes de Java 3D son:
• Proporcionar un amplio conjunto de utilidades que permitan crear mundos en 3D
interesantes. Se evitó incluir características no esenciales u oscuras y tampoco
características que se podrían colocar directamente sobre Java 3D.
Introducción a Java3D
______________________________________________________________________
JAVA 3D 8
______________________________________________________________________
• Proporcionar un paradigma de programación orientado a objeto de alto nivel para
permitir a los desarrolladores generar sofisticadas aplicaciones y applets de forma
rápida.
• Proporcionar soporte a cargadores en tiempo de ejecución. Esto permite que Java 3D se
adapte a un gran número de formatos de ficheros, como pueden ser formatos específicos
de distintos fabricantes de CAD, formatos de intercambio o VRML 1.0 (Virtual Reality
Modelling Language) y VRML 2.0
1.3 Estructura de los objetos en Java 3D
Java 3D distribuye la información necesaria para representar objetos y escenas en tres
dimensiones en una estructura de grafo. Siguiendo dicha estructura desde el nodo raíz hasta los
distintos nodos hoja, se ven las distintas operaciones que se realizan para crear la escena final
que se quiere conseguir. Este grafo incluye tanto los distintos elementos que forman parte de la
escena como las transformaciones que les aplica. Del mismo modo, se insertan en el mismo
grafo (aunque en otra rama distinta) los diferentes elementos relacionados con el punto de vista
del usuario.
La Figura 1. 1 representa cómo se representa la información del universo virtual a
modelar con Java 3D.
Figura 1. 1. Grafo
...