Przejdź do zawartości

X3D

Z Wikipedii, wolnej encyklopedii
Walecw X3D

X3D(ang.eXtensible 3D), pol. rozszerzalny trójwymiar –wolny od tantiemstandardISO/IECsłużący do deklaratywnej reprezentacjikomputerowej grafiki 3D.X3D obejmuje wiele formatów plików graficznych, definicje języka programowaniaAPIoraz specyfikacje dla czasu uruchamiania, zarówno w celu dostarczania, jak i integracji interaktywnych danych 3D z obsługą sieci. Standard X3D w wersji 4.0 został zatwierdzony przezKonsorcjum Web3Di jest poddany ostatecznemu przeglądowi przez ISO/IEC jako poprawiony standard międzynarodowy.

X3D został specjalnie zaprojektowany do pracy na różnych urządzeniach przy użyciu architektury sieciowej. X3D zapewnia szereg funkcji 3D poprzez profile, począwszy od podstawowego profilu Asset Interchange i CADInterchange a kończywszy na Interactive, MPEG-4 Interactive, Medical, Immersive, i Full. Anatomicznie dokładne wsparcie jest również dostępne dla struktury ciała i ruchu w profilu Humanoid Animation (HAnim). „X” w X3D oznacza „Extensible” czyli rozszerzalny: do standardowej funkcjonalności można dodawać niestandardowe rozszerzenia komponentów dostawców i komponentów eksperymentalnych.

Wsparcie skryptowychformatów plikówobejmujeXML,ClassicVRML, Compressed Binary Encoding (CBE) i podstawowe kodowanieJSON.WsparcieSemantic Webzostało również zademonstrowane przez składnię kodowaniażółwia.X3D został następcąVirtual Reality Modeling Language(VRML) w roku 2001[1].X3D wprowadzarozszerzeniado VRML (np.CAD,Geospatial,GeoVRML,Humanoid animation,NURBSitp.), zdolność do kodowania sceny zarówno wskładniXML,jak i w składni analogicznej do składni programuOpen Inventorużywanej w VRML97, lub też w formatowaniubinarnym,a także rozszerzone interfejsy programowania aplikacji (API), w tymECMAScript,Java,Pythoni innejęzyki programowania.

Rozszerzenie X3D wspiera wielostopniowe i wieloteksturowerenderowanie,ono także obsługujecieniowaniew 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.

Renderowanie X3D obejmuje zarówno klasyczne (np.Blinn-Phong), jak i nowoczesnyrendering bazujący na fizycepasujący do możliwościglTF2.0. Użycie niestandardowychshaderówprzy użyciu trzech języków shaderów specyficznych dla platformy jest także zdefiniowane. Autorzy mogą korzystać z bogatych możliwości multimedialnych, zawierających różne formaty obrazów i filmów. W pełni przestrzenne renderowanie dźwiękowe wykorzystuje możliwości dźwięku API Web Audio od W3C oraz wejścia audio digitalizowane przy użyciuMIDI2.0 lub innych formatów dźwięku.

Wszystkie kodowania plików X3D i interfejsy API języka programowania mają równoważną moc ekspresji, odpowiadającą definicjom funkcjonalnym w standardzie architektury X3D. Dlatego X3D może pracować z otwartymi standardami, w tymXML,Document Object Model (DOM),XPathi innymi.

X3D może współdziałać z innymi standardamiOpen Source,w tym XML,DOMiXPath.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.

Przykład

[edytuj|edytuj kod]

Niniejszy przykład pokazuje tą samą scenę coVRML#Przykład.Reprezentacja VRML jest taka sama jak poniższy przykład, z wyjątkiem zmiany linii wersji na treść odzwierciedlającą najnowszy standard X3D (#X3D V4.0 utf8). Identyfikacyjna nazwa DEF jest też zastosowana jako identyfikator węzła.

Dla formatów binarnego i JSON, do obejrzenia jest lista narzędzi Web3D[2].

