预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

#include"stdafx.h" #include<windows.h> #include<gl/glut.h> voidmyinit(void) { GLfloatlight_position[]={0.0,3.0,1.0,0.0}; GLfloatlight_ambient[]={0.0,1.0,0.0,1.0}; GLfloatlight_diffuse[]={1.0,1.0,1.0,1.0}; GLfloatlight_specular[]={0.8,1.0,0.0,1.0}; GLfloatlmodel_ambient[]={0.0,1.0,1.0,1.0}; GLfloatlocal_view[]={0.0}; glLightfv(GL_LIGHT0,GL_POSITION,light_position); glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient); glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse); glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular); glLightModelfv(GL_LIGHT_MODEL_AMBIENT,lmodel_ambient); glLightModelfv(GL_LIGHT_MODEL_LOCAL_VIEWER,local_view); glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_SMOOTH); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_DEPTH_TEST); } voiddisplay(void) { GLfloatd=-7.0; GLfloatno_mat[]={0.0,0.0,1.0,1.0}; GLfloatmat_ambient[]={0.0,0.1,1.0,1.0}; GLfloatmat_diffus[]={0.6,0.5,0.1,1.0}; GLfloatmat_specular[]={1.0,1.0,1.0,1.0}; GLfloatmat_shininess[]={50.0}; GLfloatno_shininess[]={0.0}; GLfloatlow_shininess[]={5.0}; GLfloathigh_shininess[]={100.0}; GLfloatmat_emission[]={0.3,0.2,0.2,0.0}; glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glPushMatrix(); glTranslatef(-4.5,0.0,d); glMaterialfv(GL_FRONT,GL_AMBIENT,no_mat); glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffus); glMaterialfv(GL_FRONT,GL_SPECULAR,no_mat); glMaterialfv(GL_FRONT,GL_SHININESS,no_shininess); glMaterialfv(GL_FRONT,GL_EMISSION,no_mat); glutSolidOctahedron(); glPopMatrix(); glPushMatrix(); glTranslatef(-1.5,-1.5,d); glMaterialfv(GL_FRONT,GL_AMBIENT,no_mat); glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffus); glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular); glMaterialfv(GL_FRONT,GL_SHININESS,low_shininess); glMaterialfv(GL_FRONT,GL_EMISSION,no_mat); glutSolidSphere(1.0,30,30); glPopMatrix(); glPushMatrix(); glTranslatef(1.5,-1.5,d); glMaterialfv(GL_FRONT,GL_AMBIENT,no_mat); glMaterialfv(GL_FRONT,GL_DIFFUSE,no_ma