SlideShare una empresa de Scribd logo
1 de 4
Descargar para leer sin conexión
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE TAPACHULA
Nombre Del Alumno:
Martínez Ramos Sheyla Berenice
Nombre De La Carrera:
Ingeniería En Sistemas Computacionales
Nombre Del Profesor:
Nicolás Cabrera Hidalgo
Nombre De La Materia:
Graficacion
Tarea:
Transformaciones Tridimensionales
INTRODUCCIÓN
¿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.
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.
• 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
Paradigma de programación
Java 3D es una API orientada a objetos. Las aplicaciones construyen los distintos elementos
gráficos como objetos separados y los conectan unos con otros mediante una estructura en forma
de árbol denominada grafo de escena. La aplicación manipula los diferentes objetos utilizando los
métodos de acceso, de modificación y de unión definidos en su interfaz.
Modelo de programación del grafo de escena
El modelo de programación basado en el grafo de escena de Java 3D proporciona un mecanismo
sencillo y flexible para representar y renderizar escenas. El grafo de escena contiene una
descripción completa de la escena o universo virtual. Esta descripción incluye datos sobre la
geometría, información de los distintos atributos, así como información de visualización necesaria
para renderizar la escena desde un punto de vista en particular.
La API Java 3D mejora algunas APIs previas eliminando algunas de las serias dependencias
impuestas por éstas. Java 3D permite al programador diseñar su escena en base a objetos
geométricos y no considerando triángulos. Le permite centrarse en la escena y en su composición
y no en cómo escribir el código para renderizar eficientemente la escena en cuestión.
Aplicaciones y applets
Java 3D ni anticipa ni soporta directamente cualquier necesidad posible de 3D. En cambio,
proporciona la base necesaria para añadir nuevas funcionalidades utilizando código Java.
Objetos definidos utilizando un sistema de CAD o de animación se pueden incluir en una aplicación
basada en Java 3D. Algunos paquetes de modelados tienen distintos formatos externos que son,
en muchos casos, propietarios. Los diseñadores pueden exportar geometrías a fichero utilizando
modeladores externos. Java 3D puede utilizar toda esa información geométrica, pero sólo si la
aplicación proporciona un método para leer y traducir la información del modelador en primitivas
Java 3D.
De forma similar, cargadores VRML analizarán y traducirán ficheros VRML y generarán los objetos
Java 3D apropiados y el código Java necesario para poder utilizar el contenido de los ficheros.
Navegadores. Los navegadores actuales pueden aceptar contenido 3D pasando
información a visores 3D (plugins) que la renderizan dentro de su propia ventana. Con el
tiempo, serán los propios navegadores los que se encarguen, directamente, de la gestión
de los elementos 3D.
Juegos. Los desarrolladores de software para juegos 3D siempre han intentado
aprovechar, en la medida de lo posible, hasta el límite las posibilidades del hardware
disponible. Históricamente han utilizado optimizaciones específicas del hardware y, por
supuesto, no portables. De esta forma trataban de lograr el mejor rendimiento posible.
Por esta razón, la programación típica de juegos se realizaba a un nivel de abstracción
menor que el sencillo nivel de Java 3D. Sin embargo, la tendencia actual en la creación de
juegos 3D es usar aceleradores hardware 3D de propósito general y utilizar menos
“trucos” para la renderización.
Así pues, aunque Java 3D no fue explícitamente diseñado para satisfacer las expectativas de los
desarrolladores de juegos, sus sofisticadas técnicas de implementación proporcionan un
rendimiento más que suficiente para realizar distintas aplicaciones para juegos. Puede criticarse,
de cualquier forma, que las aplicaciones escritas con una API general, como puede ser Java 3D,
pueden tener una ligera penalización en cuanto a rendimiento en comparación con otras que
utilicen técnicas no portables. Sin embargo, otros factores como la propia portabilidad, el tiempo
de desarrollo y el coste pueden también tenerse en cuenta para contrarrestar ese pequeño déficit
de rendimiento.
¿Qué Software se Necesita?
Te aconsejo que te des una vuelta por la Home Page de Java 3D en Sun:
http://java.sun.com/products/java-media/3d

Más contenido relacionado

Similar a Api 3 d

Similar a Api 3 d (20)

Direct3 d
Direct3 dDirect3 d
Direct3 d
 
Introduccion a graficos mediante JAVA 2D
Introduccion a graficos mediante JAVA 2DIntroduccion a graficos mediante JAVA 2D
Introduccion a graficos mediante JAVA 2D
 
Andrid studio
Andrid studioAndrid studio
Andrid studio
 
Articulo tipos de ide y ajax control toolkit
Articulo   tipos de ide y ajax control toolkitArticulo   tipos de ide y ajax control toolkit
Articulo tipos de ide y ajax control toolkit
 
Introducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - JavaIntroducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - Java
 
Diseño asistido por computadora
Diseño asistido por computadoraDiseño asistido por computadora
Diseño asistido por computadora
 
Programas de simulacion
Programas de simulacionProgramas de simulacion
Programas de simulacion
 
Gps
GpsGps
Gps
 
Gps
GpsGps
Gps
 
Tecnologia web
Tecnologia webTecnologia web
Tecnologia web
 
NSCoder - Metal
NSCoder - MetalNSCoder - Metal
NSCoder - Metal
 
Presentacion Máster
Presentacion MásterPresentacion Máster
Presentacion Máster
 
Modo retenido modo inmediato
Modo retenido  modo inmediatoModo retenido  modo inmediato
Modo retenido modo inmediato
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .net
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .net
 
App ing. civil
App ing. civilApp ing. civil
App ing. civil
 
Modo retenido modo inmediato
Modo retenido  modo inmediatoModo retenido  modo inmediato
Modo retenido modo inmediato
 
Dragome en JavaConf Buenos Aires 2014
Dragome en JavaConf Buenos Aires 2014 Dragome en JavaConf Buenos Aires 2014
Dragome en JavaConf Buenos Aires 2014
 
Integración de APIs políglotas de mapas en Google Web Toolkit: IDELabMapstrac...
Integración de APIs políglotas de mapas en Google Web Toolkit: IDELabMapstrac...Integración de APIs políglotas de mapas en Google Web Toolkit: IDELabMapstrac...
Integración de APIs políglotas de mapas en Google Web Toolkit: IDELabMapstrac...
 
Visual paradign
Visual paradignVisual paradign
Visual paradign
 

Más de Ashley Stronghold Witwicky

Carpeta de investidura para guias mayores (venezuela)
Carpeta de investidura para guias mayores (venezuela)Carpeta de investidura para guias mayores (venezuela)
Carpeta de investidura para guias mayores (venezuela)Ashley Stronghold Witwicky
 
Consecuencias personales y sociales del uso de drogas
Consecuencias personales y sociales del uso de drogasConsecuencias personales y sociales del uso de drogas
Consecuencias personales y sociales del uso de drogasAshley Stronghold Witwicky
 
Derivadas e integrales apunte para principiantes
Derivadas e integrales apunte para principiantesDerivadas e integrales apunte para principiantes
Derivadas e integrales apunte para principiantesAshley Stronghold Witwicky
 
Unidad v paradigma funcional de programacion fiuncional
Unidad v   paradigma funcional de programacion fiuncionalUnidad v   paradigma funcional de programacion fiuncional
Unidad v paradigma funcional de programacion fiuncionalAshley Stronghold Witwicky
 

Más de Ashley Stronghold Witwicky (20)

Clase 0.3 normalizacion. sql server aplicado
Clase 0.3   normalizacion. sql server aplicadoClase 0.3   normalizacion. sql server aplicado
Clase 0.3 normalizacion. sql server aplicado
 
Carpeta de investidura para guias mayores (venezuela)
Carpeta de investidura para guias mayores (venezuela)Carpeta de investidura para guias mayores (venezuela)
Carpeta de investidura para guias mayores (venezuela)
 
Sanson mata un leon con sus manos
Sanson mata un leon con sus manosSanson mata un leon con sus manos
Sanson mata un leon con sus manos
 
Consecuencias personales y sociales del uso de drogas
Consecuencias personales y sociales del uso de drogasConsecuencias personales y sociales del uso de drogas
Consecuencias personales y sociales del uso de drogas
 
Constancia de servicio
Constancia de servicioConstancia de servicio
Constancia de servicio
 
Requisitos para Guia Mayor
Requisitos para Guia MayorRequisitos para Guia Mayor
Requisitos para Guia Mayor
 
Instructivo de llenado carta poder
Instructivo de llenado carta poderInstructivo de llenado carta poder
Instructivo de llenado carta poder
 
Constancia experiencia profesional
Constancia experiencia profesionalConstancia experiencia profesional
Constancia experiencia profesional
 
Ideales ja
Ideales jaIdeales ja
Ideales ja
 
Mysql
MysqlMysql
Mysql
 
Especialidad de insectos desarrollada
Especialidad de insectos desarrolladaEspecialidad de insectos desarrollada
Especialidad de insectos desarrollada
 
Manual basico autocad_2012
Manual basico autocad_2012Manual basico autocad_2012
Manual basico autocad_2012
 
Derivadas e integrales apunte para principiantes
Derivadas e integrales apunte para principiantesDerivadas e integrales apunte para principiantes
Derivadas e integrales apunte para principiantes
 
Ecuaciones primer grado con una incognita
Ecuaciones primer grado con una incognitaEcuaciones primer grado con una incognita
Ecuaciones primer grado con una incognita
 
Conversion de unidades
Conversion de unidadesConversion de unidades
Conversion de unidades
 
Curso de my sql
Curso de my sqlCurso de my sql
Curso de my sql
 
