Baixe o app para aproveitar ainda mais
Prévia do material em texto
Fundamentos de Computação Gráfica Prof. Sérgio Piter – 2014 E-mail: prof.sergiopiter@gmail.com Introdução a Biblioteca Gráfica OpenGL Introdução à OpenGL Ø OpenGL(Open Graphics Library) é definida como "um programa de interface para hardware gráfico". Na verdade, OpenGL é uma biblioteca de rotinas gráficas e de modelagem, bi (2D) e tridimensional (3D), extremamente portável e rápida. Ø Usando OpenGL é possível criar gráficos 3D com uma qualidade visual próxima de um ray tracer. Entretanto, a maior vantagem na sua utilização é a rapidez, uma vez que usa algoritmos cuidadosamente desenvolvidos e otimizados pela Silicon Graphics, Inc. Em 1992, ela e líder mundial em Computação Gráfica e Animação em Ø Biblioteca Gráfica – É 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. 2 Prof. Sérgio Piter Introdução à OpenGL 3 Prof. Sérgio Piter Ø A OpenGL pode ser utilizada em qualquer sistema operacional, para produzir qualquer tipo de aplicativo, desde games até ferramentas de modelagem 3D ou programas de processamento de superfícies matemáticas. Ø 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. Ø OpenGL não é uma linguagem de programação, é uma poderosa e sofisticada API (Application Programming Interface) para criação de aplicações gráficas 2D e 3D. Introdução a OpenGL Ø As aplicações OpenGL variam de ferramentas CAD a programas de modelagem usados para criar personagens para o cinema, tal como um dinossauro. Ø Além do desenho de primitivas gráficas, tais como linhas e polígonos, OpenGL dá suporte a iluminação, colorização, mapeamento de textura, transparência, animação, entre muitos outros efeitos especiais. Ø Atualmente, OpenGL é reconhecida e aceita como um padrão API para desenvolvimento de aplicações gráficas 3D em tempo real. Prof. Sérgio Piter 4 Utilização Ø Como uma API, OpenGL segue a convenção de chamada da linguagem C. Isto significa que programas escritos em C podem facilmente chamar funções desta API, tanto porque estas foram escritas em C, como porque é fornecido um conjunto de funções C intermediárias que chamam funções escritas em assembler ou outra linguagem [Wright 2000]. Ø Apesar de OpenGL ser uma biblioteca de programação "padrão", existem muitas implementações desta biblioteca, por exemplo, para Windows e para Linux. A implementação utilizada no ambiente Linux é a biblioteca Mesa. Ø Também existem implementações para os compiladores Visual C++, Borland C++, Dev-C++, Delphi e Visual Basic. Para obter as bibliotecas e a documentação de cada implementação acesse http://www.opengl.org/. Prof. Sérgio Piter 5 Recursos Gráficos Ø Entre os recursos gráficos disponíveis pelo OpenGL, podem ser destacados os seguintes: ü Modos de desenho de pontos; ü Ajuste de largura de linhas; ü Aplicação de transparência; ü Ativação/desativação de serrilhamento (aliasing); ü Mapeamento de superfícies com textura; ü Seleção de janela de desenho; ü Manipulação de fontes/tipos de iluminação e sombreamento; ü Transformação de sistemas de coordenadas; ü Transformações em perspectiva; ü Combinação de imagens (blending); Prof. Sérgio Piter 6 Exemplo de 2D e 3D com a OpenGl Prof. Sérgio Piter 7 Exemplo de Figuras Primitivas Prof. Sérgio Piter 8 Industria de Jogos Ø A indústria de jogos, em particular, começou a adotar cada vez mais a API Direct3D como padrão devido à sua quantidade de opções para desenvolvimento de efeitos visuais, e ao fato de que a maior parte dos jogadores utiliza o sistema Windows em seu PC. Ø A maior parte dos games mais recentes e complexos graficamente utiliza a biblioteca para representar ambientes densos, extensos e bonitos, com um grau de realismo crescente Prof. Sérgio Piter 9 Exemplo OpenGL Prof. Sérgio Piter 10 Exemplo de Código usando OpenGL // A Simple OpenGL Project // // Simples exemplo utilizando a Biblioteca OpenGL #include <glut.h> void Draw() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 1.0, 1.0); glBegin(GL_LINES); glVertex3f(0.25, 0.25, 0.0); glVertex3f(0.75, 0.75, 0.0); glEnd(); glFlush(); } void Initialize() { glClearColor(0.0, 0.0, 0.0, 0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); } int main(int iArgc, char** cppArgv) { glutInit(&iArgc, cppArgv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(250, 250); glutInitWindowPosition(200, 200); glutCreateWindow("XoaX.net"); Initialize(); glutDisplayFunc(Draw); glutMainLoop(); return 0; } Prof. Sérgio Piter 11 “É impossível para um homem aprender aquilo que ele acha que já sabe” –Epíteto Prof. Sérgio Piter 12
Compartilhar