Implementing reflection of light off objects to other objects

I know that light is already handled when it’s reflecting from an object to the camera, but can it be reflected off one object, to another object, then to a camera?



The purpose of this, is I want to calculate how much light is received on different locations in a container with many internal objects.

I think what you are looking for is “ambient occlusion”.

it looks more like indirect lighting.

There are some papers around the web on how to implement Global Illumination.

Most implementation i saw were not really real time, but i guess it’s gonna change in the coming years.

The most common work around is to fake it by using ambient occlusion, but it’s working the other way around.

Ambient occlusion computes shadows that near by objects cast on each other.

@reddevil



How do you propose to calculate how much light is received? Are you referring to intensity after a certain number of ‘bounces’, or the light coverage, or both?



Also, are you outputting data or is this just an examination of visual results?



I’m thinking that in either case you could look into http://en.wikipedia.org/wiki/Radiosity_3D_computer_graphics.



You could use this to calculate and produce lightmaps (which we could use for the engine) and then examine the lightmap itself for coverage and intensity.



-Feen

Im not sure shadow’s would work, because it’s not a reflection. I’d haw to change the code of the engine to calculate the reflection rather than the other side of the object relative to the light source.



Is it possible to maybe create a custom ambient occlusion class that produces reflections rather than shadows? I was thinking maybe I could make the engine use this instead of the defualt, and calculate the “Global lighting” without even really knowing it.



To calculate the amount of light received on an object, I was planning using a dark universe with only black colored objects. By using a white light, I could maybe calculate the amount of light received by the amount of black still left on the object compared to the amount of white on its color model.



I have many light filters and methods I need to apply later on, but I figured this would be the first step.



@feengur



I would be happy too, especially with the benefit to myself… I’m just not sure what a light map would contain really? I’m pretty new to non-physical objects in 3d engine.

Well, it would basically contain the lighting intensity information for each level geometry in the form of a texture(s).



Check this out for an example: http://forum.unity3d.com/threads/8998-Making-lightmaps-in-Maya-%28tutorial%29



You don’t really have to read the linked post as it contains information specific to generating lightmaps in Maya, but if you look at the pictures you can see the scene geometry and then the resulting lightmap.



You could use the lightmap information to calculate the light coverage as well as the intensity of each individual geometry.



-Feen

So all you need to do, is create the textures normally, save them as actual texture files, and index them? Doesn’t sound that tough… So I must have the wrong idea.

Ah, haha… not quite. :stuck_out_tongue:



The last link i posted was just giving an example of what a lightmap might look like, not generation/implementation into a game engine.



I would explain how the whole process works, but I cba to do so atm (exhausted from work), so i’ll just link some more articles from flipcode to at least give you a better understanding of what i’m talking about:



Lightmapping

Lightmaps - Static Shadowmaps (flipcode.com)

Lightmapping - Theory and Implementation (flipcode.com)

Advanced Lightmapping (flipcode.com)



And here’s a few articles on…

Radiosity

Radiosity In English - The Basics

Radiosity in English - Form Factor Calculations



Also, if you go back to the Radiosity wiki page that I linked in my first post on this thread, goto the bottom and you will find more articles and examples.



HTH,

-Feen