Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-SemDerivados CC BY-NC-ND. Você possui a permissão para visualizar e compartilhar, desde que atribua os créditos do autor. Não poderá alterá-los e nem utilizá-los para fins comerciais.
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
Cursos / Jogos Digitais / Desenvolvimento com Motores de Jogos I / Aula
Apesar da facilidade que ambas as APIs trouxeram aos desenvolvedores gráficos, ainda mostrava ser proveitosa a existência de novas camadas acima dessas APIs, contribuindo para que os desenvolvedores pudessem atingir seus objetivos de maneira mais simples e rápida. Nesse novo nível de abstração, estão as bibliotecas que encapsulam o OpenGL ou o DirectX e permitem ao programador realizar as tarefas de um modo ainda mais simples. A fim de dar um exemplo mais prático, vejamos um trecho de código para desenhar um cubo em OpenGL, como na Listagem 01:
// FRENTE
glBegin(GL_POLYGON);
glVertex3f( 0.5, -0.5, -0.5 );
glVertex3f( 0.5, 0.5, -0.5 );
glVertex3f( -0.5, 0.5, -0.5 );
glVertex3f( -0.5, -0.5, -0.5 );
glEnd();
// TRASEIRA
glBegin(GL_POLYGON);
glVertex3f( 0.5, -0.5, 0.5 );
glVertex3f( 0.5, 0.5, 0.5 );
glVertex3f( -0.5, 0.5, 0.5 );
glVertex3f( -0.5, -0.5, 0.5 );
glEnd();
// DIREITA
glBegin(GL_POLYGON);
glVertex3f( 0.5, -0.5, -0.5 );
glVertex3f( 0.5, 0.5, -0.5 );
glVertex3f( 0.5, 0.5, 0.5 );
glVertex3f( 0.5, -0.5, 0.5 );
glEnd();
// ESQUERDA
glBegin(GL_POLYGON);
glVertex3f( -0.5, -0.5, 0.5 );
glVertex3f( -0.5, 0.5, 0.5 );
glVertex3f( -0.5, 0.5, -0.5 );
glVertex3f( -0.5, -0.5, -0.5 );
glEnd();
// TOPO
glBegin(GL_POLYGON);
glVertex3f( 0.5, 0.5, 0.5 );
glVertex3f( 0.5, 0.5, -0.5 );
glVertex3f( -0.5, 0.5, -0.5 );
glVertex3f( -0.5, 0.5, 0.5 );
glEnd();
// BASE
glBegin(GL_POLYGON);
glVertex3f( 0.5, -0.5, -0.5 );
glVertex3f( 0.5, -0.5, 0.5 );
glVertex3f( -0.5, -0.5, 0.5 );
glVertex3f( -0.5, -0.5, -0.5 );
glEnd();
glFlush();
glutSwapBuffers();
Wow! E isso é só a parte de desenho em si. Esse cubo não tem uma textura, não tem cores, não tem nada. E ainda mais, não estamos mostrando a parte de criação da janela, de inicialização da câmera, de posicionamento da câmera, blá-blá-blá... Ah! Estamos falando apenas de todos os detalhes gráficos da coisa! Imagina que também temos a parte de áudio, de física, de inteligência artificial... Complicado, né?! Porém é bem mais fácil que aquele Assembly, você concorda?
Que tal discutir com seus colegas no fórum suas impressões sobre ambos?
Versão 5.3 - Todos os Direitos reservados