Jump to content
  • Advertisement
Sign in to follow this  
w_poons

Radiosity

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

in the last couple of days i stumbled across a paper (can't remember the title) that mentioned that hierarchical and progressive radiosity can be combined. and here lies my problem. as far as i understood progressive radiosity tries to reduce the form factor calculations which are necessary. on the other hand hierarchical radiosity needs the form factor to decide if an area has to be subdivided before the radiosity calculation. is this not a contradiction? maybe someone can clearify my error in reasoning. thank you!

Share this post


Link to post
Share on other sites
Advertisement
The difference between progressive radiosity and traditional radiosity is that progressive radiosity uses a scatter approach (light it shot out from a patch to all other patches) while traditional radiosity uses a gather approach (each patch gathers light from every other patch). The benefit of progressive radiosity is that it can be done in iterations, slowly converging toward a stable solution, and each iteration gives you a better intermediate result you can display. Usually only a few patches are emitting light in the first couple of passes, meaning that you can greatly reduce the amount of transfers initially while still achieving a decent result. With the traditional radiosity approach, it's all or nothing. You need to iterate over each patch and gather light from every other patch, no exceptions. Theoretically progressive radiosity has the same O(n2) worst-case, but that rarely happens and can be avoided by controlling the number of iterations.

The hierarchical radiosity approach (if I understand you correctly) tries to minimize the number of patches overall by using some heuristic to dynamically determine where higher patch densities are required, usually on surfaces with high-frequency color variation. However it should work with either scatter or gather radiosity, since those simply determine how the light is transfered while hierarchical radiosity (which I've always seen referred to as adaptive subdivision) determines how patches are generated.

Share this post


Link to post
Share on other sites
Thanks for your remarks.

But my problem still remains. As far as I understand so far, I need the form factors to decide if a polygon has to be subdivided or not. But on the other hand progressive radiosity doesn't want to calculate all form factors, therefore the speed up.

My idea was to first make an adaptive subdivision (maybe hierarchial radiosity was the wrong term) in areas where higher densities are needed (shadow boundaries, ..) and then start a progressive radiosity algorithm. But I need the form factors for this subdivision, or is there another possibility?

Share this post


Link to post
Share on other sites
The trick is that you don't have to subdivide patches that aren't being lit. So what you do is perform the progressive radiosity, and as patches are being lit you decide whether to subdivide them. You don't even touch patches that aren't lit.

Share this post


Link to post
Share on other sites
Ok. So I don't make the subdivision before the progressive radiosity step, instead I make the subdivision during the progressive radiosity. Thats why it is called adaptive subdivision ;)

Thanks again.

Share this post


Link to post
Share on other sites
Ok. So I don't make the subdivision before the progressive radiosity step, instead I make the subdivision during the progressive radiosity. Thats why it is called adaptive subdivision ;)

Thanks again.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
@ Zipster

Many papers say, that you should subdivide, if "the radiosity varys too much over the extent of a patch" .... what does exactly mean that? And how can i compute if this is the case?

Thanks
gammastrahler

Share this post


Link to post
Share on other sites
I'm not sure what the standard way is (if there is one), but if I were implementing it I would keep track of the minimum and maximum light transfers for each patch as a vector. Then if length(max - min) increases beyond a certain threshold, that's my signal that theres either too much color difference or intensity difference on the patch.

Share this post


Link to post
Share on other sites
Instead of starting a new topic I will just post the question here.

For progressive radiosity you have to determine the next shooter. This is the patch with the highest unshoot energy. I'm solving the radiosity for the three color channels (R,G and B). How can I calculate the correct energy of a patch? Just adding up the values seems to easy.

Share this post


Link to post
Share on other sites
Hi,

in my routine for finding the patch with the highest energy i currently just add up the components. works fine for me.

another more accurate method would be to convert to another color space (hsb) or even wavelength

this involves three steps:

- clamp each radiosity channel to be in the range of 0, 255 (an exposure function is recommended)
- convert to HSB or wavelength/frequency
- compare the results

this should work, but from my experience, it is sufficient to just add up the three values

[Edited by - gamma_strahler on March 7, 2007 10:02:10 AM]

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.

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

Sign me up!