X3D
X3D (ang. eXtensible 3D) – wolny od tantiem standard ISO/IEC służący do deklaratywnej reprezentacji komputerowej grafiki 3D. Wsparcie skryptowych formatów plików obejmuje XML, ClassicVRML, Compressed Binary Encoding (CBE) i podstawowe kodowanie JSON. X3D został następcą Virtual Reality Modeling Language (VRML) w roku 2001[1]. X3D wprowadza rozszerzenia do VRML (np. CAD, Geospatial, GeoVRML, Humanoid animation, NURBS itp.), zdolność do kodowania sceny zarówno w składni XML, jak i w składni analogicznej do składni programu Open Inventor używanej w VRML97, lub też w formatowaniu binarnym, a także rozszerzone interfejsy programowania aplikacji (API).
Rozszerzenie X3D wspiera wielostopniowy i wieloteksturowy rendering, ono także obsługuje cieniowanie w oparciu o mapy świetlne i mapy normalnych. Począwszy od 2010 X3D zaczął wspierać odroczone architektury renderingu. Obecnie X3D może importować SSAO, CSM i Realtime Environment Reflection/Lighting, ale nie musi troszczyć się bardzo o liczbę wielokątów. Użytkownik może również używać optymalizacji w tym BSP/QuadTree/OctTree lub redukcji trójkątów w scenie X3D.
X3D może współdziałać z innymi standardami Open Source, w tym XML, DOM i XPath. Użytkownik może łatwo rozwijać narzędzia treści takie jak eksporter i edytor, te narzędzia 3D czynią tworzenia treści i optymalizację łatwymi zadaniami.
Standaryzacja[edytuj | edytuj kod]
X3D definiuje szereg profili (zestawów komponentów) dla różnych poziomów obsługi, takich jak X3D Core, X3D Interchange, X3D Interactive, X3D CADInterchange, X3D Immersive, X3D Geospatial i X3D Full. Producenci przeglądarek mogą zdefiniować własne rozszerzenia komponentów przed zgłoszeniem ich do standaryzacji przez Konsorcjum Web3D. Formalna recenzja i akceptacja jest wtedy dokonywana przez Międzynarodową Organizację Normalizacyjną (ISO).
Współpraca i porozumienia o współpracy są także na miejscu pomiędzy Web3D Consortium i World Wide Web Consortium (W3C), Open Geospatial Consortium (OGC), Digital Imaging and Communications in Medicine (DICOM) i Khronos Group.
Podzbiorem X3D jest XMT-A, wariant XMT zdefiniowany w MPEG-4 Część 11. Został on skonstruowany w celu ustanowienia połączenia między X3D i treścią 3D w MPEG-4 (BIFS)
Abstrakcyjna specyfikacja dla X3D (ISO/IEC 19775) została po raz pierwszy zatwierdzona przez ISO w 2004 roku. Kodowania XML i ClassicVRML dla X3D (ISO/IEC 19776) zostały po raz pierwszy zatwierdzone w 2005 roku[2]. Powyższe zagadnienia są omówione na stronie X3D FAQ – „What is the status of the X3D specification?”.
Aplikacje[edytuj | edytuj kod]
Istnieje szereg aplikacji, z których większość z nich jest programami o otwartym kodzie źródłowym[3], które natywnie przetwarzają i interpretują pliki X3D, w tym edytor grafiki 3D i animacji Blender[4] i klient świata wirtualnego Project Wonderland Sun Microsystems[5]. Applet X3D jest oprogramowaniem, które działa w przeglądarce internetowej i wyświetla zawartość w 3D używając technologii grafiki 3D OpenGL do wyświetlania treści X3D w kilku różnych przeglądarkach (IE, Safari, Firefox) poprzez kilka różnych systemów operacyjnych[6] (Windows, Mac OS X, Linux). Jednak zastosowanie X3D nie zyskało szerszej popularności jaką mają inne, bardziej popularne i własnościowe aplikacje programowe, takie jak Second Life.
W dekadzie 2000, wiele firm takich jak Bitmanagement udoskonaliło poziom jakości efektów wirtualnych w X3D do poziomu jakości DirectX 9.0c, chociaż za cenę używania własnościowych rozwiązań. Wszystkie główne cechy w tym modelowanie gry są już od dawna gotowe. Zaliczają się do nich wielościeżkowe renderowanie z niskopoziomowymi ustawieniami Bufor Z, BlendOp, AlphaOp, Stencil[7], Multiteksturowanie[8], Cieniowanie ze wsparciem dla HLSL oraz GLSL[9], Renderowanie do tekstur w czasie rzeczywistym, wsparcie dla Multi Render Target (MRT) i postprocesingu[10]. Wiele dem pokazuje że X3D od dawna wspiera mapy świetlne, mapowanie normalnych, SSAO, CSM oraz odbicia środowiskowe w czasie rzeczywistym, wraz z innymi efektami wirtualnymi[11].
Walcząc o stanie się standardem 3D dla sieci internetowej, X3D jest zaprojektowany jako standard nadający się do zintegrowania ze stronami HTML 5, na tej samej zasadzie jak będące z nimi zintegrowane inne standardy XML, takie jak już tam zaimplementowane MathML i SVG. X3DOM jest proponowanym modelem składni i jego implementacja jako biblioteka skryptowa[12] która pokazuje jak ta integracja może być osiągnięta bez wtyczki przeglądarkowej, używa tylko WebGL i JavaScript[13].
Przykład[edytuj | edytuj kod]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.2//EN"
"http://www.web3d.org/specifications/x3d-3.2.dtd">
<X3D profile="Interchange" version="3.2"
xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance"
xsd:noNamespaceSchemaLocation="http://www.web3d.org/specifications/x3d-3.2.xsd">
<Scene>
<Shape>
<IndexedFaceSet coordIndex="0 1 2">
<Coordinate point="0 0 0 1 0 0 0.5 1 0"/>
</IndexedFaceSet>
</Shape>
</Scene>
</X3D>
Reprezentacja VRML jest taka sama jak powyższy przykład, z wyjątkiem zmiany linii wersji na treść odzwierciedlającą profil X3D (#X3D V3.2 utf8
).
Dla formatów binarnego i JSON, do obejrzenia jest lista narzędzi.[14]
Zobacz też[edytuj | edytuj kod]
- Flux, darmowy edytor/przeglądarka VRML/X3D, obecnie już nie rozwijany
- Konsorcjum Web3D
- Seamless3d, darmowe oprogramowanie modelujące 3D dla Microsoft Windows
- STL, STereoLithography lub Standard Tessellation Language, wspólny dla programów CAD i drukarek 3D
- Web3D
- WebGL
- XML Paper Specification
Przypisy[edytuj | edytuj kod]
- ↑ Paul Festa and John Borland – Is a 3D web more than just empty promises?. [dostęp 2009-11-12]. [zarchiwizowane z tego adresu (2009-11-12)].
- ↑ X3D FAQ – What is the status of the X3D specification?. [dostęp 2014-02-01]. [zarchiwizowane z tego adresu (2014-02-01)].
- ↑ X3D Open Source Projects.
- ↑ Blender Model Export to X3D.
- ↑ Project Wonderland.
- ↑ X3D applet.
- ↑ DrawGroup & DrawOp.
- ↑ Multitexturing.
- ↑ Programmable shaders component.
- ↑ Scene postprocessing support.
- ↑ VRML X3D and Realtime Web3D.
- ↑ X3DOM JavaScript library.
- ↑ X3D and HTML5: X3DOM proposal, Web3D wiki.
- ↑ X3D to JSON Stylesheet Converter www.web3d.org
Linki zewnętrzne[edytuj | edytuj kod]
- Oficjalna strona konsorcjum Web3D
- Oficjalna strona standardu X3D
- Specyfikacje X3D, walidacje Schema i DOCTYPE
- Wiki X3D
- Listy zasobów X3D zebrane na www.web3d.org (aplikacje, książki, przykłady, itp).
- X3D w katalogu Open Directory Project
- VRML (Virtual Reality Modeling Language) i X3D
- Extensible 3D XML meets VRML
- Oficjalna strona X3DOM
- Dokumentacja X3DOM