Beruflich Dokumente
Kultur Dokumente
h>
# include <math.h>
#define PI 3.14159
int nroPuntos=100;
void setup(void){
glClearColor(1.0,1.0,1.0,0.0);
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING);
float luzAmbiente[]={0.0,0.0,0.0,1.0};
float luzDifuso[]={1.0,1.0,1.0,1.0};
float luzEspecular[]={1.0,1.0,1.0,1.0};
float luzAmbGlobal[]={0.2,0.2,0.2,1.0};
float luzPosicion[]={0.0,1.5,3.0,1.0};
glLightfv(GL_LIGHT0,GL_AMBIENT,luzAmbiente);
glLightfv(GL_LIGHT0,GL_DIFFUSE,luzDifuso);
glLightfv(GL_LIGHT0,GL_SPECULAR,luzEspecular);
glLightfv(GL_LIGHT0,GL_POSITION,luzPosicion);
glEnable(GL_LIGHT0);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT,luzAmbGlobal);
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE);
glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER,GL_TRUE);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY)
void dibujarEscena(void){
float matAmbiente[]={0.9,0.0,0.0,1.0};
float matDifuso[]={0.9,0.9,0.9,1.0};
float matEspecular[]={1.0,1.0,1.0,1.0};
glClear(GL_COLOR_BUFFER_BIT||GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
gluLookAt(0.0,3.0,3.0,0.0,0.0,0.0,0.0,1.0,0.0);
glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT,matAmbiente);
glMaterialfv(GL_FRONT_AND_BACK,GL_DIFFUSE,matDifuso);
glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,matEspecular);
glutSolidSphere(2.0,40.0,40.0);
glutSwapBuffers();
}
break;
default:
break;
}
}
break;
default:
break;
}
glutInitContextVersion(4,3);
glutInitContextProfile(GLUT_COMPATIBILITY_PROFILE);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA|GLUT_DEPTH);
glutInitWindowSize(500,500);
glutInitWindowPosition(100,100);
glutDisplayFunc(dibujarEscena);
glutReshapeFunc(resize);
glutKeyboardFunc(keyInput);
glutSpecialFunc(specialKeyInput);
setup();
glutMainLoop();
}