資源簡(jiǎn)介
簡(jiǎn)單的OpenGL實(shí)例,基于GLUT庫(kù)c語(yǔ)言實(shí)現(xiàn),畫出一個(gè)立方體,在六個(gè)面貼上紋理,初學(xué)者可以看看

代碼片段和文件信息
#define?GLUT_DISABLE_ATEXIT_HACK
#if?defined(__APPLE__)
#include?
#else
#include?
#include?“GL/glut.h“
#endif
const?int?width?=?800;
const?int?height?=?600;
GLfloat?cubic_size?=?1.0f;
GLfloat?xRotation?=?0.0f?yRotation?=?0.0f;
const?GLfloat?rotSpeed?=?64.0;
bool?bLButtonDown?=?false;
GLint?lastLx?lastLy;
GLuint?iTexture[]={000000};
const?GLfloat?lightAmbient[]?=?{0.5f?0.5f?0.5f?1.0f};
const?GLfloat?lightDiffuse[]?=?{1.0f?1.0f?1.0f?1.0f};
const?GLfloat?lightSpecular[]?=?{1.0f?1.0f?1.0f?1.0f};
const?GLfloat?lightPosition[]?=?{1.0f?1.0f?2.0f?1.0f};
const?GLfloat?MatAmbient[]??=?{0.192250?0.192250?0.192250?1.000000};//環(huán)境反射
const?GLfloat?MatDiffuse[]??=?{0.507540?0.507540?0.507540?1.000000};//漫反射
const?GLfloat?MatSpecular[]?=?{0.508273?0.508273?0.508273?1.000000};//鏡面反射
const?GLfloat?MatShineness?=?21.200001;
//?need?to?define?if?gl.h?version?1.2.
#ifndef?GL_LIGHT_MODEL_COLOR_CONTROL
#define?GL_LIGHT_MODEL_COLOR_CONTROL?0x81F8
#endif
#ifndef?GL_SEPARATE_SPECULAR_COLOR
#define?GL_SEPARATE_SPECULAR_COLOR?0x81FA
#endif
void?init()
{
glEnable(GL_DEPTH_TEST); //?Enables?Depth?Testing
glDepthFunc(GL_LEQUAL); //?The?Type?Of?Depth?Testing?To?Do
//?set?the?texture
AUX_RGBImageRec?*image[6];
image[0]?=?auxDIBImageLoad(“woodbox.bmp“);
image[1]?=?auxDIBImageLoad(“pattern.bmp“);
image[2]?=?auxDIBImageLoad(“hrt-stone.bmp“);
image[3]?=?auxDIBImageLoad(“stone.bmp“);
image[4]?=?auxDIBImageLoad(“diamond_plate_texture.bmp“);
image[5]?=?auxDIBImageLoad(“gray.bmp“);
for(int?i=0;?i<6;i++)
{
if?(image[6]?!=?NULL)?{
glPixelStorei(GL_UNPACK_ALIGNMENT?1);
glGenTextures(6?&iTexture[i]);
glBindTexture(GL_TEXTURE_2D?iTexture[i]);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MIN_FILTERGL_LINEAR);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MAG_FILTERGL_LINEAR);
glTexImage2D(GL_TEXTURE_2D?0?GL_RGB?image[i]->sizeX?image[i]->sizeY?0?
?GL_RGB?GL_UNSIGNED_BYTE?image[i]->data);
//glTexEnvf(GL_TEXTURE_ENV?GL_TEXTURE_ENV_MODE?GL_DECAL);
glHint(GL_PERSPECTIVE_CORRECTION_HINT?GL_NICEST);
glEnable(GL_TEXTURE_2D);
free(image[i]->data);
free(image[i]);
}
}
glEnable(GL_LIGHT0);
glLightfv(GL_LIGHT0?GL_AMBIENT?lightAmbient);
glLightfv(GL_LIGHT0?GL_DIFFUSE?lightDiffuse);
glLightfv(GL_LIGHT0?GL_SPECULAR?lightSpecular);
glLightfv(GL_LIGHT0?GL_POSITION?lightPosition);
glMaterialfv(GL_FRONT?GL_AMBIENT?MatAmbient);
glMaterialfv(GL_FRONT?GL_DIFFUSE?MatDiffuse);
glMaterialfv(GL_FRONT?GL_SPECULAR?MatSpecular);
glMaterialf(GL_FRONT?GL_SHININESS?MatShineness);
glEnable(GL_LIGHTING);
glEnable(GL_NORMALIZE);
glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL?GL_SEPARATE_SPECULAR_COLOR);
}
/*?Draw?the?window?-?this?is?where?all?the?GL?actions?are?*/
void
display(void)
{
glClear(GL_COLOR_BUFFER_BIT?|?GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glPushMa
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????786486??2013-11-20?13:52??Glut_立方體紋理\Debug\diamond_plate_texture.bmp
?????文件?????221184??2013-09-23?16:43??Glut_立方體紋理\Debug\glut32.dll
?????文件??????28728??2013-09-23?16:43??Glut_立方體紋理\Debug\glut32.lib
?????文件?????217414??2015-12-01?14:07??Glut_立方體紋理\Debug\gray.bmp
?????文件?????233547??2015-12-01?17:04??Glut_立方體紋理\Debug\HelloGlut.exe
?????文件?????368084??2015-12-01?17:04??Glut_立方體紋理\Debug\HelloGlut.ilk
?????文件??????25982??2015-12-01?17:04??Glut_立方體紋理\Debug\HelloGlut.obj
?????文件????3684572??2015-11-30?19:14??Glut_立方體紋理\Debug\HelloGlut.pch
?????文件?????623616??2015-12-01?17:04??Glut_立方體紋理\Debug\HelloGlut.pdb
?????文件????1966134??2013-11-20?13:24??Glut_立方體紋理\Debug\hrt-stone.bmp
?????文件?????232374??2015-12-01?14:11??Glut_立方體紋理\Debug\leather.bmp
?????文件????2359350??2013-11-20?13:25??Glut_立方體紋理\Debug\pattern.bmp
?????文件?????145254??2015-12-01?14:11??Glut_立方體紋理\Debug\stone.bmp
?????文件?????222208??2015-12-01?17:04??Glut_立方體紋理\Debug\vc60.idb
?????文件??????77824??2015-12-01?17:04??Glut_立方體紋理\Debug\vc60.pdb
?????文件??????66614??1999-09-25?20:19??Glut_立方體紋理\Debug\woodbox.bmp
?????文件?????154054??2015-12-01?14:11??Glut_立方體紋理\Debug\yellow.bmp
?????文件?????786486??2013-11-20?13:52??Glut_立方體紋理\diamond_plate_texture.bmp
?????文件??????62175??1999-02-08?13:11??Glut_立方體紋理\GL\fgl.h
?????文件???????7483??1999-02-08?13:11??Glut_立方體紋理\GL\fglu.h
?????文件??????10473??1999-02-08?13:11??Glut_立方體紋理\GL\fglut.h
?????文件???????5287??1999-02-08?13:11??Glut_立方體紋理\GL\glsmap.h
?????文件??????27670??2000-12-13?00:22??Glut_立方體紋理\GL\glut.h
?????文件???????4190??1999-02-16?10:55??Glut_立方體紋理\GL\glutf90.h
?????文件???????9119??2000-12-12?23:07??Glut_立方體紋理\GL\tube.h
?????文件?????221184??2013-09-23?16:43??Glut_立方體紋理\glut32.dll
?????文件??????28728??2013-09-23?16:43??Glut_立方體紋理\glut32.lib
?????文件?????217414??2015-12-01?14:07??Glut_立方體紋理\gray.bmp
?????文件???????7164??2015-12-01?17:04??Glut_立方體紋理\HelloGlut.cpp
?????文件???????4352??2013-11-20?18:46??Glut_立方體紋理\HelloGlut.dsp
............此處省略20個(gè)文件信息
- 上一篇:自己做的打地鼠小游戲
- 下一篇:C++做的一個(gè)聊天室程序
評(píng)論
共有 條評(píng)論