Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void initSkybox(){
- //skybox top
- glGenTextures(1, &skybox[1]);
- glBindTexture(GL_TEXTURE_2D, skybox[1]);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
- imag.LoadBmpFile("skybox/skyrender0002.bmp");
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
- imag.GetNumCols(),
- imag.GetNumRows(), 0, GL_RGB, GL_UNSIGNED_BYTE,
- imag.ImageData());
- //skybox right
- glGenTextures(1, &skybox[2]);
- glBindTexture(GL_TEXTURE_2D, skybox[2]);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
- imag.LoadBmpFile("skybox/skyrender0003.bmp");
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
- imag.GetNumCols(),
- imag.GetNumRows(), 0, GL_RGB, GL_UNSIGNED_BYTE,
- imag.ImageData());
- //skybox left
- glGenTextures(1, &skybox[3]);
- glBindTexture(GL_TEXTURE_2D, skybox[3]);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
- imag.LoadBmpFile("skybox/skyrender0005.bmp");
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
- imag.GetNumCols(),
- imag.GetNumRows(), 0, GL_RGB, GL_UNSIGNED_BYTE,
- imag.ImageData());
- //skybox front
- glGenTextures(1, &skybox[4]);
- glBindTexture(GL_TEXTURE_2D, skybox[4]);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
- imag.LoadBmpFile("skybox/skyrender0001.bmp");
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
- imag.GetNumCols(),
- imag.GetNumRows(), 0, GL_RGB, GL_UNSIGNED_BYTE,
- imag.ImageData());
- //skybox back
- glGenTextures(1, &skybox[5]);
- glBindTexture(GL_TEXTURE_2D, skybox[5]);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
- imag.LoadBmpFile("skybox/skyrender0004.bmp");
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
- imag.GetNumCols(),
- imag.GetNumRows(), 0, GL_RGB, GL_UNSIGNED_BYTE,
- imag.ImageData());
- }
- //================================================================================
- //================== OBJECTOS
- //================================================================================
- void drawSkybox(){
- glPushMatrix();
- glTranslatef (0, 0, 100);
- glEnable(GL_TEXTURE_2D);
- glBindTexture(GL_TEXTURE_2D,skybox[4]);
- glColor3f(1.0,1.0,1.0);
- glBegin(GL_POLYGON);//back
- glTexCoord2f(1.0f,0.0f); glVertex3f(200, 0, 0);
- glTexCoord2f(0.0f,0.0f); glVertex3f(-200, 0, 0);
- glTexCoord2f(0.0f,1.0f); glVertex3f(-200, 200, 0);
- glTexCoord2f(1.0f,1.0f); glVertex3f(200, 200, 0);
- glEnd();
- glDisable(GL_TEXTURE_2D);
- glEnable(GL_TEXTURE_2D);
- glBindTexture(GL_TEXTURE_2D,skybox[2]);
- glBegin(GL_POLYGON);//top
- glTexCoord2f(0.0f,0.0f);glVertex3f(200, 200, 0);
- glTexCoord2f(0.0f,1.0f);glVertex3f(-200, 200, 0);
- glTexCoord2f(1.0,1.0f);glVertex3f(-200, 200, -200);
- glTexCoord2f(1.0,0.0);glVertex3f(200, 200, -200);
- glEnd();
- glDisable(GL_TEXTURE_2D);
- glEnable(GL_TEXTURE_2D);
- glBindTexture(GL_TEXTURE_2D,skybox[3]);
- glBegin(GL_POLYGON);
- glTexCoord2f(0.0f,0.0f); glVertex3f(-200, 0, -200);
- glTexCoord2f(1.0f,0.0f); glVertex3f(-200, 0, 0);
- glTexCoord2f(1.0f,1.0f); glVertex3f(-200, 200, 0);
- glTexCoord2f(0.0f,1.0f); glVertex3f(-200, 200, -200);
- glEnd();
- glDisable(GL_TEXTURE_2D);
- glEnable(GL_TEXTURE_2D);
- glBindTexture(GL_TEXTURE_2D,skybox[1]);
- glBegin(GL_POLYGON);
- glTexCoord2f(1.0f,0.0f);glVertex3f(200, 0, -200);
- glTexCoord2f(0.0f,0.0f);glVertex3f(200, 0, 0);
- glTexCoord2f(0.0f,1.0f);glVertex3f(200, 200, 0);
- glTexCoord2f(1.0f,1.0f);glVertex3f(200, 200, -200);
- glEnd();
- glDisable(GL_TEXTURE_2D);
- glEnable(GL_TEXTURE_2D);
- glBindTexture(GL_TEXTURE_2D,skybox[5]);
- glBegin(GL_POLYGON);
- glTexCoord2f(0.0f,0.0f); glVertex3f(200, 0, -200);
- glTexCoord2f(1.0f,0.0f); glVertex3f(-200, 0, -200);
- glTexCoord2f(1.0f,1.0f); glVertex3f(-200, 200, -200);
- glTexCoord2f(0.0f,1.0f); glVertex3f(200, 200, -200);
- glEnd();
- glDisable(GL_TEXTURE_2D);
- glPopMatrix();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement