Jump to content
  • Advertisement

Archived

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

AGPX

Area lights

This topic is 6068 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 guys, I think that area lights are really cool. I want to implement it in my ray-tracer, but how I can compute shadow? For point lights I shoot shadow ray from the intersection point to the lights. It''s quite easy. But, for area lights? I shoot a ray from intersection point to.... to what? A way could be to subdivide the illumination poly in patches and then places an omni light for every patch. This sound like quite expansive. With this method I also must reduce the light intensity of every omni lights in order to avoid ultra-lighting. Anyway, other ideas? Thank you.

Share this post


Link to post
Share on other sites
Advertisement
There is an article in Foley: Computer Graphics, Principles and Practice. It sais something like when you take the edges of your area light (supposing it is a konvex polyhedron) and calculate the shadows of all konvex objects independently. Then the inner part of the shadow (the darkest part) is the intersection of the shadows and the outer part of the shadow is the konvex hull of the shadows. It is not mentioned how to calculate the light intensity between the two, but you might use your subdivision method. Or you might calculate the size of the visible part of the light source viewed from the point you want to light by clipping away invisible parts. This would be rather time expensive, though.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Analytical area lights are rather complex. You should perhaps go into radiosity instead.

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

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

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!