PDA

View Full Version : Light



Panayiotis
12-31-2007, 11:19 AM
I have a solar system and I want to make the sun my light source.Can anyone tell me how, if it's not big trouble...

HenriH
12-31-2007, 07:26 PM
I assume you are using fixed function pipeline (without vertex & fragment shaders).

You must use the regular method of setting up lighting using the OpenGL API:

1. Set up desired light parameters of the sun by using glLightf / glLightfv functions.

This includes light colors (GL_AMBIENT, GL_DIFFUSE and GL_SPECULAR parameters), light position (GL_POSITION) and attenuation factors (GL_LINEAR_ATTENUATION, GL_CONSTANT_ATTENUATION and GL_QUADRATIC_ATTENUATION). Attenuation parameters control how far the light reaches.

There are also GL_SPOT_DIRECTION, GL_SPOT_EXPONENT and GL_SPOT_CUTOFF parameters, but you don't need these since you are setting up a point light.

2. Set up desired material properties before drawing planets. This is done by using glMaterialf / glMaterialfv functions.

This includes material colors (GL_EMISSIVE, GL_AMBIENT, GL_DIFFUSE and GL_SPECULAR) and the shininess factor (GL_SHININESS).

3. Enable GL_LIGHTING and GL_LIGHTi, where i is the light index of the sun. This is probably GL_LIGHT0 if you don't have any other light sources in the scene.

4. Draw planets by using regular OpenGL drawing commands.

Check the OpenGL specification for details. There is also a very good book called "OpenGL Programming Guide" which explains everything about OpenGL. A must have for a student learning this API!


If you want to use shaders then you must do things differently, but you should probably learn fixed functionality first.

I hope this was some help to you.

Panayiotis
01-01-2008, 08:23 AM
I think I have done it.... i think it's a little be weak my sun light but i will fix it...

Thanks anyway