OpenGL: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
m
m +correções semiautomáticas (v0.57/3.1.56/)
Linha 1:
{{não confundir com|OpenCL}}
{{Mais notas|arte=sim|data=dezembro de 2010}}
{{Info/Software
|nome = OpenGL
|logo = Opengl-logo.svg
|imagem =
|alt = |legenda =
|desenvolvedor = Khronos Group
|data_lancamento = [[Janeiro]] de [[1992]]<ref name="Overview" />
|ultima_versao = 4.6<ref>{{Citar web |url=https://www.khronos.org/opengl/ |título=The Industry's Foundation for High Performance Graphics |língua=inglês |publicado=khronos.org |data=31 de julho de 2017 |acessodata=12 de fevereiro de 2018}}</ref>
|ultima_data = {{Data de lançamento e tempo|2017|07|31}}
|versao_beta =
|data_beta =
|plataforma = [[Multiplataforma]]
|linguagem = [[C (linguagem de programação)|C]]
|idiomas = [[Língua inglesa|Inglês]]
|sistema_operacional = [[Multiplataforma]]
|estado = Ativo
|genero = [[API]]
|licença = Várias<ref>{{Citar web |url=http://www.sgi.com/products/software/opengl/license.html |título=OpenGL: Licensing and Logos |língua=inglês |publicado=sgi.com |acessodata=28 de dezembro de 2010}}</ref>
|tamanho =
|website = {{URL|https://www.opengl.org/}}
}}
O '''OpenGL''' ('''Open G'''raphics '''L'''ibrary) é uma [[API]] [[Software livre|livre]] utilizada na [[computação gráfica]], para desenvolvimento de aplicativos gráficos, ambientes 3D, jogos, entre outros. Assim como Direct3D ou Glide, é uma API (Application Programming Interface), termo usado para classificar uma biblioteca de funções específicas disponibilizadas para a criação e desenvolvimento de aplicativos em determinadas linguagens de programação. A OpenGL foi produzida com C e [[C++]] em mente, mas pode ser utilizada para diversas outras com um alto nível de eficiência.
Linha 31:
No final dos anos 80, a Silicon Graphics Inc. ([[SGI]]), desenvolveu 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.
 
Entretanto, grandes empresas produtoras do hardware, como a [[Sun Microsystems]] e a [[IBM]], ainda eram capazes de fabricar hardware adotando o padrão [[PHIGS]]. Isso levou a [[SGI]] 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.
 
A [[SGI]] considerou que a [[API]] IRIS GL continha muito código proprietário e, portanto, não poderia ser aberta. Ela também lidava com questões não tão relacionadas ao desenho 2D e 3D, como gerenciamento de janelas, teclado e mouse. Ainda assim, era do interesse da Silicon Graphics manter os seus antigos clientes comprando seu hardware.
 
Como um resultado disso, o padrão OpenGL foi desenvolvido a partir de [[1991]], e lançado em [[Janeiro]] de [[1992]].<ref name="Overview">{{Citar web |url=http://www.opengl.org/about/overview/ |título=OpenGL Overview |língua=inglês |publicado=sgi.com |acessodata=28 de dezembro de 2010}}</ref> Desde 1992, o padrão é mantido pelo ARB (Architecture Review Board), um conselho formado por empresas como a 3DLab, ATI, Dell, Evans&Sutherland, HP, IBM, Intel, Matrox, NVIDIA, Sun e, logicamente, a Silicon Graphics. O papel desse conselho é manter a especificação e indicar quais recursos serão adicionados a cada versão. A versão mais atual do OpenGL até hoje é a 4.6.
 
Os projetistas do 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 estender 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.
Linha 62:
* Avaliadores (''evaluators''): Todas as primitivas geométricas, no OpenGL são descrita por vértices. Curvas e superfícies paramétricas podem ser descritas por fórmulas - usadas na construção dos vértices. Quem faz essa avaliação são os avaliadores.
* Operações pré-vértices: Para os dados de vértices, as operações pré-vértice convertem os vértices em primitivas de desenho. Nessa etapa, cada vértice é convertido em matrizes 4×4, então cálculos são realizados para que sejam convertidos do espaço 3D para as coordenadas de tela. Essa etapa ainda realiza operações de cálculos de textura, iluminação, materiais, etc. de acordo com quais estados tenham sido habilitados;
* Montagem de primitivas (''primitive assembly''): A fase de montagem de primitivas preocupa-se com a eliminação das partes da geometria que caiam fora do plano. Essa fase também aplica os cálculos de perspectiva, fazendo os objetos distantes parecerem menores em relação a objetos próximos. Se cálculos de abate (''culling'') estiverem ativos, partes dos objetos podem ser desprezadas durante essa fase. É aqui também que se decide se um polígono deve ser desenhado através de pontos ou linhas;
* Operações com ''pixels'': Enquanto os dados geométricos seguem pelo duto de renderização, os mapas de ''pixels'' passam por diferentes tipos de transformação. Primeiramente, os ''pixels'' são descompactados de acordo com o seu número de componentes, então eles têm sua escala ajustada, seu formato final é calculado, parte de sua área é recortada e então são enviados para o passo chamado rasterização ("rasterization").
* Montagem de texturas (''texture assembly''): Permite a aplicação de imagens como texturas nas geometrias, para que elas pareçam mais realistas. Algumas implementações do OpenGL podem ter recursos especiais para acelerar esse processo;
Linha 75:
* [[GLUT|OpenGL Utility Toolkit (GLUT)]]: É um ''toolkit'' que abstrai o sistema de janelas, fornecendo uma interface simples para a criação de uma aplicação OpenGL.
 
== Outras características importantes ==
# O OpenGL trabalha com a medida de ângulos em graus e não em radianos, como ocorre com a maioria das linguagens;
# Cada componente de cor no OpenGL é normalmente definido por um número de ponto flutuante, que varia de 0 até 1, e não um número inteiro de 0 até 255;
Linha 97:
 
{{Padronizações da Khronos Group}}
 
{{Portal3|Games}}
 
[[Categoria:Interface de programação de aplicações]]