Archived

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

Keba

Radiosity.....again......and again

Recommended Posts

Ok, so i had implemented a radiosity render, but the problem is that its slow. I had reading the article by hugo elias, and implemented it with the hemicube. First question: would be fastest? render hemicube 5 times for each texel, or calculate the ff with the traditional math? ok, and i have been looking for som progresive refinment(sorry for crapy spelling), when i read post about that i get the feeling that the concept of surfaces is gone and tou using patches that "shoots" the light to all other patches in the scene. Should i skip the concept of surcfaces? and if anyone got i good article about progresive refinment i would be glad, i don't know much about it [edited by - keba on April 21, 2004 4:15:08 AM]

Share this post


Link to post
Share on other sites
Progressive refinement is done by shooting a patch´s energy into the scene.

Basically, you select a patch (usually one with high energy) and distribute it´s energy to all other patches in the scene. This is the oppososite to the original method of gathering the energy from all patches.

here is some pseudo code:

while not converged
select a patch i

for (each patch j)
if (i == j) continue;
calculate form factor fij
update energy of j
update radiance of j

set energy of patch i to 0

of course this is very slow compared to the hemicube method, but you have not the quality tradeoffs of the hemicube algorithm like aliasing.

you can speed up the visible surface determination by partitioning your scene in an octree / bsp etc.

i´m currently working on it.

greets
Gammastrahler

Share this post


Link to post
Share on other sites
would it be slower than hemicube, even if i use a Octree to determent the visible polygones?

Share this post


Link to post
Share on other sites
quote:
Original post by Gammastrahler
I don´t know the hemicube... but i think it would be still faster than raytracing, even with octree / bsp or some other partition system.



Doubtful. Photon mapping is widely accepted as one of the fastest established methods of global illumination. Other, faster methods do exist, but they are mostly not well documented or protected because someone wants to make money on them (I am guilty of the latter). If performance is the main issue, then radiosity is not the way to go. Likewise for robustness; photon mapping handles various types of surfaces far more elegantly than radiosity ever will. If the main goal, however, is to implement radiosity, then of course photon mapping is not a solution.

The problem with questions like "what is faster" is that it is extremely hard to say without actually writing the code to do it. Write both methods in a simple form, build a test scene, and find out; a lot depends on how you lay out the code and what kinds of scenes you are rendering. Different approaches to the radiosity model can have vastly different performance data depending on how they are implemented.

Share this post


Link to post
Share on other sites