/二维评价器:生成几何坐标和纹理坐标/ Lighting(); glEnable(GL_TEXTURE_2D); glEnable(GL_MAP2_TEXTURE_COORD_2); glEnable(GL_MAP2_VERTEX_3); glEnable(GL_AUTO_NORMAL); glEnable(GL_NORMALIZE); /光照/ glMapGrid2f(30,0,1,30,0,1); glPushMatrix(); glScaled(1.2,1.2,1.2); glRotated(45,0,0,1); glRotated(45,1,1,1); glEvalMesh2(GL_FILL,0,30,0,30); glPopMatrix(); /绘制/ glDisable(GL_MAP2_VERTEX_3); glDisable(GL_MAP2_TEXTURE_COORD_2); glDisable(GL_TEXTURE_2D); glDisable(GL_AUTO_NORMAL); glDisable(GL_NORMALIZE); glDisable(GL_LIGHTING); /挂起/ }else{ MessageBox(NULL,\ } }
void COpenGL::Lighting() /编辑光照函数/ { GLfloat lightAmb[]={0.2,0.2,0.2,1}; GLfloat lightPos[]={1,1,2,1}; GLfloat matDiffuse[]={0,0.7,0.7,1}; GLfloat matSpecular[]={1,1,1,1}; GLfloat matShininess[]={60}; glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glLightfv(GL_LIGHT0,GL_AMBIENT,lightAmb); glLightfv(GL_LIGHT0,GL_POSITION,lightPos); glMaterialfv(GL_FRONT,GL_DIFFUSE,matDiffuse); glMaterialfv(GL_FRONT,GL_SPECULAR,matSpecular); glMaterialfv(GL_FRONT,GL_SHININESS,matShininess); }
AUX_RGBImageRec * COpenGL::LoadBMP(char* fileName) { FILE *file=NULL; if (!fileName){ return NULL; } file=fopen(fileName,\
/载入文件格式为bmp图片/
if (file){ fclose(file); return auxDIBImageLoad(fileName); } return NULL; }
int COpenGL::LoadTextureFromFile(char *filename, GLuint *hTexture) { int Status=FALSE; AUX_RGBImageRec *textureImage=LoadBMP(filename); // Load The Bitmap, Check For Errors, If Bitmap's Not Found Quit if (textureImage){ Status=TRUE; glGenTextures(1,hTexture); // Typical Texture Generation Using Data From The Bitmap glBindTexture(GL_TEXTURE_2D, *hTexture); glTexImage2D(GL_TEXTURE_2D, 0, 3, textureImage->sizeX, textureImage->sizeY,0,GL_RGB,GL_UNSIGNED_BYTE, textureImage->data); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); } if (textureImage){ if (textureImage->data){ free(textureImage->data); } free(textureImage); }
return Status;