O que é um navegador WebGL ™?
Um navegador WebGL ™ é um programa projetado não apenas para exibir documentos básicos HTML (HyperText Markup Language), JavaScript® e CSS (Cascading Style Sheet) que estão online, mas também para interpretar o subconjunto especial dessas especificações, conhecido como WebGL ™. Tecnicamente, o WebGL ™ não é um idioma independente, mas uma biblioteca de gráficos que usa o elemento canvas do mecanismo de renderização do navegador para criar uma ponte entre o código WebGL ™, o hardware gráfico e o navegador. Isso fornece ao navegador WebGL ™ a capacidade de renderizar gráficos tridimensionais avançados (3D) muito mais rapidamente do que seria possível usando outros tipos de plug-ins e de forma mais conveniente do que quando se usa programas compilados separadamente dentro do navegador. Quase todos os principais navegadores da Web suportam o WebGL ™ nativamente, embora os navegadores que não implementam o suporte nativo geralmente possuam plug-ins de terceiros que expõem os componentes HTML necessários. Embora um navegador WebGL ™ seja capaz de renderizar gráficos 3D rapidamente devido ao acesso direto fornecido a uma placa gráfica de computador, essa também é a fonte de falhas de segurança potencialmente grandes que podem permitir que um programa mal-intencionado execute código nocivo em um computador remoto.
Em essência, um navegador WebGL ™ contém código que vincula especificamente as funções incluídas em uma biblioteca de gráficos de forma a serem acessíveis através do JavaScript®. Sob o padrão da linguagem HTML versão 5 (HTML5), existe um elemento especial conhecido como tela que pode ser usado para desenhar diretamente em uma área da tela sem a necessidade de usar plug-ins ou para trabalhar com tags HTML ou CSS que pode não ser tão preciso quanto necessário. Em um navegador WebGL ™ compatível, o JavaScript® é vinculado a uma biblioteca de gráficos de baixo nível e atrai diretamente para o elemento de tela HTML5, fornecendo uma plataforma para gráficos que podem ser enviados diretamente de uma placa gráfica para um dispositivo de exibição.
As bibliotecas usadas são as bibliotecas de sistemas embarcados OpenGL® (OpenGL ES®), que são um subconjunto das funções padrão da biblioteca OpenGL® projetadas para funcionar com dispositivos móveis. Um dos motivos pelos quais um navegador WebGL ™ é possível é a natureza leve das bibliotecas WebGL ™, que não consomem grandes quantidades de recursos e não contêm algumas das funções mais intensivas em processador da implementação completa do OpenGL®. Um problema recorrente com um navegador WebGL ™, no entanto, é que os drivers e o hardware em um computador ou dispositivo devem ser capazes de executar um aplicativo OpenGL ES®. Alguns sistemas operacionais, dispositivos, hardware e até drivers não possuem os recursos para executar um programa WebGL ™ e também não possuem uma solução fácil, exceto a substituição do hardware gráfico instalado.
As principais preocupações com a segurança de um navegador WebGL ™ impediram que alguns dos principais desenvolvedores de navegadores implementassem totalmente o suporte ao WebGL ™. Isso se resume principalmente ao acesso direto que o navegador fornece ao código WebGL ™. Quando usada com intuito malicioso, a placa de vídeo pode ser manipulada para causar danos através do sistema host ou, no pior dos casos, pode ser usada como gateway para executar ou plantar códigos de computador prejudiciais.