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.