OpenGL

By lmmoreira

Inicio agora meus estudos sobre OpenGL, por isto lhes peço ajuda na crítica dos conceitos que venho os apresentar, pois são tão novos para mim quanto para qualquer leigo no assunto.

Este é só um post de apresentação, espero a partir daqui iniciar mais uma série, das várias que iniciei neste blog até hoje. Série onde tentarei lhes apresentar técnicas de programação, conceitos, boas práticas entre outros.

Como disse conto também com a ajuda de todos no compartilhamento de informação.

Começo dizendo que OpenGL não é uma linguagem de programação e nem uma técnologia, mas sim uma biblioteca assim como qualquer outra tratamando de imagens. O OpenGL não pode ser programado por sí só ele necessita de uma outra ferramenta que o manuseie, esta sim uma linguagem de programação qualquer.

OpenGL é livre ou seja, suas aplicações que fazem referência ao mesmo não necessitam de licença ou qualquer outra coisa do tipo em relação ao OpenGL.

O OpenGL foi criado com o objetivo de criar um padrão para o tratamento de imagens o qual antes de sua criação era feito de uma forma diferente por cada fabricante de placa de vídeo, desta forma, era impossível criar uma aplicação que rodasse em todas as placas de vídeo perfeitamente. Foi criado em C pela empresa Silicon Graphics que viu a necessidade escrita acima e atendeu o pedido de todos os desenvolvedores, então após tornar o OpenGL público agora ele é mantido por um consórcio de empresas formado por 3DLabs, ATI, Dell, Evans&Sutherland, HP, IBM, Intel, Matrox, NVIDIA, Sun e, logicamente, a Silicon Graphics estas que determinam o futuro do OpenGL e dos padrões de desenvolvimento vídeo.

A implementação do OpenGL não é um padrão. Cada linguagem o implementa de uma maneira por exemplo, o Visual Basic lhe fornece algumas dll que ao instalar na sua plataforma torna possível o uso do OpenGL já o Delphi caso sua instalação já não tenha implementado você pode instalar em forma de DPR e DCU (forma típica do Delphi). Uma coisa que deve se tomar cuídado quanto a estas diferentes implementações do OpenGL é que alguns desenvolvedores extendem as funcionalidades do OpenGL por conta própria saindo do padrão. Logo ao desenvolver é sempre bom ter bem dividido em sua cabeça oque é o padrão e o que é extensão, pois é provável que as extensões não fucionem em todas as ferramentas de desenvolvimeto e em todas a plataformas.

Outra coisa que não podemos confundir é o OpenGL com suas bibliotecas. O OpenGL é um conjunto de funções complexo então desenvolvedores criaram bibliotecas que encapsulam esta complexidade e facilitam o uso das mesmas, estas bibliotecas sim atendem os padrões e algumas até fazem parte do consórcio mantenedor do OpenGL.

Por exempo:

GLU – OpenGL Utility Library

Facilita o uso de funções com criação de matrizes, visualização entre outras funções de mais baixo nível, funções desta biblioteca tem o prefixo GLU o que torna mais fácil a identificação das mesmas.

GLUT – OpenGL Utility Toolkit

Traz elementos vísuais como pop-ups, menus e etc. Prefixo GLUT.

GLX – OpenGL Extension to the X Window System

Implementa funções de interação com o gerênciador de janelas de sua máquina.

FSG – Fahrenheit Scene Graph

Trás elementos para criação de aplicações gráficas e cenas 3D.

Serei mais específico com estas quatro bibliotecas no momento em que formos utiliza-las. Então por enquanto fica apenas como informação.

É legal observar que OpenGL está trabalhando por baixo de quase tudo que se refere a desenvolvimento gráfico. Jogos são implementados com OpenGL, ferramentas de desenvolvimento de Imagens e Vídeos são IDEs que facilitam a aplicação do OpenGL, eu não posso garantir se o 3D Studio é mas o Blender que é o seu correspondente Open Source eu lhes dou certeza que é quase inteiramente OpenGL.

Portanto amigo se você deseja iniciar na carreira de tratamento de imagens, desenvolvimento de jogos ou qualquer coisa do tipo pense com carinho na possíbilidade de se aprofundar no OpenGL pois com certeza isto será não só necessário como um diferencial.

Máquina de Estados

Muitas vezes em tutoriais simples como este ouvimos falar que OpenGL é uma máquina de estados e não sabemos o que é isto. O conceito é tão simples quanto perturbador, máquina de estados que dizer que o OpenGL adotará as últimas características específicadas até que alguem diga diferênte. Se você mandar que as linhas sejam desenhadas com tamanho dez pixels, todas as linhas serão desenhadas assim até que alguem diga ao contrário. Como eu disse este conceito pode confundir muito desenvolvedores que estão iniciando. Outro ponto a frisar é que não é tão simples assim, para aqueles que não se deixam amedrontar. Na minha opinião é uma das partes mais complicadas no desenvovimento de sistemas, bom, esta é a minha opinião.

Como disse, estou iniciando meus estudos agora e fiz esta apresentação mais para aprender com vocês que quiserem ajudar sobre este assunto que julgo tão cruel.

Lembre-se amigos os blogs são ótimas ferramentas para apresentações porém, assim como um cão o livro é o melhor amigo do homem e isto nunca vai mudar.

Obrigado a todos

Caso tenham alguma sugestão ou dica comentem que ajudarão a mim e a outros.

Tags: , , , ,

Deixe uma resposta