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

Started by
3 comments, last by Keba 19 years, 12 months ago
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]
Advertisement
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
would it be slower than hemicube, even if i use a Octree to determent the visible polygones?
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.
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.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

This topic is closed to new replies.

Advertisement