Drawing a Sphere around the "Camera"
Members - Reputation: 122
Posted 29 March 2009 - 02:46 PM
Members - Reputation: 405
Posted 29 March 2009 - 06:06 PM
Every matrix transformation done after that modify the position of the object. You can either have some combined basic transformations (glRotatef, glTranslatef) or use gluLookAt which is acting as a "camera".
If you want to draw your sphere right at the middle of the camera, just don't do any transformation at all. Right after you set the GL_MODELVIEW matrix mode, call glLoadIdentity() and remove every other transformation you can find. Then draw your sphere, and it should appear at world pos (0,0,0), in your face.
Of course, your sphere model is probably made so the normals point from the exterior faces, so if you want to see the inside you will have to change the culling mode with glCullFace().
Members - Reputation: 432
Posted 29 March 2009 - 06:12 PM
It's also pretty simple to do, just call glLoadIdentity(); to reset the matrix.
This will render the sphere at coordinates 0,0,0, then to make it visible you have to make sure the spheres radius is larger than the nearplane and smaller than the farplane, then you need to call glFrontFace(GL_CW); to view the backside of the polygons (you have to reset that state later with GL_CCW).
Members - Reputation: 540
Posted 29 March 2009 - 06:33 PM
Try the following instead:
- Push Matrix
- Load Identity
- Apply the view matrix
- Translate to the camera's position
- Render Sphere (inside out)
- Pop matrix
So, what you're doing is building up a MODELVIEW matrix with the translated exactly over the camera, and rendering that. This way, if you rotate the camera, you'll around inside of the sphere.
If you know the camera's rotation then you can replace the 3rd and 4th steps with a glRotate, and you'll have the same effect.