Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Introducción a Java3D




Enviado por goodlafa



Partes: 1, 2, 3

    1. Preliminares
    2. Conceptos
      Generales
    3. El Primer
      Ejemplo: HelloJava3D.java
    4. Animación:
      Behavior
    5. Bibliografía

    1.
    Preliminares.

    En los últimos años, la cantidad y
    calidad de
    aplicaciones de software libre ha aumentado de forma
    exponencial. Actualmente, su penetración en el mundo de
    la empresa es
    lento, pero constante. Su futuro es prometedor. No obstante, el
    desarrollo es
    muy desigual. Algunos sectores disponen de programas
    excelentes. Sin embargo, otros han de conformarse con
    aplicaciones en grado de desarrollo inicial.

    Teniendo en cuenta la evolución del sistema libre,
    todo nos indica que es simple cuestión de tiempo el que
    estas áreas sean ocupadas. En el modelado y la
    animación 3D por computadora
    se dispone de
    aplicaciones con las que es posible trabajar de forma
    profesional, aunque todavía no con la facilidad y productividad de
    las herramientas
    propietarias, pero se espera un gran desarrollo de aplicaciones
    libres en los próximos años.

    Este manual pretende
    ser una introducción al lenguaje
    Java3D. En este capítulo introductorio vamos a
    conocer qué es y que nos ofrece Java3D, a saber
    cómo podemos obtenerlo e instalarlo, algunas
    recomendaciones para iniciar con un buen modelado, cuáles
    son sus ventajas y desventajas, y finalmente, haremos una breve
    descripción de lo que veremos a
    través de todo el manual.

    Es recomendable que el lector tenga conocimientos
    básicos sobre geometría en 2D y 3D y Java,
    debido a que en muchas ocasiones haremos mención de
    conceptos como plano cartesiano, espacio tridimensional, etc.,
    además del conocimiento
    elemental de navegación por directorios y manejo de
    archivos
    conforme a la plataforma que el usuario haya elegido, ya que
    Java, como es
    sabido, puede ser usado en Linux, Unix, Mac,
    ©Windows, etc.,
    tal como veremos en este capítulo.

    No nos detenemos a explicar cuál es cada uno de
    los conceptos mencionados. Sin embargo, se ha incluido una
    bibliografía
    relativamente extensa para aquellos que aún no
    están del todo inmersos en el mundo del modelado, la
    animación por computadora y
    Java.

    1.1. ¿Qué Es
    Java3D?

    La API (Application Program Interface)
    Java3D es una interfaz de programación utilizada para realizar
    aplicaciones y applets con gráficos en tres dimensiones. Proporciona a
    los desarrolladores un alto nivel para crear y manipular objetos
    geométrios 3D y para construir las estructuras
    utilizadas en el renderizado de dichos objetos. Se pueden
    describir grandes mundos virtuales utilizando estos
    constructores, que proporcionan a Java3D la suficiente información para hacer un renderizado de
    forma eficiente.

    Java3D proporciona a los desarrolladores de
    gráficos 3D la principal característica de Java:
    escribe una vez y ejecútalo donde sea. Java3D 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 Java3D 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,
    Java3D es capaz de renderizar en paralelo.

    Un programa Java3D
    crea ejemplares de objetos 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.

    Java3D introduce algunos conceptos que no se consideran
    habitualmente como parte de los entornos gráficos, como el
    sonido
    espacial 3D. Las posibilidades de sonido permiten proporcionar
    una experiencia más realista al usuario.

    objetivos,
    siendo el principal el rendimiento. Se tomaron diferentes
    decisiones relativas al modelado de tal forma que las
    implementaciones de Java3D 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 Java3D son:

    • Proporcionar un amplio conjunto de utilidades que
      permitan crear mundos en 3D interesantes. Se evitó
      incluir características no esenciales o que se
      podrían colocar directamente sobre Java3D.
    • 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 Java3D 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.

    Las aplicaciones en Java3D 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.

    1.2.1. Modelo De
    Programación Del Grafo De Escena.

    El modelo de programación basado en el grafo de
    escena de Java3D 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 ventaja que ofrece la API de Java3D respecto a APIs
    anteriores es que permite diseñar la escena
    basándose en objetos geométricos, y no en triángulos; otra mejora es que Java3D nos
    permite programar centrándonos en la escena y su
    composición y no en obtener un código
    para renderizar con eficiencia dicha
    escena.

    1.2.2 Aplicaciones y
    Applets.

    Java3D proporciona la base necesaria para añadir
    nuevas funcionalidades utilizando código Java. Las
    aplicaciones de Java3D pueden incluir objetos definidos
    utilizando un sistema de CAD o de animación. Algunos
    paquetes de modelados tienen distintos formatos externos que son,
    en muchos casos, propietarios. Mediante el uso de modeladores
    externos se pueden exportar geometrías a fichero, esta
    información podrá ser utilizada por Java3D, siempre
    que la aplicación proporcione un método
    para leer y traducir dicha información geométrica
    en primitivas Java3D.

    De forma similar, cargadores VRML analizarán y
    traducirán ficheros VRML y generarán los objetos
    Java3D 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 (plug-ins) que la renderizan dentro de su
    propia ventana. En un futuro no serán necesarios estos
    visores 3D, ya que serán los navegadores los que se
    encarguen directamente de la gestión
    de los objetos 3D.

    Juegos:

    Los desarrolladores de software para juegos 3D
    siempre han intentado aprovechar, en la medida de lo posible, las
    posibilidades del hardware disponible.
    Históricamente, han utilizado optimizaciones
    específicas del hardware y, por su puesto, 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 Java3D. 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 Java3D 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 de este tipo.
    Puede criticarse, de cualquier forma, que las aplicaciones
    escritas con una API general, como puede ser Java3D, 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.

    Partes: 1, 2, 3

    Pá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