W dziedzinie technologii informacyjnej, a szczególnie w domenie internetu, rozwój następuje niezwykle szybko. To, co wczoraj było nowością i luksusem, na który mogą sobie pozwolić tylko nieliczni, których stać na zakup drogiego sprzętu, dziś może być ogólnodostępną norma. Albo może zostać zapomniane… Przeglądając zasoby sieci, można odnieść wrażenie, że taki właśnie los spotkał VRML97 – nikt w dzisiejszych czasach nie używa tego języka do prezentacji interaktywnej grafiki na witrynach internetowych. VRML nie jest w internecie powszechny, ani popularny. Może służyć co najwyżej jako ogólnodostępny format wymiany trójwymiarowych modeli. Jednak stwierdzenie, że VRML jest martwy, byłoby nieprawdziwe i krzywdzące. Na jego fundamentach (chociaż może trafniejsze byłoby określenie „na gruzach”) powstał nowy standard: x3D – Extensible 3D.
x3D to nowy, lepszy VRML. Zachowując logikę budowania trójwymiarowych scen – metaforę grafu, składnie ubrano w „lingua franca” internetu, czyli XML (link). Użyto tagów, zamiast obfitującej w zagnieżdżone nawiasy syntaksy, przywodzącej na myśl raczej programowanie, niż modelowanie 3D. Odparto w ten sposób jeden z głównych argumentów krytyków VRML, mianowicie ze język ten, chociaż pretendował do miana uniwersalnego sieciowego formatu, nie korzystał z tagów, czyli standardu leżącego u podstaw treści tworzonych w internecie. Nie jest to jednak jedyna zmiana wprowadzona do nowego formatu.
Specyfikacja x3D obejmuje przede wszystkim mechanizmy generowania grafiki 3D (link). Operacje geometryczne na wielobok (trójkątach, oraz innych płaszczyznach), hierarchiczna transformacje obiektów, oświetlenie, mapowanie, wieloprzebiegowe teksturowanie, programowalne cieniowanie pikseli i wierzchołków oraz sprzętowa akceleracje. x3D był jednak pomyślany jako wszechstronny format do prezentacji interaktywnych scen, obejmuje zatem wiele więcej. Oprócz grafiki 3D tworzyć można dwuwymiarowe wektorowe obrazy oraz tekst. Możliwe jest określenie animacji obiektów i scen, w tym specjalistyczna animacje postaci ludzkich, a także morfing. Interaktywność zapewniona jest dzięki obsłudze podnoszenia oraz przeciągania za pomocą myszki. Zaimplementowano również nawigacje – symulacje chodu, latania, detekcje kolizji, zbliżania się użytkownika do obiektów oraz wykrywanie ich widzialności Większe zagłębienie w wirtualny świat możliwe jest również dzięki obsłudze przestrzennego dźwięku.
Od strony bardziej technicznej, x3D pozwala na wykorzystanie skryptów do dynamicznej zmiany generowanego otoczenia. Sceny mogą być komponowane z obiektów dostępnych w całym internecie, można się również miedzy nimi poruszać, analogicznie jak po stronach www, z wykorzystaniem mechanizmu hiperłączy. Użytkownicy mogą tworzyć obiekty rozszerzające możliwości przeglądarek obsługujących podstawy standardu. Można korzystać z metod optymalizacji sposobu wyświetlania obiektów (usuwania niewidocznych powierzchni) takich jak BSP/QuadTree/OctTree. Oprócz formatu tekstowego (XML), standard przewiduje również format binarny.
x3D przeszedł proces standaryzacji ISO i od 2005 roku objęty jest standardem o numerze ISO/IEC 19775/19776/19777 (link). Nad jego specyfikacja czuwa Web3D Consortium – organizacja wywodząca się z rozwiązanego VRML Consortium. Nad rozwojem nowego formatu pracują zatem ludzie, którzy angażowali się w tworzenie jego poprzednika. Przy kształtowaniu x3D, konsorcjum współpracuje z przedstawicielami przemysły IT oraz podobnymi organizacjami, miedzy innymi z World Wide Web Consortium (W3C) – odpowiedzialnym za promowanie standardów przesyłu oraz tworzenia stron www – oraz z Khronos Group – którzy opiekują się specyfikacja OpenGL (link). Budowaniu x3D przyświeca kilka idei, będących wyznacznikami kierunku, w którym społeczność wokół niego skupiona, chciałaby aby się rozwijał.
Po pierwsze ma to być format zintegrowany i przeznaczony do wykorzystania w internecie, uniwersalny i działający na wielu platformach sprzętowych, od smartphone’a po superkomputer – stad też, wykorzystanie XML jako bazowej struktury tekstowej plików. Ma być zbudowany w taki sposób, aby zapewnić lekki rdzeń odpowiedzialny za wyświetlanie podstawowej grafiki 3D, który „obudować” można dowolna ilością dodatkowych modułów, a tym samym dopasować do wymagań danego projektu. Ma pozwolić na pisanie rozszerzeń także przez użytkowników, oraz na łatwą ich implementacje. Istotne jest również zachowanie wstecznej kompatybilności w VRML97 – każda przeglądarka obsługująca x3D powinna być w stanie przeczytać również pliki wrl. Cały stworzony standard jest oczywiście ogólnodostępny i może być zaimplementowany bez potrzeby wykupywania licencji – w przyszłości płatne natomiast ma być wystawienie certyfikatu zgodności stworzonego oprogramowania ze standardem (link).
Aby zadość uczynić postulatowi modularności, podzielono specyfikacje x3D na kilka profili. Ma to pozwolić na jedynie częściową implementacje w takich realizacjach, które nie potrzebują pełnej gamy funkcji oferowanych przez standard. Miałoby to również ograniczyć stopień skomplikowania oprogramowania wykorzystującego x3D oraz ułatwić jego użycie i rozpowszechnienie (link). Interchange jest podstawowym profilem, obejmującym trójwymiarową geometrie, teksturowanie, oświetlenie i animacje. W założeniu ma być wykorzystywany do przenoszenia danych (modeli) miedzy poszczególnymi aplikacjami oraz umożliwić ich prezentacje. Jest to najprostszy profil, który może być w prosty łatwy zintegrowany z oprogramowaniem. Kolejny zakres to Interactive, który rozszerza Interchange o możliwość wchodzenia w interakcje z prezentowanym otoczeniem. Dodano sensory zbliżenia i dotyku, timery, a także bardziej zaawansowane oświetlenie sceny. Profil Immersive pozwala na pełne zanurzenie w wirtualnym świecie – wprowadzono detektory kolizji, mgle, pełną obsługę dźwięku oraz możliwość używania skryptów. Ostatni pułap implementacji to profil Full, który zawiera wszystkie elementy specyfikacji x3D, łącznie z obsługa obiektów typu NURBS (powierzchnie opisane przy pomocy krzywych B-sklejanych – B-spline), animacji H-Anim (animacja humanoidalnych modeli) i komponentów GeoSpatial (modele opisane we współrzędnych geograficznych). Dodatkowo, zdefiniowano profile przeznaczone do wykorzystania w formacie MPEG-4 oraz do zapisywania danych z programów typu CAD.
Tak wygląda teoria, a precyzyjniej pisząc, taka jest specyfikacja standardu x3D. Kwestia istotna jest, jak (i czy w ogóle) założenia określone w standardzie zostały zaimplementowane – czy istnieje oprogramowanie zdolne wyświetlić plik x3D, który korzysta z wszystkich dobrodziejstw zdefiniowanych we wzorcowej specyfikacji? Prosta odpowiedz brzmi: na dzień dzisiejszy – nie istnieje. Żadna z dostępnych obecnie na rynku przeglądarek x3D, ani bibliotek programistycznych, nie obsługuje wszystkich obiektów, efektów i technologii opisanych w standardzie. Wiele z nich radzi sobie, lepiej lub gorzej, z profilem podstawowym, a nawet interaktywnym, żaden natomiast program nie może pochwalić się obsługa profilu pełnego (link). O ile brak aktualnie jednego kompleksowego rozwiązania, to poszczególne fragmenty specyfikacji zostały niezależnie od siebie zaimplementowane w rożnych programach.
Komentowanie nieaktywne.