<?xml version= "1.0" encoding= "UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 4.0//EN" "http://www.web3d.org/specifications/x3d-4.0.dtd" >

<X3Dprofile="Interchange"version="4.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance"
xsd:noNamespaceSchemaLocation="http://www.web3d.org/specifications/x3d-4.0.xsd">
<Scene>
<ShapeDEF="MyTriangle">
<IndexedFaceSetcoordIndex="0 1 2">
<Coordinatepoint="0 0 0 1 0 0 0.5 1 0"/>
</IndexedFaceSet>
</Shape>
</Scene>
</X3D>

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 tymedytor grafiki3D i animacjiBlender[4]i klient świata wirtualnegoProject WonderlandSun 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 jakSecond Life.

W dekadzie 2000, wiele firm takich jak Bitmanagement udoskonaliło poziom jakości efektów wirtualnych w X3D do poziomu jakościDirectX9.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 ustawieniamiBufor Z,BlendOp, AlphaOp, Stencil[7],Multiteksturowanie[8],Cieniowanie ze wsparciem dlaHLSLorazGLSL[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 stronamiHTML 5,na tej samej zasadzie, jak będące z nimi zintegrowane inne standardy XML, takie jak już tam zaimplementowaneMathMLiSVG.X3DOMjest proponowanym modelem składni i jegoimplementacjajako biblioteka skryptowa[12],która pokazuje jak ta integracja może być osiągnięta bez wtyczki przeglądarkowej, używa tylkoWebGLi JavaScript[13].

Standaryzacja

[edytuj|edytuj kod]

X3D definiuje szereg profili (grup 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 przezKonsorcjum Web3D.Formalna recenzja i akceptacja jest wtedy dokonywana przezInternational Organization for Standardization(ISO) oraz przezInternational Electrotechnical Commission(IEC).

Współpraca i porozumienia o współpracy są także na miejscu pomiędzyWeb3D ConsortiumiWorld Wide Web Consortium(W3C),Open Geospatial Consortium(OGC),Digital Imaging and Communications in Medicine(DICOM) iKhronos Group.

Podzbiorem X3D jest XMT-A, wariantXMTzdefiniowany wMPEG-4Część 11.Został on skonstruowany w celu ustanowienia połączenia między X3D i treścią 3D w MPEG-4 (BIFS)[14].

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[15].Powyższe zagadnienia są omówione na stronieX3D FAQ – „What is the status of the X3D specification?”.

Zobacz też

[edytuj|edytuj kod]

Przypisy

[edytuj|edytuj kod]
  1. Paul Festa and John Borland – Is a 3D web more than just empty promises?.[dostęp 2009-11-12]. [zarchiwizowane ztego adresu(2009-11-12)].
  2. X3D to JSON Stylesheet Converterwww.web3d.org
  3. X3D Open Source Projects.web3d.org. [zarchiwizowane ztego adresu(2014-06-23)]..
  4. Blender Model Export to X3D.savage.nps.edu. [zarchiwizowane ztego adresu(2016-03-03)]..
  5. Project Wonderland.research.sun.com. [zarchiwizowane ztego adresu(2009-07-17)]..
  6. X3D applet.web3d.org. [zarchiwizowane ztego adresu(2012-09-16)]..
  7. DrawGroup & DrawOp.
  8. Multitexturing.web3d.org. [zarchiwizowane ztego adresu(2012-01-03)]..
  9. Programmable shaders component.web3d.org. [zarchiwizowane ztego adresu(2011-11-28)]..
  10. Scene postprocessing support.
  11. VRML X3D and Realtime Web3D.
  12. X3DOM JavaScript library.
  13. X3D and HTML5: X3DOM proposal.web3d.org. [zarchiwizowane ztego adresu(2010-06-12)].,wiki Web3D.
  14. www.web3d.org PDF
  15. X3D FAQ – What is the status of the X3D specification?.[dostęp 2014-02-01]. [zarchiwizowane ztego adresu(2014-02-01)].

Linki zewnętrzne

[edytuj|edytuj kod]