Manual de microsoft publisher 2007
Manual de microsoft publisher 2007Manual de microsoft publisher 2007
Manual de microsoft publisher 2007
 
Unidad v paradigma funcional de programacion fiuncional
Unidad v   paradigma funcional de programacion fiuncionalUnidad v   paradigma funcional de programacion fiuncional
Unidad v paradigma funcional de programacion fiuncional
 
Biblia de publisher 2007
Biblia de publisher 2007Biblia de publisher 2007
Biblia de publisher 2007
 
Ejercicios en microsoft publisher 2007
Ejercicios en microsoft publisher 2007Ejercicios en microsoft publisher 2007
Ejercicios en microsoft publisher 2007
 

Último

TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025Festibity
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 

Último (14)

TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 

Api 3 d

  • 1. SUBSECRETARIA DE EDUCACION SUPERIOR DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA INSTITUTO TECNOLOGICO DE TAPACHULA Nombre Del Alumno: Martínez Ramos Sheyla Berenice Nombre De La Carrera: Ingeniería En Sistemas Computacionales Nombre Del Profesor: Nicolás Cabrera Hidalgo Nombre De La Materia: Graficacion Tarea: Transformaciones Tridimensionales
  • 2. INTRODUCCIÓN ¿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. 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.
  • 3. 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. • 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 Paradigma de programación Java 3D es una API orientada a objetos. Las aplicaciones construyen los distintos elementos gráficos como objetos separados y los conectan unos con otros mediante una estructura en forma de árbol denominada grafo de escena. La aplicación manipula los diferentes objetos utilizando los métodos de acceso, de modificación y de unión definidos en su interfaz. Modelo de programación del grafo de escena El modelo de programación basado en el grafo de escena de Java 3D proporciona un mecanismo sencillo y flexible para representar y renderizar escenas. El grafo de escena contiene una descripción completa de la escena o universo virtual. Esta descripción incluye datos sobre la geometría, información de los distintos atributos, así como información de visualización necesaria para renderizar la escena desde un punto de vista en particular. La API Java 3D mejora algunas APIs previas eliminando algunas de las serias dependencias impuestas por éstas. Java 3D permite al programador diseñar su escena en base a objetos geométricos y no considerando triángulos. Le permite centrarse en la escena y en su composición y no en cómo escribir el código para renderizar eficientemente la escena en cuestión. Aplicaciones y applets Java 3D ni anticipa ni soporta directamente cualquier necesidad posible de 3D. En cambio, proporciona la base necesaria para añadir nuevas funcionalidades utilizando código Java. Objetos definidos utilizando un sistema de CAD o de animación se pueden incluir en una aplicación basada en Java 3D. Algunos paquetes de modelados tienen distintos formatos externos que son, en muchos casos, propietarios. Los diseñadores pueden exportar geometrías a fichero utilizando modeladores externos. Java 3D puede utilizar toda esa información geométrica, pero sólo si la aplicación proporciona un método para leer y traducir la información del modelador en primitivas Java 3D.
  • 4. De forma similar, cargadores VRML analizarán y traducirán ficheros VRML y generarán los objetos Java 3D apropiados y el código Java necesario para poder utilizar el contenido de los ficheros. Navegadores. Los navegadores actuales pueden aceptar contenido 3D pasando información a visores 3D (plugins) que la renderizan dentro de su propia ventana. Con el tiempo, serán los propios navegadores los que se encarguen, directamente, de la gestión de los elementos 3D. Juegos. Los desarrolladores de software para juegos 3D siempre han intentado aprovechar, en la medida de lo posible, hasta el límite las posibilidades del hardware disponible. Históricamente han utilizado optimizaciones específicas del hardware y, por supuesto, no portables. De esta forma trataban de lograr el mejor rendimiento posible. Por esta razón, la programación típica de juegos se realizaba a un nivel de abstracción menor que el sencillo nivel de Java 3D. Sin embargo, la tendencia actual en la creación de juegos 3D es usar aceleradores hardware 3D de propósito general y utilizar menos “trucos” para la renderización. Así pues, aunque Java 3D no fue explícitamente diseñado para satisfacer las expectativas de los desarrolladores de juegos, sus sofisticadas técnicas de implementación proporcionan un rendimiento más que suficiente para realizar distintas aplicaciones para juegos. Puede criticarse, de cualquier forma, que las aplicaciones escritas con una API general, como puede ser Java 3D, pueden tener una ligera penalización en cuanto a rendimiento en comparación con otras que utilicen técnicas no portables. Sin embargo, otros factores como la propia portabilidad, el tiempo de desarrollo y el coste pueden también tenerse en cuenta para contrarrestar ese pequeño déficit de rendimiento. ¿Qué Software se Necesita? Te aconsejo que te des una vuelta por la Home Page de Java 3D en Sun: http://java.sun.com/products/java-media/3d