Sie sind auf Seite 1von 3

# include <GL/freeglut.

h>
# include <math.h>

#define PI 3.14159

static int estadoAnimacion=0;


static int periodoAnimacion=100;
int x=-5;
int R=6;

int nroPuntos=100;

static float angulo=0;

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();

void resize(int w, int h){


glViewport(0,0,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
//glFrustum(-5.0,5.0,-5.0,5.0,5,100);
gluPerspective(60.0,(float)w/(float)h,1.0,20.0);
glMatrixMode(GL_MODELVIEW);
}

void keyInput(unsigned char key,int x, int y){


switch(key){
case 27:
exit(0);
break;
case 32: //barra espaciadora
if(estadoAnimacion){
estadoAnimacion=0;
}else{
estadoAnimacion=1;

}
break;
default:
break;
}
}

void specialKeyInput(int key, int x, int y){


switch(key){
case GLUT_KEY_UP:

break;
default:
break;
}

int main(int argc, char **argv){


glutInit(&argc,argv);

glutInitContextVersion(4,3);
glutInitContextProfile(GLUT_COMPATIBILITY_PROFILE);

glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA|GLUT_DEPTH);

glutInitWindowSize(500,500);
glutInitWindowPosition(100,100);

glutCreateWindow("Primera App OpenGL");

glutDisplayFunc(dibujarEscena);
glutReshapeFunc(resize);
glutKeyboardFunc(keyInput);

glutSpecialFunc(specialKeyInput);

setup();

glutMainLoop();
}

Das könnte Ihnen auch gefallen