Jump to content
  • Advertisement
Sign in to follow this  
WireZappIndieStudios

Wavelet Radiance Transport for Interactive Indirect Lighting

This topic is 2477 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

So, I finished reading http://www.tml.tkk.f...nne/wrt/wrt.pdf, and I now want to write an implementation

But, sadly, I ran into a few issues.

1) What would be the best way to approach this?

2) What are the mathematics behind the receiving and sending basis functions? (I couldn't find this, even after about 2 hours of research)

3) Can someone explain The refinement Oracle? I just couldn't wrap my mind around it

I am usually an expert on the subject of Radiosity, but sadly this one paper has become the demise of the ego

Share this post


Link to post
Share on other sites
Advertisement
I haven't implemented this technique but I get the basic ideas of the paper.

The mathematics for the basis functions are wavelets specifically using the Haar basis function. If you were to do classic radiosity then you'd say for each patch all other patches contribute some amount of influence. The influence would be the coefficients or a row in a matrix. In classic radiosity you can do a gauss-siedel solve and get your solution.

The problem is the matrix ends up being very sparse with a lot of zero coefficients so they don't contribute to the final radiance. They store coefficients for the spatial dimension and angular dimenson between each patches on the haar basis and the refinement oracle adds more coefficients only if it needs to.

Anyway, that's a hand wavey overview. It's been about three years since I read the paper so if you have any more specific questions ask and I'll go back and read the paper and go into more detail.

If you are serious about implementing this paper then there is a good book called ripples in mathematics that talks about wavelets and is pretty easy introduction to the subject.

-= Dave

Share this post


Link to post
Share on other sites

I haven't implemented this technique but I get the basic ideas of the paper.

The mathematics for the basis functions are wavelets specifically using the Haar basis function. If you were to do classic radiosity then you'd say for each patch all other patches contribute some amount of influence. The influence would be the coefficients or a row in a matrix. In classic radiosity you can do a gauss-siedel solve and get your solution.

The problem is the matrix ends up being very sparse with a lot of zero coefficients so they don't contribute to the final radiance. They store coefficients for the spatial dimension and angular dimenson between each patches on the haar basis and the refinement oracle adds more coefficients only if it needs to.

Anyway, that's a hand wavey overview. It's been about three years since I read the paper so if you have any more specific questions ask and I'll go back and read the paper and go into more detail.

If you are serious about implementing this paper then there is a good book called ripples in mathematics that talks about wavelets and is pretty easy introduction to the subject.

-= Dave


Are you saying calculate it like it's normal radiosity?

The issue with that is that the result returned by radiosity is in 1D, while each of their basis functions are in 2D. Either that, or I am mis-comprehending what you are saying

When you say they are storing coefficients in angular dimensions, are you talking about a spherical harmonic?

Sorry about this, I never liked the ideas behind data compression, so I am having a hard time wrapping my mind around this

Share this post


Link to post
Share on other sites
Are you saying calculate it like it's normal radiosity?
No - I was just trying to give an example of how you can use wavelets with radiosity.

When you say they are storing coefficients in angular dimensions, are you talking about a spherical harmonic?[/quote] Spherical harmonics are one set of basis functions and haar is another, h-basis, fourier, etc..

I think you need to read the pre-reqs for that paper. Read Hierarchical Radiosity (Pat Hanrahan) first then Wavelet Radiosity, I believe Shroder has a good exposition on it. When you're done with that you should read Wavelet Radiance and then finally this paper. By the way, there is more recent research in this area, http://www.tml.tkk.fi/~jaakko/meshless-tr/ .

In a hierarchical radiosity scheme you adaptively refine the mesh to until subdividing the mesh doesn't give you better results. For example, if the lighting is changing slowly over the surface then you can approximate the radiance at sub-patches with the parents patch radiance. That's called pushing and of course if you use the children patches to estimate radiance at the parent its called pulling. Wavelets are a set of hierarchical basis functions and have a very similar method for push/pull (pyramid up and pyramid down).

Determining if you should subdivide more is called the 'oracle' in radiosity literature.

Of course, in HR or CR(classical radiosity) they are solving radiosity [W/m^2] which is saying how do we solve the amount of light at each patch. You can apply the same ideas to solving radiance, which is [W/(m^2 sr)]. If you look at the equation for solving radiance it is parameterized by location in space and direction (e.g. light distribution is based on location and angle). Note that radiance L1(i1,o1, x1) -> L2(i1, o1, x2) says the radiance from one space and one input angle is output to another these are the sender and receiver links that the literature refers to.

They apply wavelets to the spatial and angular domain itself to link together radiance.

Anyway, it's tough to jump into a technique that is a refinement of older techniques without first understanding where they came from.

-= Dave

Share this post


Link to post
Share on other sites

[quote name='WireZappIndieStudios' timestamp='1330729721' post='4918735']Are you saying calculate it like it's normal radiosity?
No - I was just trying to give an example of how you can use wavelets with radiosity.

When you say they are storing coefficients in angular dimensions, are you talking about a spherical harmonic?[/quote] Spherical harmonics are one set of basis functions and haar is another, h-basis, fourier, etc..

I think you need to read the pre-reqs for that paper. Read Hierarchical Radiosity (Pat Hanrahan) first then Wavelet Radiosity, I believe Shroder has a good exposition on it. When you're done with that you should read Wavelet Radiance and then finally this paper. By the way, there is more recent research in this area, http://www.tml.tkk.f...ko/meshless-tr/ .

In a hierarchical radiosity scheme you adaptively refine the mesh to until subdividing the mesh doesn't give you better results. For example, if the lighting is changing slowly over the surface then you can approximate the radiance at sub-patches with the parents patch radiance. That's called pushing and of course if you use the children patches to estimate radiance at the parent its called pulling. Wavelets are a set of hierarchical basis functions and have a very similar method for push/pull (pyramid up and pyramid down).

Determining if you should subdivide more is called the 'oracle' in radiosity literature.

Of course, in HR or CR(classical radiosity) they are solving radiosity [W/m^2] which is saying how do we solve the amount of light at each patch. You can apply the same ideas to solving radiance, which is [W/(m^2 sr)]. If you look at the equation for solving radiance it is parameterized by location in space and direction (e.g. light distribution is based on location and angle). Note that radiance L1(i1,o1, x1) -> L2(i1, o1, x2) says the radiance from one space and one input angle is output to another these are the sender and receiver links that the literature refers to.

They apply wavelets to the spatial and angular domain itself to link together radiance.

Anyway, it's tough to jump into a technique that is a refinement of older techniques without first understanding where they came from.

-= Dave
[/quote]

Alright, thanks for the help

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

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

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!