Temat: Czym jest webgl?

W skrócie jest to nowy standard umożliwiający wykorzystanie w pełni akceleratorów grafiki 3d w przeglądarkach internetowych. Api bazuje na opengl (popularne api do tworzenia np gier jak quake, doom, również wykorzystywany w playstation 3) a dokładnie Opengl ES.

Więcej tu: http://en.wikipedia.org/wiki/WebGL
Tworzenie stron www z webgl opiera się oczywiście na programowaniu w javascript, wszystkie funkcje opengl es mogą być wywoływane z js. Plusem takiego rozwiązania jest szybkie wyświetlania grafiki 3d, można korzystać z rozszerzeń opengl, shaderów etc. Niestety nie ma jakiegos dodatkowego api do tworzenia gier jak np m3g w java j2me ale ponieważ ten standard silnie wspiera google, mozilla i opera to możliwe że coś takiego powstanie.

Kolejne ważne pytanie: czy powolny javascript nadaje się do wywołań api gl.
Chyba jednak tak skoro google porzuciło rozwijanie specjalnej wtyczki do wyświetlania 3d na rzecz webgl. Dodatkowo rozwijają angle project (http://blog.chromium.org/2010/03/introducing-angle-pro... które ma za zadanie tłumaczenie wywołań webgl na directx tak aby jak najwięcej komputerów z Windowsem mogło korzystać z nowego standardu. Co ciekawe Angle będzie dostępny dla innych producentów przeglądarek. Taki krok dowodzi że javascript jednak się nadaje do grafiki 3d, co więcej programiści na pewno znajdą sposób na przyspieszenie kodu js jak listy wyświetlania, czy przeniesienie obliczeń na gpu np animacje na vertex shadery itp.
Jedyny problem to internet explorer który raczej nie będzie wspierał webgl ze względu na konkurencyjną technologie silverlight, ale zawsze można dać link do przeglądarki kompatybilnej z webgl lub do dodatku chrome dla ie.

Warto również wspomnieć że ładowanie wielu plików do aplikacji może spowolnic działanie dema/strony ale okazuje sie że można je spakować w zgrabne archiwum i następnie za pomocą js wyłuskać z jednego pliku potrzebne nam elementy:
http://fhtr.blogspot.com/2010/05/parsing-tarballs-with...Kuba Jarek Wąsikowski edytował(a) ten post dnia 30.05.10 o godzinie 09:09