Java 3D — це тривимірний програмний інтерфейс (API) для платформи Java, що працює поверх OpenGL або Direct3D. Починаючи з версії 1.2, він розробляється в рамках Java Community Process. Граф сцени Java 3D — це спрямований ациклічний граф.
У порівнянні з іншими рішеннями, Java 3D — це не просто обгортка навколо цих графічних API, а інтерфейс, який інкапсулює графічне програмування з використанням справжнього об'єктноорієнтованого підходу. Сцена будується за допомогою графа сцени, структурованого у вигляді дерева, що містить усі необхідні елементи для відображення об'єктів на сцені. Додатково, Java 3D пропонує широку підтримку просторового звуку.
Java 3D та документація до неї доступні для окремого завантаження. Вони не є частиною Java Development Kit (JDK).
Історія
У 1996 році Intel, Silicon Graphics, Apple і Sun підтримували інтерфейси API графічних сцен у стані розробки. Оскільки всі вони хотіли створити версію для Java, то вирішили співпрацювати над її розробкою. Цей проєкт отримав назву Java 3D. Розробка вже йшла повним ходом у 1997 році, а публічна бета-версія була випущена у березні 1998 року. Перша офіційна версія була випущена в грудні 1998 року. З середини 2003 року до літа 2004 року розробка Java 3D була припинена. Влітку 2004 року Java 3D була випущена як проєкт з відкритим вихідним кодом, керований спільнотою, і з того часу компанія Sun та волонтери продовжують її розробку.
29 січня 2008 року було оголошено, що вдосконалення Java 3D буде припинено на користь отримання тривимірної графічної сцени для JavaFX .
З 28 лютого 2008 року весь вихідний код Java 3D розповсюджується під ліцензією GNU General Public License (GPL) версії 2 за винятком Classpath.</ref>
З 10 лютого 2012 року Java 3D використовує JOGL 2.0 для апаратно-прискореного рендерингу OpenGL. Порт був ініційований Julien Gouesse.
Особливості
Багатопотокові структури графів сцен Крос-платформна сумісність Універсальні API-інтерфейси реального часу, придатні для візуалізації та ігор Підтримка режимів збереженого, скомпільованого та миттєвого рендерингу Включає апаратне прискорення візуалізації JOGL, OpenGL та Direct3D (залежно від платформи) Складна віртуальна реальність на основі графового представлення сцени з підтримкою стереоскопічного рендерингу та складних багатоекранних конфігурацій Вбудована підтримка гарнітур віртуальної реальності CAVE (багатоекранні проєкції) 3D аудіо ефекти Програмовані шейдери з підтримкою GLSL і CG Буфер трафаретів Імпорт популярних форматів, таких як 3DS, OBJ, VRML, X3D, NWN та FLT Конкурентні технології
Конкурентні технології
Java 3D — не єдиний високорівневий API для 3D-візуалізації на Java. Частково через паузи у розробці у 2003 та 2004 роках з'явилося декілька конкуруючих технологій графіки сцен у Java.
Загальна мета: Ardor3D
Gaming: JMonkey Engine Espresso3D
Візуалізація: Jreality.
Крім того, багато інших API графіки сцен C або C++ пропонують підтримку Java черезJNI.
На нижчому рівні, прив'язки JOGL (JSR 231) OpenGL для Java є популярною альтернативою API графів сцен, таких як Java 3D. LWJGL є ще одним таким зв'язуванням.
Див. також Project Looking Glass (Experimental 3D Desktop using Java 3D) Project Wonderland (Virtual workspace environment using Java 3D and Project Darkstar) J3DFly (Experimental Scene Graph editor for Java 3D)
Посилання
Official site and releases JSR 926 (Java 3D 1.5), JSR 912 (Java 3D 1.3) Forum and Wiki for Java 3D. — Places for collaboration; includes lists of books and users, faq and knowledge base java3d.org . Tutorial, examples and information OpenGL.J3D Java 3D Tutorials Lecture . — From Siggraph for beginners Game Programming , in Java 3D (chapters as pdf-files and sourcecode) Plugin for Eclipse hosted by SourceForge Example visualisation applets using Java 3D EMAP, The e-Mouse Atlas Project . — A 3D anatomical structure explorer with embedded 2D section made by Guangjie Feng.