📄 cskybox.h
字号:
///////////////////////////////////////////////////////
// SkyBox code ,by HiperBlaster
////////////////////////////////////////////////////
class CSkyBox
{
public:
~CSkyBox();
void Init(char *filename,char *ext);
void Render();
private:
GLuint texl; //left
GLuint texr; //right
GLuint texf; //front
GLuint texb; //back
GLuint texd; //down
GLuint texu; //up
}
;
/////////////////////////////////////////////////////////////////
CSkyBox::~CSkyBox()
{
glDeleteTextures(1,&texl);
glDeleteTextures(1,&texr);
glDeleteTextures(1,&texf);
glDeleteTextures(1,&texb);
glDeleteTextures(1,&texu);
glDeleteTextures(1,&texd);
}
///////////////////////////////////////////////////////////////////
void CSkyBox::Init(char *filename,char *ext)
{
char string[80];
sprintf(string,"%sl.%s",filename,ext);
texl=LoadTexture(string,CT_FIND,CT_MIPMAP);
sprintf(string,"%sr.%s",filename,ext);
texr=LoadTexture(string,CT_FIND,CT_MIPMAP);
sprintf(string,"%sf.%s",filename,ext);
texf=LoadTexture(string,CT_FIND,CT_MIPMAP);
sprintf(string,"%sb.%s",filename,ext);
texb=LoadTexture(string,CT_FIND,CT_MIPMAP);
sprintf(string,"%su.%s",filename,ext);
texu=LoadTexture(string,CT_FIND,CT_MIPMAP);
sprintf(string,"%sd.%s",filename,ext);
texd=LoadTexture(string,CT_FIND,CT_MIPMAP);
}
/////////////////////////////////////////////////
void CSkyBox::Render()
{
glDisable(GL_DEPTH_TEST);
glDisable(GL_LIGHTING);
Bind(texb);
glColor3f(1.0f,1.0f,1.0f);
glBegin(GL_QUADS);
// Front Face
glTexCoord2f(0.001953135f, 0.001953135f);
glVertex3f(-4.0f, -4.0f, 4.0f); // Bottom Left Of The Texture and Quad
glTexCoord2f(0.998046875f, 0.001953135f);
glVertex3f( 4.0f, -4.0f, 4.0f); // Bottom Right Of The Texture and Quad
glTexCoord2f(0.998046875f, 0.998046875f);
glVertex3f( 4.0f, 4.0f, 4.0f); // Top Right Of The Texture and Quad
glTexCoord2f(0.001953135f, 0.998046875f);
glVertex3f(-4.0f, 4.0f, 4.0f); // Top Left Of The Texture and Quad
glEnd();
Bind(texf);
glBegin(GL_QUADS);
// Back Face
glTexCoord2f(0.998046875f, 0.001953135f);
glVertex3f(-4.0f, -4.0f, -4.0f); // Bottom Right Of The Texture and Quad
glTexCoord2f(0.998046875f, 0.998046875f);
glVertex3f(-4.0f, 4.0f, -4.0f); // Top Right Of The Texture and Quad
glTexCoord2f(0.001953135f, 0.998046875f);
glVertex3f( 4.0f, 4.0f, -4.0f); // Top Left Of The Texture and Quad
glTexCoord2f(0.001953135f, 0.001953135f);
glVertex3f( 4.0f, -4.0f, -4.0f); // Bottom Left Of The Texture and Quad
glEnd();
Bind(texr);
glBegin(GL_QUADS);
// Right face
glTexCoord2f(0.998046875f, 0.001953135f);
glVertex3f( 4.0f, -4.0f, -4.0f); // Bottom Right Of The Texture and Quad
glTexCoord2f(0.998046875f, 0.998046875f);
glVertex3f( 4.0f, 4.0f, -4.0f); // Top Right Of The Texture and Quad
glTexCoord2f(0.001953135f, 0.998046875f);
glVertex3f( 4.0f, 4.0f, 4.0f); // Top Left Of The Texture and Quad
glTexCoord2f(0.001953135f, 0.001953135f);
glVertex3f( 4.0f, -4.0f, 4.0f); // Bottom Left Of The Texture and Quad
glEnd();
Bind(texl);
glBegin(GL_QUADS);
// Left Face
glTexCoord2f(0.001953135f, 0.001953135f);
glVertex3f(-4.0f, -4.0f, -4.0f); // Bottom Left Of The Texture and Quad
glTexCoord2f(0.998046875f, 0.001953135f);
glVertex3f(-4.0f, -4.0f, 4.0f); // Bottom Right Of The Texture and Quad
glTexCoord2f(0.998046875f, 0.998046875f);
glVertex3f(-4.0f, 4.0f, 4.0f); // Top Right Of The Texture and Quad
glTexCoord2f(0.001953135f, 0.998046875f);
glVertex3f(-4.0f, 4.0f, -4.0f); // Top Left Of The Texture and Quad
glEnd();
Bind(texu);
glBegin(GL_QUADS);
// Top Face
glTexCoord2f(0.998046875f, 0.998046875f);
glVertex3f(-4.0f, 4.0f, -4.0f); // Top Left Of The Texture and Quad
glTexCoord2f(0.001953135f, 0.998046875f);
glVertex3f(-4.0f, 4.0f, 4.0f); // Bottom Left Of The Texture and Quad
glTexCoord2f(0.001953135f, 0.001953135f);
glVertex3f( 4.0f, 4.0f, 4.0f); // Bottom Right Of The Texture and Quad
glTexCoord2f(0.998046875f, 0.001953135f);
glVertex3f( 4.0f, 4.0f, -4.0f); // Top Right Of The Texture and Quad
/* glTexCoord2f(0.001953135f, 0.998046875f); glVertex3f(-0.998046875f, 0.998046875f, -0.998046875f); // Top Left Of The Texture and Quad
glTexCoord2f(0.001953135f, 0.001953135f); glVertex3f(-0.998046875f, 0.998046875f, 0.998046875f); // Bottom Left Of The Texture and Quad
glTexCoord2f(0.998046875f, 0.001953135f); glVertex3f( 0.998046875f, 0.998046875f, 0.998046875f); // Bottom Right Of The Texture and Quad
glTexCoord2f(0.998046875f, 0.998046875f); glVertex3f( 0.998046875f, 0.998046875f, -0.998046875f); // Top Right Of The Texture and Quad
*/
glEnd();
Bind(texd);
glBegin(GL_QUADS);
// Bottom Face
glTexCoord2f(0.998046875f, 0.998046875f);
glVertex3f(-4.0f, -4.0f, -4.0f); // Top Right Of The Texture and Quad
glTexCoord2f(0.001953135f, 0.998046875f);
glVertex3f( 4.0f, -4.0f, -4.0f); // Top Left Of The Texture and Quad
glTexCoord2f(0.001953135f, 0.001953135f);
glVertex3f( 4.0f, -4.0f, 4.0f); // Bottom Left Of The Texture and Quad
glTexCoord2f(0.998046875f, 0.001953135f);
glVertex3f(-4.0f, -4.0f, 4.0f); // Bottom Right Of The Texture and Quad
glEnd();
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -