Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void drawSkybox(float x, float y, float z, float width, float height, float length)
- {
- glClearColor(0.0, 0.0, 0.0, 1.0);
- glColor3f(1.0, 1.0, 1.0);
- // Center the Skybox around the given x,y,z position
- x = x - width / 2;
- y = y - height / 2;
- z = z - length / 2;
- // Draw Front side
- glBindTexture(GL_TEXTURE_2D, SkyboxTexture[SKYFRONT]);
- glBegin(GL_QUADS);
- glTexCoord2f(1.0f, 0.0f); glVertex3f(x, y, z + length);
- glTexCoord2f(1.0f, 1.0f); glVertex3f(x, y + height, z + length);
- glTexCoord2f(0.0f, 1.0f); glVertex3f(x + width, y + height, z + length);
- glTexCoord2f(0.0f, 0.0f); glVertex3f(x + width, y, z + length);
- glEnd();
- // Draw Back side
- glBindTexture(GL_TEXTURE_2D, SkyboxTexture[SKYBACK] + 1); // IF I ADD +1 HERE, IT WILL GET THE NEXT TEXTURE WHICH IS THE HELI TEXTURE
- glBegin(GL_QUADS);
- glTexCoord2f(1.0f, 0.0f); glVertex3f(x + width, y, z);
- glTexCoord2f(1.0f, 1.0f); glVertex3f(x + width, y + height, z);
- glTexCoord2f(0.0f, 1.0f); glVertex3f(x, y + height, z);
- glTexCoord2f(0.0f, 0.0f); glVertex3f(x, y, z);
- glEnd();
- // Draw Left side
- glBindTexture(GL_TEXTURE_2D, SkyboxTexture[SKYLEFT]);
- glBegin(GL_QUADS);
- glTexCoord2f(1.0f, 1.0f); glVertex3f(x, y + height, z);
- glTexCoord2f(0.0f, 1.0f); glVertex3f(x, y + height, z + length);
- glTexCoord2f(0.0f, 0.0f); glVertex3f(x, y, z + length);
- glTexCoord2f(1.0f, 0.0f); glVertex3f(x, y, z);
- glEnd();
- // Draw Right side
- glBindTexture(GL_TEXTURE_2D, SkyboxTexture[SKYRIGHT]);
- glBegin(GL_QUADS);
- glTexCoord2f(0.0f, 0.0f); glVertex3f(x + width, y, z);
- glTexCoord2f(1.0f, 0.0f); glVertex3f(x + width, y, z + length);
- glTexCoord2f(1.0f, 1.0f); glVertex3f(x + width, y + height, z + length);
- glTexCoord2f(0.0f, 1.0f); glVertex3f(x + width, y + height, z);
- glEnd();
- // Draw Up side
- glBindTexture(GL_TEXTURE_2D, SkyboxTexture[SKYUP]);
- glBegin(GL_QUADS);
- glTexCoord2f(0.0f, 0.0f); glVertex3f(x + width, y + height, z);
- glTexCoord2f(1.0f, 0.0f); glVertex3f(x + width, y + height, z + length);
- glTexCoord2f(1.0f, 1.0f); glVertex3f(x, y + height, z + length);
- glTexCoord2f(0.0f, 1.0f); glVertex3f(x, y + height, z);
- glEnd();
- // Draw Down side
- glBindTexture(GL_TEXTURE_2D, SkyboxTexture[SKYDOWN]);
- glBegin(GL_QUADS);
- glTexCoord2f(0.0f, 0.0f); glVertex3f(x, y, z);
- glTexCoord2f(1.0f, 0.0f); glVertex3f(x, y, z + length);
- glTexCoord2f(1.0f, 1.0f); glVertex3f(x + width, y, z + length);
- glTexCoord2f(0.0f, 1.0f); glVertex3f(x + width, y, z);
- glEnd();
- }
- void render(){
- glClearColor(1.0, 1.0, 1.0, 1.0);
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glLoadIdentity();
- Enables();
- //glBindTexture(GL_TEXTURE_2D, 0);
- if (first_person){
- glRotatef(Xrotation, 1.0, 0.0, 0.0);
- glRotatef(Yrotation, 0.0, 1.0, 0.0);
- }
- else{
- glTranslatef(0.0f, 20.0f, -cRadius);
- glRotatef(Xrotation, 1.0, 0.0, 0.0);
- DrawPlayer();
- glRotatef(Yrotation, 0.0, 1.0, 0.0);
- }
- glTranslated(-Xposition, -Yposition, -Zposition);
- // DrawEntities();
- // drawFilledRect(0, -11, 0, 8192, 8192, RGBf(0.5, 0.5, 0.5));
- // drawCollisionGrid();
- // DrawCubes();
- //DrawTree(quad);
- // THIS CALL DOESN'T RENDER THE TEXTURE
- glPushMatrix();
- glTranslatef(1000.0f, 100.0f, 1000);
- mesh->Render();
- glPopMatrix();
- // BUT THIS ONE DOES...
- drawSkybox(0, 0, 0, 20000, 20000, 20000);
- // TODO desenhar palavras tem problemas de performance
- //DrawHUD();
- glfwSwapBuffers(window);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement