O que as pessoas querem dizer quando dizem que "OpenGL é uma especificação"?
Eu sou um desenvolvedor gráfico central e não escrevo blogs frequentemente. Então você pode achar minha explicação um pouco complicada, mas eu vou tentar simplificá-la. OpenGL é uma especificação lançada pelo grupo khronos. Isso significa que ele especifica as entradas e saídas de uma api ou de uma função, mas não diz como implementá-la. Por exemplo glDrawArrays - nesta página você pode encontrar, quais são as entradas requeridas por esta função e que saída deve gerar (neste caso renderizar primitivas), mas como isto renderiza , depende do fornecedor que desenvolve drivers gráficos como Nvidia, intel etc. A implementação de toda ou a maior parte da função que você vê na especificação, estará lá no driver gráfico. Então se uma nova função é adicionada em uma nova versão da especificação opengl, então os fornecedores de gráficos a implementam em seus drivers e você é solicitado a atualizar seus drivers gráficos para aproveitar as novas funcionalidades.
OpenGL não é uma API ou biblioteca, então você não precisa adicionar uma lib ou dll em seu projeto, para usar as funções opengl. Você só precisa incluir o arquivo de cabeçalho, que é liberado pelo grupo khronos e obter os apontadores de funções. Se o seu driver gráfico suporta essa função (ex. glDrawArrays), então você terá um ponteiro de função para essa função, que você pode usar no seu código para renderizar as primitivas (como triângulo, linha etc).
State machine - significa que qualquer que seja o estado que você tenha definido, ele permanecerá nesse estado, use-o para mudar. ex. você define a cor como vermelho, então todas as primitivas (linha/triângulo etc) que você desenhar depois disso, serão desenhadas em vermelho, até que você mude a cor novamente. Então se você quiser desenhar uma linha azul e vermelha, então você tem que mudar o estado, antes da chamada de desenho. Este conceito de mudança de cor não é aplicável para o openGL moderno. Eu tomei o exemplo da cor apenas para tornar as coisas simples.
OpenGL é como um quadro de desenho, onde você pode desenhar algo. Não é necessário ser um monitor. É apenas um container, que contém informações sobre como e o que desenhar.
Artigos semelhantes
- Quais são as diferenças entre OpenGL moderno e antigo? O OpenGL moderno é difícil, então devo começar com o antigo OpenGL?
- O que algumas pessoas querem dizer quando colocam um til (∼) no final de uma frase?
- O que devo dizer às pessoas que dizem "porque não tem um smartphone"?
- Quando um empregador pede o meu título, o que é que eles querem dizer?