Sign in to follow this  
IMYT

Splatting Indirect iIlumination

Recommended Posts

IMYT    109
Hi everyone:

I am reading the paper "Splatting Indirect Illumination", it seems to be a very efficient method for global illumination. Before implement it I want check if I had understood it properly.

According to my understanding the SII algorithm tries to do the following:
1. Render RSM
2. Render GBuffer
3. Sampling RSM
4. illuminate the scene with sample VPLs from step 3.

I am a bit confusing about step 4. It seems to me that they give each VPL a bounding sphere(or ellipsoid) and only illuminate those pixels inside the sphere. So if we got 256 VPLs from step3, do we actually need to render 256 different sphere meshes in order to illuminate the whole scene?

Thanks for your help.

By the way I also want to add something:
It seems to me that the SII algorithm only allows the VPLs to influence the surrounding points. If this is the case why not using a Screen space approach instead?

Share this post


Link to post
Share on other sites
Ashaman73    13715
You need only one mesh, but you need to scale it. In fact a simple point sprite covering the sphere region would be enough to apply the light to a certain region.

Share this post


Link to post
Share on other sites
IMYT    109
[quote name='Ashaman73' timestamp='1302762689' post='4798284']
You need only one mesh, but you need to scale it. In fact a simple point sprite covering the sphere region would be enough to apply the light to a certain region.
[/quote]

Thanks for your reply, and I am sorry because my question is a bit misleading (Sorry for my bad English skills...[img]http://public.gamedev.net/public/style_emoticons/default/sad.gif[/img]).

Basically what I want to ask is the following:

According to my understanding the SII algorithm does something like this:

For each VPL
ShaderBegin();
renderSingleSphere();
ShaderEnd();

And in the shader code they scale the sphere so that it will fit the VPL, i.e. anything outside the sphere will not be illuminated.

Is my understanding correct?[img]http://public.gamedev.net/public/style_emoticons/default/huh.gif[/img]

Share this post


Link to post
Share on other sites
Hodgman    51337
Yes, that seems correct.
Though, you could also implement it as:
ShaderBegin();
renderBatchContainingOneSpherePerVPL();
ShaderEnd();
[quote name='IMYT' timestamp='1302761600' post='4798280']
By the way I also want to add something:
It seems to me that the SII algorithm only allows the VPLs to influence the surrounding points. If this is the case why not using a Screen space approach instead?
[/quote]Screen space approaches can only operate on data that is visible to the camera. With RSM's, you are working with data that is visible to the light source (and may indeed by hidden from the camera's point of view).

Share this post


Link to post
Share on other sites
IMYT    109
Thanks for your help.

I am also confused by another question: what does "splat" mean in Computer Graphics?

It seems to me that "splat" can mean different things. Wikipedia told me that "splat" means blending two textures. But that definition really confusing me while reading some articles. For example in the SII paper the word "splat" seems to mean a tiny spherical mesh rather than "texture blending".

Could "splat" mean something else?

Share this post


Link to post
Share on other sites
Hodgman    51337
"Splatting" isn't a very specific term - it kind of means "to draw one thing over another, in a restricted area".

With "texture splatting" you use a mask to blend one texture over another in certain areas.

With this "illumination splatting" you use the spheres to blend lighting into certain parts of the scene.

I'm guessing it just comes from the word "splat", which is the sound something wet makes upon impact.
E.g. the sound made by throwing paint onto a canvas would be "splat!"

Share this post


Link to post
Share on other sites
IMYT    109
[quote name='Hodgman' timestamp='1302768919' post='4798307']
"Splatting" isn't a very specific term - it kind of means "to draw one thing over another, in a restricted area".

With "texture splatting" you use a mask to blend one texture over another in certain areas.

With this "illumination splatting" you use the spheres to blend lighting into certain parts of the scene.

I'm guessing it just comes from the word "splat", which is the sound something wet makes upon impact.
E.g. the sound made by throwing paint onto a canvas would be "splat!"
[/quote]

Thanks very much.

You interpretation of "splat" is better than any dictionary I used.

Share this post


Link to post
Share on other sites
allingm    539
VPL stand for Virtual Point Light correct? I looked at the article titled "Splatting Indirect Illumination" and it never uses the term directly, but it does talk about splatting. From what I can see splatting it simply is creating a point light that can be stretched into ellipsoidal shapes. Since this technique/paper was designed to work with a deferred renderer, each bounding volume (or sphere) is simply used to select what pixels in screen space you light (optimization). Check out stencil volumes or light volumes for information.

I did notice that the light seems to be in these ellipsoidal shapes in the images, but there is little mention in the text.

Note: I haven't implemented this technique, so I could be interpreting things wrong.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this