Jump to content
  • Advertisement
Sign in to follow this  
nrhtr

OpenGL proper rotations for skybox

This topic is 3278 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi there. I'm new to OpenGL and 3D graphics in general. I have a very simple scene with a skybox being rendered in the background. I'm trying to render the skybox after the rest of the scene with depth testing so it's behind everything else. The thing I'm having trouble with is making sure that the correct rotations are performed when drawing the skybox without any translations. Currently my code looks something like this:
camera.RotateX(xramount);
camera.RotateZ(zramount);
camera.RotateY(yramount);

if(xmove != 0) {
    camera.Strafe(xmove * speed);
}
//....etc

camera.Apply();

glPushMatrix();
glScalef(scale, scale, scale);

// draw scene

glPopMatrix();

RenderSky();
The camera class is based on some code I found by googling. It keeps track of up, right, view and position vectors. Do I do glLoadIdentity in RenderSky then work out what rotations to apply based on the camera state (if so, how?) or is there a better/easier way? Thanks in advance.

Share this post


Link to post
Share on other sites
Advertisement
Well, the skybox is centered at the camera but doesn't rotate.
Thus you need to apply rotations only with translation set to 0.

glLoadIdentity + redoing the transformations is a reasonable approach.
You also could use glPushMatrix() + glPopMatrix() after the camera rotations have been applied and before the sky is rendered.

Another approach would be to get the current camera transformation matrix and just set the translation part to 0. This would require you to set the matrices with glLoadMatrix and calculate them yourself, but since glPushMatrix and the like are/will be deprecated, you might consider going down that road.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!