|
Objetivos da parte de OpenGL na disciplina de CG O objetivo desta página é prover uma visão geral sobre as possibilidades de desenvolvimento de programas gráficos através da utilização da API OpenGL. A grande maioria deste site é uma adaptação do Tutorial de Jeff Molofee, conforme acreditado no fim desta página.. Ao longo do tempo em que este site se desenvolver, mais e mais fontes e experiências nossas serão adicionadas ao mesmo. Com esta página não queremos que o aluno decore a utilização de todos os recursos de OpenGL, mas sim que tenha um primeiro contato com a API e seus conceitos e seja capaz de utilizá-la mais tarde na programação de aplicações utilizando técnicas de CG que independem da API utilizada, como será feito ao se implementar modelos hierárquicos utilizando OpenGL. Os exemplos relacionados abaixo utilizam na sua maioria outra API, denominada GLUT, que facilita a realização de coisas básicas como abrir uma janela por apresentar uma API independente de plataforma. Isto significa que você vai poder compilar os programas que você escrever usando GLUT em Windows, MacOS, Linux ou qualquer Unix comercial sem modificar nada. Ou quase nada: se você trabalha no mundo Windows, que é um produto e não um padrão, você deve lembrar de utilizar o compilador Microsoft C (Visual C++) para compilar seus programas pois durante o seu desenvolvimento, GLUT teve de ser direcionado especificamente para um dos compiladores comerciais existente para Windows em função da falta de compatibilidade dos mesmos entre si. Para você poder usar Borland C (C++ Builder), Thiago Stein criou um header em C (veja Aula 0) que satisfaz a maioria dos requisitos para isso, mas dificulta um pouco o seu trabalho de programação. Se você vai trabalhar em Linux/Unix isto não é problema: a padronizaçõ deste ambiente lhe permite utilizar qualquer compilador C em qualquer plataforma e compilar tudo praticamente sem problemas...
O que é OpenGL ? OpenGL é uma biblioteca de rotinas gráficas de modelagem, manipulação de objetos e exibição tridimensional que permite a criação de aplicações que usam Computação Gráfica. Seus recursos permitem ao usuário criar objetos gráficos com qualidade, de modo rápido, além de incluir recursos avançados de animação, tratamento de imagens e texturas é possível ter visualização em vários ângulos. A biblioteca OpenGL foi introduzida em 1992 pela Silicon Graphics, no intuito de conceber uma API (Interface de Programação de Aplicação) gráfica independente de dispositivos de exibição. Com isto, seria estabelecida uma ponte entre o processo de modelagem geométrica de objetos, situadas em um nível de abstração mais elevado, e as rotinas de exibição e de processamento de imagens implementadas em dispositivos (hardware) e sistemas operacionais específicos. As função utilizada pelo OpenGL para desenhar um ponto na tela, por exemplo, possui os mesmos nome e parâmetros em todos os sistemas operacionais nos quais OpenGL foi implementada, e produz o mesmo efeito de exibição em cada um destes sistemas. Diante das funcionalidades
providas pelo OpenGL, tal biblioteca tem se tornado um padrão amplamente
utilizado na indústria de desenvolvimento de aplicações.
Este fato tem sido adotado também pela facilidade de aprendizado,
pela estabilidade das rotinas e pelos resultados visuais consistentes para
qualquer sistema de exibição concordante com este padrão.
Diversos jogos, aplicações científicas e comerciais
tem utilizado OpenGL como ferramenta de apresentação de recursos
visuais, principalmente com a adoção deste padrão
por parte dos fabricantes de placas de vídeo destinadas aos consumidores
domésticos.
Entre os recursos gráficos disponíveis pelo OpenGL, podem ser destacados os seguintes:
As especificações do OpenGL não descrevem as interações entre OpenGL e o sistema de janelas utilizado (Windows, X Window etc). Assim, tarefas comuns em uma aplicação, tais como criar janelas gráficas, gerenciar eventos provenientes de mouse e teclado, e apresentação de menus ficam a cargo de bibliotecas próprias de cada sistema operacional.
Material das Aulas Básicas
OpenGL para outras Linguagens de Programação e Outras APIs Esta parte da matéria descreve outras APIs diferentes da API OpenGL tradicional, implementada em "C". Alpresentamos aqui agumas que são simplesmente interfaces para interfacear a API OpenGL tradicional de forma confortável com linguagens de programação bastante diferentes das linguagens tradicionais (lembre-se que vimos nos exemplos do tutorial acima como interfacear OpenGL com Delphi e outras linguagens compiladas "tipo-C"), outras são APIs diferentes e que oferecem uma alternativa ao uso de OpenGL, como SDL. JavaGL - Uma API em Java que emula OpenGLJun - Uma API em Smalltalk que emula OpenGLSDL - Uma nova API de altíssima perfomance para jogos
Material Adicional de OpenGL Módulo 1: Operações em 3D com OpenGL (alguma coisa repetida)Módulo 2: Trabalhando com Fontes e Texto de Diversos Tipos em OpenGLMódulo 3: Trabalhando com Texturas, Transparência e IluminaçãoMódulo 4: Trabalhando com Técnicas Avançadas de IluminaçãoMódulo 5: Superfícies Curvas e MolesMódulo 6: Trabalhando com Modelos e Conjuntos de ObjetosMódulo 7: Efeitos Especiais de AnimaçãoMódulo 8: Sons, Entrada Especial de Dados e Outros Efeitos AvançadíssimosDe Onde vem este Tutorial ?
Once
you have surpassed the code on this site or even before, check out more
professional sites, such as
Nate's Programming
Page or
OpenGL.org. Although Nate's
site is inactive at the moment, it contains tons of excellent example programs,
that are well written, and really show off what OpenGL is capable of. Also
be sure to visit the many OpenGL links on my page. Each site I link to
is an incredible asset the OpenGL community.
|
|||||||||||||||||||