資源簡(jiǎn)介
用openGL做的四面體紋理貼圖程序源代碼,支持交互

代碼片段和文件信息
#include?“stdafx.h“
#include?
#include?
#include??
#include??
#include?
GLuint?texture[6];
GLfloat?xrot?=?15.0;
GLfloat?yrot?=?15.0;
AUX_RGBImageRec?*LoadBMP(char?*Filename)
{
FILE?*File=NULL;
if?(!Filename)
{
return?NULL;
}
File=fopen(Filename“r“);
if?(File)
{
fclose(File);
return?auxDIBImageLoad(Filename);
}
return?NULL;
}
int?LoadGLTextures()
{
int?Status=FALSE;
AUX_RGBImageRec?*TextureImage[6];
if?((TextureImage[0]?=?LoadBMP(“Data/1.bmp“))&&(TextureImage[1]?=?LoadBMP(“Data/2.bmp“))&&
(TextureImage[2]?=?LoadBMP(“Data/3.bmp“))&&(TextureImage[3]?=?LoadBMP(“Data/4.bmp“))&&
(TextureImage[4]?=?LoadBMP(“Data/5.bmp“))&&(TextureImage[5]?=?LoadBMP(“Data/6.bmp“)))
{
Status=TRUE;
glGenTextures(6?&texture[0]);
for?(int?i=0;?i<6;?i++)
{
glBindTexture(GL_TEXTURE_2D?texture[i]);
glTexImage2D(GL_TEXTURE_2D?0?3?TextureImage[i]->sizeX?TextureImage[i]->sizeY?0?GL_RGB?GL_UNSIGNED_BYTE?TextureImage[i]->data);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MIN_FILTERGL_LINEAR);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MAG_FILTERGL_LINEAR);
}
}
for?(int?i=0;?i<6;?i++)
{
if?(TextureImage[i])
{
if?(TextureImage[i]->data)
{
free(TextureImage[i]->data);
}
free(TextureImage[i]);
}
}
return?Status;
}
int?myInit(GLvoid){??????????????????????????
if?(!LoadGLTextures())
{
return?FALSE;
}
glEnable(GL_TEXTURE_2D);
glShadeModel(GL_SMOOTH);
glClearColor(0.0f?0.0f?0.0f0.0f);
glClearDepth(1.0f);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glHint(GL_PERSPECTIVE_CORRECTION_HINT?GL_NICEST);
return?TRUE;
}
void?display(GLvoid)
{?????????????????????
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0.0f?0.0f-5.0f);
glRotatef(xrot1.0f0.0f0.0f);
glRotatef(yrot0.0f1.0f0.0f);
//front
glBindTexture(GL_TEXTURE_2Dtexture[0]);
glBegin(GL_QUADS);
glTexCoord2f(0.0f?0.0f);?
glVertex3f(-4.0f?-4.0f??4.0f); //?紋理和四邊形的左下
glTexCoord2f(1.0f?0.0f);?
glVertex3f(?4.0f?-4.0f??4.0f); //?紋理和四邊形的右下
glTexCoord2f(1.0f?1.0f);?
glVertex3f(?4.0f??4.0f??4.0f); //?紋理和四邊形的右上
glTexCoord2f(0.0f?1.0f);?
glVertex3f(-4.0f??4.0f??4.0f); //?紋理和四邊形的左上
glEnd();
//back
glBindTexture(GL_TEXTURE_2Dtexture[1]);
glBegin(GL_QUADS);
glTexCoord2f(1.0f?0.0f);
glVertex3f(-4.0f?-4.0f?-4.0f); //?紋理和四邊形的右下
glTexCoord2f(1.0f?1.0f);?
glVertex3f(-4.0f??4.0f?-4.0f); //?紋理和四邊形的右上
glTexCoord2f(0.0f?1.0f);
glVertex3f(?4.0f??4.0f?-4.0f); //?紋理和四邊形的左上
glTexCoord2f(0.0f?0.0f);?
glVertex3f(?4.0f?-4.0f?-4.0f); //?紋理和四邊形的左下
glEnd();
//top
glBindTexture(GL_TEXTURE_2Dtexture[2]);
glBegin(GL_QUADS);
glTexCoord2f(0.0f?1.0f);?
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件??????69632??2008-11-21?14:46??OpenGL_TextureCube\debug\OpenGL_TextureCube.exe
?????文件?????785204??2008-11-21?14:46??OpenGL_TextureCube\debug\OpenGL_TextureCube.ilk
?????文件?????510976??2008-11-21?14:46??OpenGL_TextureCube\debug\OpenGL_TextureCube.pdb
?????文件?????750056??2008-11-21?10:22??OpenGL_TextureCube\OpenGL_TextureCube\Data\1.bmp
?????文件?????750056??2008-11-21?10:22??OpenGL_TextureCube\OpenGL_TextureCube\Data\2.bmp
?????文件?????750056??2008-11-21?10:22??OpenGL_TextureCube\OpenGL_TextureCube\Data\3.bmp
?????文件?????750056??2008-11-21?10:21??OpenGL_TextureCube\OpenGL_TextureCube\Data\4.bmp
?????文件?????750056??2008-11-21?10:21??OpenGL_TextureCube\OpenGL_TextureCube\Data\5.bmp
?????文件?????750056??2008-11-21?10:21??OpenGL_TextureCube\OpenGL_TextureCube\Data\6.bmp
????..A.SH.?????23552??2008-11-18?14:43??OpenGL_TextureCube\OpenGL_TextureCube\Data\Thumbs.db
?????文件???????7516??2008-11-21?14:46??OpenGL_TextureCube\OpenGL_TextureCube\Debug\BuildLog.htm
?????文件?????????63??2008-11-21?14:46??OpenGL_TextureCube\OpenGL_TextureCube\Debug\mt.dep
?????文件????????403??2008-11-21?09:48??OpenGL_TextureCube\OpenGL_TextureCube\Debug\OpenGL_TextureCube.exe.em
?????文件????????468??2008-11-21?09:48??OpenGL_TextureCube\OpenGL_TextureCube\Debug\OpenGL_TextureCube.exe.em
?????文件????????385??2008-11-21?14:46??OpenGL_TextureCube\OpenGL_TextureCube\Debug\OpenGL_TextureCube.exe.intermediate.manifest
?????文件??????28251??2008-11-21?14:46??OpenGL_TextureCube\OpenGL_TextureCube\Debug\OpenGL_TextureCube.obj
?????文件????1114112??2008-11-21?14:19??OpenGL_TextureCube\OpenGL_TextureCube\Debug\OpenGL_TextureCube.pch
?????文件??????10597??2008-11-21?14:19??OpenGL_TextureCube\OpenGL_TextureCube\Debug\stdafx.obj
?????文件?????183296??2008-11-21?14:46??OpenGL_TextureCube\OpenGL_TextureCube\Debug\vc80.idb
?????文件?????118784??2008-11-21?14:46??OpenGL_TextureCube\OpenGL_TextureCube\Debug\vc80.pdb
?????文件???????5985??2008-11-21?14:46??OpenGL_TextureCube\OpenGL_TextureCube\OpenGL_TextureCube.cpp
?????文件???????4520??2008-11-21?14:19??OpenGL_TextureCube\OpenGL_TextureCube\OpenGL_TextureCube.vcproj
?????文件???????1419??2008-11-23?15:18??OpenGL_TextureCube\OpenGL_TextureCube\OpenGL_TextureCube.vcproj.yamaraja-PC.yamaraja.user
?????文件???????1016??2008-11-21?09:46??OpenGL_TextureCube\OpenGL_TextureCube\ReadMe.txt
?????文件????????223??2008-11-21?09:46??OpenGL_TextureCube\OpenGL_TextureCube\stdafx.cpp
?????文件????????310??2008-11-21?12:42??OpenGL_TextureCube\OpenGL_TextureCube\stdafx.h
?????文件????5131264??2008-11-23?15:18??OpenGL_TextureCube\OpenGL_TextureCube.ncb
?????文件????????919??2008-11-21?09:46??OpenGL_TextureCube\OpenGL_TextureCube.sln
????..A..H.?????14336??2008-11-23?15:18??OpenGL_TextureCube\OpenGL_TextureCube.suo
?????文件????1062126??2008-11-23?15:05??OpenGL_TextureCube\四面體貼圖截圖.bmp
............此處省略8個(gè)文件信息
評(píng)論
共有 條評(píng)論