Java 3D
# Java 3D

Java 3D é uma API 2D e 3D para a linguagem Java baseada em grafos de cena. Ela foi construída tendo como base o OpenGL, com a diferença de que a estrutura de grafo de cena traz às aplicações o paradigma da POO. Diferentemente da JOGL que apenas expõe os métodos do OpenGL por meio de chamadas a funções nativas (JNI), o Java 3D tem a preocupação de possibilitar a utilização de conceitos da POO, como o Polimorfismo, para a criação da aplicações em ambientes tridimensionais.
O grafo de cena é estruturado como uma árvore contendo vários elementos que ditam o modo como a cena será construída e exibida, além de comportamentos que poderão ser observados ao longo do tempo (como animações, respostas a interação do usuário, colisões, etc).
Além de métodos que permitem a visualização de um ambiente 3D, o Java 3D também oferece suporte a uma lista extensa de periféricos que tornam mais imersiva a interação com o mundo virtual, tal como Headsets, CAVE, som 3D espacial, suporte a telas múltiplas e visão estereoscópica. O Java 3D tem sido amplamente utilizado para ambientes de realidade virtual e tem ganhado espaço também no desenvolvimento de jogos. Uma prova disso é o surgimento de engines que tem como base o Java 3D.
O Java 3D ainda possui um sistema de Loaders, classes que tem como função importar modelos de diversos formatos, processando-os de maneira a permitir que possam ser manipulados. Os Loaders não se restringem a importar apenas modelos, podendo ser usados para importar até mesmo grafos de cena completos. Alguns formatos suportados são OBJ, 3DS, VRML e X3D. A API também oferece uma classe abstrata que permite ao desenvolvedor criar seu próprio Loader, possibilitando ao desenvolvedor utilizar novos formatos aos quais ainda não exista suporte.