Introdução ao Desenvolvimento um Motor Gráfico 3D com utilização
Transcrição
Introdução ao Desenvolvimento um Motor Gráfico 3D com utilização
INTRODUÇÃO AO DESENVOLVIMENTO DE MOTOR GRÁFICO 3D UTILIZANDO A API OPENGL Thiago Bragante Macedo 1 Ricardo Czelusniak 2 RESUMO: Com o presente artigo, objetivou-se demonstrar, de forma teórica e prática os benefícios de desenvolver um motor gráfico 3D, para a programação de aplicativos. Um motor gráfico posiciona-se um nível acima da API gráfica, neste caso a OpenGL, que por sua vez está um nível acima da programação direta do hardware. Definem-se quais serão as funções que o motor terá, baseando-se no objetivo deste em relação ao software final. Neste caso serão apresentados três tipos de funções: iluminação, sombra e carregamento de modelos complexos. PALAVRAS-CHAVE: Computação Gráfica 3D, Motor Gráfico, OpenGL. INTRODUÇÃO Nos anos oitenta ainda eram muito simples as tecnologias, de software e de hardware, destinadas ao usuário final. A programação era feita diretamente para o hardware, o que tornava o processo de desenvolvimento, demorado e difícil. Com o crescimento de mercado de placas aceleradoras 3D de vídeo, a demanda por novos sistemas, e em grande parte de novos jogos, cresceu proporcionalmente. As APIs trouxeram um avanço na forma de se programar sistemas gráficos. Estas interfaces de programação abstraiam para o programador a tarefa de trabalhar diretamente com o hardware, ou seja, criou-se uma nova camada no desenvolvimento desses sistemas, o que os tornou mais fáceis de programar. Com a ajuda do paradigma de programação orientada a objetos (POO), houve o aparecimento de um novo tipo de interface de programação conhecido 1 2 Engenharia de Computação, 5ª série, Universidade Estadual de Ponta Grossa Professor do Departamento de Informática, Universidade Estadual de Ponta Grossa como Motor Gráfico. Este novo tipo de API tenta deixar ainda mais abstrata a programação de sistemas gráficos. Ela abstrai os métodos, de forma a deixar o desenvolvimento destes softwares mais direcionado. Em outras palavras pode-se dizer que um motor gráfico é uma, ou um grupo, de bibliotecas que contém um apanhado de procedimentos, que realizam vários tipos de funções, alguns deles descritos nas sessões anteriores (iluminação, sombreamento e leitura e carregamento de modelos). Sendo assim uma API desse tipo pode conter um método para iluminar uma cena, enquanto no OpenGL, por exemplo, ter-se-ia que utilizar em torno de cinco procedimentos. METODOLOGIA Primeiramente foi levantada toda uma bibliografia sobre a teoria e história envolvendo motores gráficos 3D, OpenGL e assuntos diretamente relacionados, como iluminação, sombreamento e o processo de leitura e carregamento de modelos complexos. Em seguida foram estudadas e detalhadas algumas formas de se desenvolver funções que formão uma biblioteca, ou API. Desenvolveu-se ainda, em forma de código-fonte na linguagem C/C++, alguns algoritmos destas funções. RESULTADOS E DISCUSSÕES Foi desenvolvido um software gráfico (Figura 1) utilizando como base o motor gráfico desenvolvido durante o estudo. Não se pode fazer um comparativo de desempenho, já que o software traz a função de mostrar em cena, modelos formados por centenas de triângulos, o que seria inviável programar um a um. Sendo assim demonstra-se que o motor gráfico, já traz um diferencial, que é a leitura de estruturas complexas, e renderização de modelos formados por muitos triângulos. Figura 1 – Screenshot de um aplicativo utilizando o motor gráfico desenvolvido (modelos complexos e iluminação) CONCLUSÃO Houveram algumas dificuldades no estudo das estruturas de cada modelo. Alguns modelos têm sua estrutura fechada, e pouca documentação. Pode-se perceber, não só pelo estudo, mas pelo mercado de desenvolvimento 3D, que os motores gráficos facilitam o trabalho de um aplicativo tridimensional. Assim como em qualquer construção civil, o software 3D, deve ter uma base sólida, ou seja, deve-se ter um motor gráfico muito bem planejado e desenvolvido, pois assim, além de facilitar a programação o software fica estável quanto a parte gráfica. REFERÊNCIAS AZEVEDO, Eduardo; CONCI, Aura, Computação Gráfica – Teoria e Prática. Rio de Janeiro, Elsevier: 2003. EBERLY, David H.. 3D Game Engine. San Franscisco, California: Morgan Kaufmann Publishers, 2001. WRIGHT JR., Richard S.; LIPCHAK, Benjamin. OpenGL Super Bible Third Edition. Indianápolis, Indiana: Sams Publishing, 2004.