Java 3D est une interface de programmation (Application Programming Interface ou API) pour la plateforme Java visant la synthèse d'image 3D basée sur les graphes de scène. Cette API faisait appel soit aux fonctions de OpenGL ou Direct3D jusqu'à la version 1.6.0 qui fait appel aux fonctions de JOGL. Depuis sa version 1.2, Java 3D est développé sous l'organisation du Java Community Process. Un graphe de scène Java 3D est un graphe orienté acyclique.

Java 3D

Description de l'image Java3DStarSystemScreenShot.png.
Informations
Développé par Sun MicrosystemsVoir et modifier les données sur Wikidata
Type Infographie tridimensionnelleVoir et modifier les données sur Wikidata
Site web http://java3d.java.net/ (indisponible)

Java 3D et sa documentation sont disponibles en téléchargement, séparément. Ils ne font pas partie du kit de développement Java (JDK).

Historique

modifier

Intel, Silicon Graphics, Apple, et Sun avaient tous des interfaces de programmation basées sur les graphes de scène en cours de développement en 1996. Comme ils voulaient tous en faire une version Java, ils décidèrent de la faire ensemble. Ce projet devint Java 3D. Le développement était déjà en cours en 1997. Une version bêta publique fut publiée en mars 1998. La première version fut publiée en décembre 1998. De la mi-2003 à l'été 2004, le développement de Java 3D fut abandonné. À l'été 2004, Java 3D fut publié en tant que projet communautaire, et Sun et les bénévoles ont depuis poursuivi son développement.

Depuis sa version 1.4 (2007), sa spécification est JSR 926[1] et la version courante est 1.5.1 (juin 2007).

Le 29 janvier 2008, il a été annoncé que des améliorations à Java 3D seraient mises en attente pour produire un graphe de scène 3D pour JavaFX[2].

Depuis le 28 février 2008, l'intégralité du code source Java 3D est publié sous la licence GPL version 2 avec GPL linking exception[3].

Depuis le 10 février 2012, Java 3D utilise JOGL 2.0 pour son rendu accéléré matériellement, le portage a été initié par Julien Gouesse[4].

Caractéristiques

modifier

Comparé aux autres solutions pour la synthèse d'image 3D, Java 3D n'est pas seulement un wrapper autour de ces API graphiques, mais une interface qui encapsule la programmation graphique en utilisant une véritable approche orientée objet.

 
Image du système solaire créée via Java 3D

Une image est composée avec un graphe de scène, qui est une représentation vectorielle des images 3D à être affichées. Ce graphe de scène est structuré en arbre, qui contient les informations nécessaires à l'affichage. On peut s'imaginer un graphe de scène comme un arbre inversé ayant comme racine un nœud (node) nommé Locale qui est relié par une seule série de liens à tout autre nœud de l'arborescence [5].

Il est possible de créer des graphes de scènes illégaux. Cela a lieu lorsque le graphe ne respecte pas les conditions d'un graphe acyclique orienté[6]. Ces graphes peuvent être compilés, mais provoquent une exception lors d'un rendu.

Fonctionnalités

modifier
  • Structure de graphe de scène multithread
  • Multiplate-forme
  • API générique temps réel, utilisable à la fois pour la visualisation et les jeux
  • Support des différents modes de rendu (immédiat, différé…)
  • Inclut le rendu accéléré matériellement via JOGL, OpenGL et Direct3D (en fonction de la plateforme, uniquement JOGL 2.0 pour Java 3D 1.6)
  • Modèle de vue sophistiqué basée sur la réalité virtuelle et prenant en charge le rendu stéréoscopique et les configurations complexes d'affichages multiples
  • Support natif du visiocasque
  • CAVE (projecteurs sur plusieurs écrans)
  • Son spatial 3D
  • Shaders programmables, supportant à la fois GLSL et Cg
  • Stencil buffer
  • Importeurs pour la plupart des formats courants, comme 3DS, OBJ, VRML, X3D, NWN, and FLT

Composants

modifier

Les packages inclus dans Java 3D sont javax.media.j3d et javax.vecmath [7]. Les sous-projets du projet Java 3D sont j3d-contrib-utils, j3d-core, j3d-core-utils, j3d-examples, j3d-incubator, j3d-optional-utils, j3d-vrml97, j3d-webstart, j3dfly, skinandbones, vecmath et vecmath-test [8].

Produits compétiteurs

modifier

Pour le langage Java uniquement :

Usage général :

Jeux :

Visualisation :

Notes et références

modifier
  1. (en) « JSRs: Java Specification Requests - JSR 926: Java 3D » (consulté le 18 juin 2008)
  2. (en) « ANNOUNCEMENT: Java 3D plans », Sun Microsystems, 29 janvier 2008
  3. (en) « ANNOUNCE: GPL open source release », Sun Microsystems, 28 février 2008 (consulté le 29 février 2008)
  4. (en) « Java3D now works with JOGL 2.0 », Julien Gouesse, 2 octobre 2012 (consulté le 2 octobre 2012)
  5. « Le tutorial de l'API Java 3D, page 1-3 » (consulté le 18 juin 2008)
  6. « Le tutorial de l'API Java 3D, page 1-5 » (consulté le 18 juin 2008)
  7. (en) « Packages » (consulté le 18 juin 2008)
  8. « Sous-projets sur le site officiel »(Archive.orgWikiwixGoogleQue faire ?) (consulté le 11 avril 2013)
  9. S T R A T A - The Power of 3D
  10. jReality | Home

Voir aussi

modifier

Liens externes

modifier

📚 Artikel Terkait di Wikipedia

Java (langage)

pour Java : Java Media Framework (en) : framework multimédia, contenant notamment les API Java2D, Java 3D, JavaSound, Java advanced Imaging ; Java Telephony

Sweet Home 3D

en 3D (logiciel de modélisation 3D). Développé en Java, ce logiciel est disponible soit en version online, soit sous la forme d'une application Java Web

JavaFX

JavaFX est un framework et une bibliothèque d'interface utilisateur issue du projet OpenJFX, qui permet aux développeurs Java de créer une interface graphique

LibreOffice

développements de la suite bureautique, le recours à Java tend à disparaître par la réécriture du code correspondant. Java reste principalement utilisé dans le module

WebGL

en s'aidant du langage JavaScript, des données au format JSON et de l'accélération matérielle pour les calculs et le rendu 3D à l'aide des pilotes OpenGL

Java Specification Requests

effectuer la traduction. Java Specification Requests (JSR) est un système normalisé ayant pour but de faire évoluer la plateforme Java. Certaines JSR sont

Java OpenGL

Dessiner des graphismes Java2D au-dessus d'un rendu 3D en OpenGL. Java Bindings for OpenGL, The Java Community Specification Request for which JOGL provides

Géoportail

l'apparition d'un mode 3D en août 2007 ainsi qu'une refonte totale en 2012 pour la version 3 avec l'utilisation d'un nouveau module 3D. Ce mode 3D nécessite l'installation