Programação com OpenGL/Modern OpenGL Tutorial rascunhos: diferenças entre revisões

[edição verificada][edição verificada]
Conteúdo apagado Conteúdo adicionado
Linha 44:
 
void reshape(int w, int h){ //Função chamada toda vez que a janela é redimensionada
glViewport(0,0,w,h); // Ajustando o visualizador
glMatrixMode(GL_PROJECTION); // Trabalhando com a matriz de projeção
glLoadIdentity(); // Iniciando a Matriz de cima
gluPerspective(60, (GLfloat)w / (GLfloat)h, 0.1,1000.0); //Corrigindo a perspectiva
//glortho(-25,25,-2,2,0.1,100); //Método alternativo de fazer o mesmo
glMatrixMode(GL_MODELVIEW);// Voltando a trabalhar com a matriz de modelo
}
 
void drawCar(){ //Função de movimentação
glPushMatrix(); //Abrindo as matrizes do modelo
glTranslatef(0,-40.00,-105); // Funçaõ para movimentar, X, Y, Z
glColor3f(1.0,0.23,0.27); //Função de para definir cores R,G, B
glScalef(0.5,0.5,0.5); // Função da escalonar
glRotatef(carrot,0,1,0); //Função para rodar grau, e ( x, y, z = sob os eixos que ocorrerá a movimentação)
glCallList(car); //Chamando o nosso objeto incializado por numero
glPopMatrix(); // Fechando a matriz
carrot = carrot+0.6; //Aumentando em mais 0.6 o valor do carrot
if(carrot>360)carrot=carrot-360; //Se o carrot passar de 360º volte a 0
}
 
void display(void){ //Função chamada a cada quadro
glClearColor(0.0,0.0,0.0,1.0); //Cor de fundo
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Limpar tela
glLoadIdentity(); //Carregar as entidades
drawCar(); //chamada da função acima.
glutSwapBuffers(); //auxiliar na troca dos buffers(trabalha com a memoria)
}
 
int main(int argc, char **argv){ // Função principal
glutInit(&argc, argv); //Incializando o GLUT
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB|GLUT_DEPTH); //Definindo o modo, memoria, em RGB, Com profundidade
glutInitWindowSize(800,450); // Tamanho da Janela
glutInitWindowPosition(20,20); //Posição inicial da janela
glutCreateWindow("ObjLoader"); //Nome da Janela
glutReshapeFunc(reshape); //Chama a função quando a tela for redimensionada
glutDisplayFunc(display); //Chama a função a cada frame da tela
glutIdleFunc(display); //Chama esta função quando não estiver fazendo nada.
loadObj("arquivo.obj"); //Carrega o arquivo .obj
glutMainLoop(); // Cria um loop que volta para as funções anteriores
}
</source>