Co to jest 3D WebGL™?

Biblioteka graficzna oparta na sieci Web (WebGL™) to abstrakcyjny interfejs programistyczny (API) zaprojektowany w celu umożliwienia korzystania z grafiki trójwymiarowej (3D) bezpośrednio w przeglądarce internetowej bez konieczności korzystania z oprogramowania lub wtyczek niezależnie od podstawowej przeglądarki . Różnica między 3D WebGL™ a innymi językami graficznymi 3D opartymi na przeglądarce — takimi jak język znaczników rzeczywistości wirtualnej (VRML) — polega na tym, że 3D WebGL™ umożliwia bezpośredni dostęp do procesora graficznego (GPU) na sprzętowej karcie graficznej znajdującej się w komputer. Kolejną różnicą jest to, że 3D WebGL™ nie jest oddzielnym językiem, ale interfejsem API zaimplementowanym za pomocą języka skryptowego JavaScript®, który jest rozumiany natywnie przez prawie wszystkie przeglądarki internetowe. Chociaż ten rodzaj bezpośredniego, niskopoziomowego dostępu do sprzętu systemu komputerowego jest jedną z mocnych stron WebGL™, jest to również jeden z większych problemów, ponieważ wiąże się z szeregiem problemów związanych z bezpieczeństwem, które nie są łatwe do rozwiązania.

Jednym z ważnych osiągnięć, które umożliwiły 3D WebGL™, jest wprowadzenie elementu canvas do specyfikacji HyperText Markup Language w wersji 5 (HTML5). Element canvas umożliwia niskopoziomowy dostęp do rzutni, który można narysować i utrzymywać w stylu zgodnym z istniejącymi typami renderowania interfejsów API w innych językach programowania komputerowego. Interfejs API WebGL™ współpracuje z tym przyspieszonym płótnem, zapewniając możliwość bardzo szybkiego renderowania złożonych scen bez konieczności polegania na emulacji oprogramowania na różnych platformach lub implementacjach.

Interfejs API 3D WebGL™ nie tylko korzysta z elementu canvas, ale także jest oparty na bibliotece Open Graphics Library for Embedded Systems (OpenGL ES®). Jest to przenośna wersja standardowej biblioteki OpenGL®, która ma być przenośna nie tylko między różnymi komputerowymi systemami operacyjnymi, ale także na dowolnym urządzeniu, które wymaga użycia niskopoziomowej grafiki 3D. Ta niewielka powierzchnia pozwala na zintegrowanie biblioteki z dowolną przeglądarką na prawie każdym urządzeniu.

Implementacja 3D WebGL™ pozwala na tworzenie interaktywnych programów, które można uruchamiać bezpośrednio ze strony internetowej lub pobierać i uruchamiać jako samodzielną aplikację w przeglądarce internetowej. Może służyć do tworzenia gier wideo 3D, oprogramowania edukacyjnego, symulacji i wizualizacji 3D dla biznesu i badań naukowych. Używając przeglądarki jako aplikacji opakowującej, środowiska 3D mogą być rozwijane bez martwienia się o powtarzalny szablonowy kod dla podstawowych interfejsów.

Jedną z największych wad korzystania z 3D WebGL™, która uniemożliwia jego powszechną akceptację przez niektóre firmy produkujące oprogramowanie i sprzęt, jest związane z nim zagrożenie bezpieczeństwa. Możliwość uzyskania przez program dostępu do GPU może dać złośliwemu programowi możliwość wymuszenia na komputerze hosta wykonania szkodliwego kodu. Wykazano również, że ataki typu „odmowa usługi” (DOS) są możliwe przy użyciu interfejsu API WebGL™. Z tego powodu niektóre duże firmy komputerowe odmawiają pełnego wsparcia WebGL™ w swoich produktach.