Archived

This topic is now archived and is closed to further replies.

slyterence

Help with light attenuation

Recommended Posts

Hey guys I''m writing a game, but I''m having a problem with the lighting. There''s a flat field, 200x200, enclosed by walls, with a light in one corner, (80,80), and it renders correctly on the walls that make up that corner, but it lights up the opposite walls fully as well, despite my best efforts to use light attenuation to stop this. Whatever numbers I use for the attenuation constant, linear attenuation and quadratic attenuation, the walls still shine with full intensity. This is the code i''m using (taken straight from the red book, but i''ve tried other numbers, from 100000 to 0.000001, for all three values. glLightf(GL_LIGHT1, GL_CONSTANT_ATTENUATION, 2.0); glLightf(GL_LIGHT1, GL_LINEAR_ATTENUATION, 1.0); glLightf(GL_LIGHT1, GL_QUADRATIC_ATTENUATION, 0.5); can someone please help me? We scratch our eternal itch A twentieth century bitch We are grateful for Our Iron Lung

Share this post


Link to post
Share on other sites
set this to zero GL_CONSTANT_ATTENUATION + play around with the other 2 values to understand it. check the red book for the maths
1 / (Kc + KlD + KqD2)
1 / ( 0 + ...... )
fill in the blank

also there might be something here
http://www.xmission.com/%7Enate/tutors.html
if not let me know and ill write a simple demo program that shows lighting

http://members.xoom.com/myBollux

Share this post


Link to post
Share on other sites
Okay, firstly, the plot thickens :

I''m running with a VooDoo 3, and no matter what I set the 3 factors to, the two walls close to the light look right, while the ones opposite the field are totally lit up...

However, my friend is using a GeForce 2, and if I set these factors to anything, he can''t see the light at all

I tried what you said zed, but it doesn''t work... I''m busy downloading Nate''s tutorials now, and I''ll see if that helps...

We scratch our eternal itch
A twentieth century bitch
We are grateful for
Our Iron Lung

Share this post


Link to post
Share on other sites
OK, so i''ve been testing the game on my friend''s pc, and the attenuation seems to work, with (kC = 0, kL = 0.0001, kQ = 0.0001) creating a very much brighter scene, and (kC = 0, kL = 0.01, kQ = 0.01) creating a very, very dim scene (have to look real close to see a very slight light in the corner), but the puzzle now is, why doesn''t the scene change at all on my computer? Has anyone got any advice/ideas?

Thankx

We scratch our eternal itch
A twentieth century bitch
We are grateful for
Our Iron Lung

Share this post


Link to post
Share on other sites