O documento fornece uma introdução ao OpenGL, descrevendo seu histórico desde os anos 1980, arquitetura e pipeline de renderização. Explica como o OpenGL surgiu como um padrão aberto para computação gráfica após padrões proprietários.
Computação Gráfica Aula5 – Introdução ao OpenGL Prof. Tony Alexander Hild Documento licenciado por Creative Commons - http://creativecommons.org/licenses/by-nc-sa/2.5/br/
2.
Histórico Início dadécada de 80: Cada fabricante de hardware tinha seu próprio conjunto de instruções para desenho de gráficos 2D e 3D;
Esforço era constantementeduplicado e havia pouco espaço para companhias menores e sem capital para tamanho investimento. Meados dos anos 80: Um padrão surgiu na indústria;
5.
Chamado PHIGS (siglade Programmer’s Hierarchical, Graphics System) e começou a ser adotado por grandes fabricantes da época;
6.
Entretanto, embora tenhasido reconhecido por entidades como a ANSI e a ISO, o padrão começou a ser considerado complicado e desatualizado. Final dos anos 80: A Silicon Graphics Inc. (SGI), criou um padrão chamado IRIS GL, que não só começou a chamar atenção da indústria, como também foi considerado o estado da arte de uma API gráfica. Consideravelmente mais fácil de usar, a API começou a tornar-se um padrão de fato na indústria.
7.
Histórico Entretanto, grandesempresas produtoras da hardware, como a Sun Microsystems e a IBM, ainda eram capazes de fabricar hardware adotando o padrão PHIGS;
8.
Isso levou aSGI a tomar uma decisão para que a adoção de sua API fosse impulsionada: torná-la um padrão público, para que todos os fabricantes de hardware pudessem adotá-lo;
9.
A API Iriscontinha muito código proprietário e portanto não poderia ser aberta;
10.
Também lidava comquestões não tão relacionadas ao desenho 2D e 3D, como gerenciamento de janelas, teclado e mouse;
11.
Ainda assim, erado interesse da Silicon Graphics manter os seus antigos clientes comprando seu hardware;
12.
Como um resultadodisso, o padrão OpenGL é criado: Desde 1992, o padrão é mantido pelo ARB (Architecture Review Board), um conselho formado por empresas como a 3DLabs, ATI, Dell, Evans&Sutherland, HP, IBM, Intel, Matrox, NVIDIA, Sun e, logicamente, a Silicon Graphics;
13.
O papel desseconselho é manter a especificação e indicar quais recursos serão adicionados a cada versão;
Histórico Os projetistasdo OpenGL sabiam de duas coisas: A primeira é que fabricantes de hardware gostariam de adicionar recursos próprios, sem que tivessem que esperar para esses recursos estarem oficialmente aceitos no padrão. Para resolver esse problema, eles incluíram uma maneira de extender o OpenGL. Muitas vezes, essas extensões são interessantes o suficiente para que outros vendedores de hardware as adotem. Então, quando elas são consideradas suficientemente abrangentes, ou suficientemente importantes, a ARB pode promovê-las para que façam parte do padrão oficial. Praticamente todas as modificações recentes do padrão começaram como extensões, a grande maioria devido ao mercado de jogos.
16.
Em segundo lugar,os projetistas também sabiam que muitos hardwares não seriam poderosos o suficiente para abranger todo o padrão. Por isso, também incluíram extensões de software, que permitiam emular essas funcionalidades. Isso resolvia um problema sério que ocorria com a Iris: O da aplicação simplesmente não rodar pela falta de um ou outro recurso.
17.
Arquitetura do OpenGLO OpenGL é um conjunto de funções, que fornecem acesso aos recursos do hardware de vídeo;
18.
Age como umamáquina de estados, que dizem ao OpenGL o que fazer;
19.
Usando as funçõesda API, você pode ligar ou desligar vários aspectos dessa máquina, tais como: A cor atual;
Se haverá ounão o efeito de neblina. Etc. É importante conhecer cada um desses estados, pois não é incomum a obtenção de resultados indesejados simplesmente por deixar um ou outro estado definido de maneira incorreta.
23.
O OpenGL tambémfoi projetado para funcionar mesmo que a máquina que esteja exibindo os gráficos não seja a mesma que contém o programa gráfico. Pode ser o caso dos dois computadores estarem conectados em rede e, sendo que nesse caso o computador que gera os comandos é chamado cliente, enquanto o que recebe e executa os comandos de desenho é chamado de servidor. O formato de transmissão desses comandos (chamado protocolo) também é padronizado, então é possível que duas máquinas com sistemas operacionais e hardwares diferentes se comuniquem dessa forma. Se o OpenGL não está sendo executado numa rede, o computador é considerado ao mesmo tempo cliente e servidor.