Co to jest przeglądarka WebGL™?

Przeglądarka WebGL™ to program przeznaczony nie tylko do wyświetlania podstawowych dokumentów w języku HyperText Markup Language (HTML), JavaScript® i kaskadowych arkuszy stylów (CSS), które są dostępne online, ale także do interpretowania specjalnego podzbioru tych specyfikacji, znanego jako WebGL™. Technicznie rzecz biorąc, WebGL™ nie jest samodzielnym językiem, ale biblioteką graficzną, która wykorzystuje element canvas silnika renderującego przeglądarki do tworzenia pomostu między kodem WebGL™, sprzętem graficznym i przeglądarką. Dzięki temu przeglądarka WebGL™ może renderować zaawansowaną trójwymiarową (3D) grafikę znacznie szybciej niż byłoby to możliwe przy użyciu innych typów wtyczek i wygodniej niż przy użyciu oddzielnie skompilowanych programów w przeglądarce. Prawie wszystkie główne przeglądarki internetowe obsługują natywnie WebGL™, chociaż te przeglądarki, które nie implementują natywnej obsługi, zazwyczaj mają wtyczki innych firm, które udostępniają niezbędne składniki HTML. Chociaż przeglądarka WebGL™ jest w stanie szybko renderować grafikę 3D dzięki bezpośredniemu dostępowi do karty graficznej komputera, jest to również źródło potencjalnie dużych luk w zabezpieczeniach, które mogą umożliwić złośliwemu programowi wykonanie szkodliwego kodu na zdalnym komputerze.

Zasadniczo przeglądarka WebGL™ zawiera kod, który łączy funkcje zawarte w bibliotece graficznej w taki sposób, aby były dostępne przez JavaScript®. W standardzie języka HTML w wersji 5 (HTML5) istnieje specjalny element znany jako płótno, którego można używać do rysowania bezpośrednio na obszarze ekranu bez konieczności używania wtyczek lub do pracy ze znacznikami HTML lub CSS, które może nie być tak precyzyjne, jak jest to wymagane. W zgodnej przeglądarce WebGL™ JavaScript® jest powiązany z biblioteką graficzną niskiego poziomu i rysuje bezpośrednio na elemencie płótna HTML5, zapewniając platformę dla grafiki, którą można przesłać bezpośrednio z karty graficznej na urządzenie wyświetlające.

Wykorzystywane biblioteki to biblioteki systemów wbudowanych OpenGL® (OpenGL ES®), które stanowią podzbiór standardowych funkcji biblioteki OpenGL® przeznaczonych do pracy z urządzeniami mobilnymi. Jednym z powodów, dla których przeglądarka WebGL™ jest możliwa, jest lekki charakter bibliotek WebGL™, które nie zużywają dużej ilości zasobów i nie zawierają niektórych bardziej obciążających procesor funkcji pełnej implementacji OpenGL®. Powtarzający się problem z przeglądarką WebGL™ polega jednak na tym, że sterowniki i sprzęt na komputerze lub urządzeniu muszą umożliwiać uruchomienie aplikacji OpenGL ES®. Niektóre systemy operacyjne, urządzenia, sprzęt, a nawet sterowniki nie mają możliwości uruchomienia programu WebGL™, a także nie oferują łatwego rozwiązania poza wymianą zainstalowanego sprzętu graficznego.

Poważne problemy z bezpieczeństwem przeglądarki WebGL™ uniemożliwiły niektórym głównym twórcom przeglądarek pełne wdrożenie obsługi WebGL™. Sprowadza się to przede wszystkim do bezpośredniego dostępu, jaki przeglądarka zapewnia do kodu WebGL™. W przypadku złośliwego użycia karta graficzna może zostać zmanipulowana w celu spowodowania uszkodzeń za pośrednictwem systemu hosta lub, w najgorszym przypadku, może zostać wykorzystana jako brama do wykonania lub umieszczenia szkodliwego kodu komputerowego.