I am a newbie here. what I am doing is drawing a number of individual spheres which constitute an object. There are thousands of spheres and I have arrays of all the positional information relative to an origin. I am using the solid sphere routines and the glTranslate commands to move to the next position. However I want to simply forget about the last spheres psotion and awlays draw relative to the origin?
Can someone clear up the issue whether I should use PopMatrix here to ensure that my function that draws the sphere originates back at the origin?
Any help would be appreciated. Thanks
// Assume glMatrixMode(GL_MODELVIEW) is current.
for (each sphere)
glTranslatef(sphereCenter.x, sphereCenter.y, sphereCenter.z);
Might be faster if you generate a display list with your sphere inside instead of calling glutSolidSphere (immediate mode) all over again.
Ok thats great!!
Thanks very much.
How would i specify a sphere of a certain color… I tried to do this last nite with some code I doctored from a copy but found that I could need to specify a colour type and shading and get say three diferent spheres drawn by a function into three different colors. It also included a light effect but I found this did not seem to work. How can the above code be easily integrated to select say one of two colors by a boolean?
Coloring depends on lighting conditions.
Simplified for starters:
- Lighting off: Color is taken from the primary color (glColor and alikes).
- Lighting on: Lighting is done with the current material (glMaterial and friends). You must have normals per vertex to get OpenGL lighting to work properly.
Have a look at the RedBook (OpenGL Programming Guide). There is a PDF of an old version to be found on the internet.
Read the FAQs here:
Check out the http://nehe.gamedev.net/ tutorials.
(I don’t like the “drawing in the idle loop” paradigm, but other than that, a good site to begin with.)