Imagem 3d
UTILIZANDO DLL’S DO OPENGL E CRIANDO
UMA IMAGEM 3D COM INTERAÇÃO DO USUARIO
*/
#include
#include
GLfloat tx,ty;
GLfloat angle, fAspect; static int rotacao1 = 0; static int rotacao2 = 0;
// Função callback chamada para fazer o desenho void Desenha(void)
{
// Limpa a janela e o depth buffer glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// Desenha glRotatef (rotacao1, 0.0, 1.0, 0.0); glRotatef (rotacao2, 1.0, 0.0, 0.0); glColor3f(1.0f,0.0f,0.0f); glutSolidIcosahedron();
glutSwapBuffers();
}
// Inicializa parâmetros de rendering void Inicializa (void)
{
GLfloat luzAmbiente[4]={0.2,0.2,0.2,1.0};
GLfloat luzDifusa[4]={0.7,0.7,0.7,1.0}; // "cor"
GLfloat luzEspecular[4]={1.0, 1.0, 1.0, 1.0};// "brilho"
GLfloat posicaoLuz[4]={10.0, 70.0, 20.0, 1.0};
// Capacidade de brilho do material
GLfloat especularidade[4]={1.0,1.0,1.0,1.0};
GLint especMaterial = 60;
// Especifica que a cor de fundo da janela será preta glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
// Habilita o modelo de colorização de Gouraud glShadeModel(GL_SMOOTH); // Define a refletância do material glMaterialfv(GL_FRONT,GL_SPECULAR, especularidade);
// Define a concentração do brilho glMateriali(GL_FRONT,GL_SHININESS,especMaterial); // Ativa o uso da luz ambiente glLightModelfv(GL_LIGHT_MODEL_AMBIENT, luzAmbiente);
// Define os parâmetros da luz de número 0 glLightfv(GL_LIGHT0, GL_AMBIENT, luzAmbiente); glLightfv(GL_LIGHT0, GL_DIFFUSE, luzDifusa ); glLightfv(GL_LIGHT0, GL_SPECULAR, luzEspecular ); glLightfv(GL_LIGHT0, GL_POSITION, posicaoLuz );
// Habilita a definição da cor do material a partir da cor corrente glEnable(GL_COLOR_MATERIAL); //Habilita o uso de iluminação glEnable(GL_LIGHTING); // Habilita a luz de número 0 glEnable(GL_LIGHT0); // Habilita o depth-buffering glEnable(GL_DEPTH_TEST); angle=1;
}
// Função usada para especificar o volume de visualização
void