Jump to content
  • Advertisement
Sign in to follow this  
IYP

OpenGL A practical real time radiosity for dynamic scene

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

I've been recently searching for methods to implement a real time radiosity but the only method I found was global illumination which didn't seem to be that practical or even implementable (using opengl) . (as the topic says I need radiosity for a whole dynamic scene)

 

 

 

i'll be thankfull for your help.

Share this post


Link to post
Share on other sites
Advertisement

yes I've read a few articles about dividing your scene into patches and calculating the light received by each patch and they were not hardware accelerated. only one was a bit hardware accelerated and its method was to change your view to patch's eye and calculate a cube map and after some additional calculation you would get the color for that patch.

 

considering that way, if I have 1000 patches in my scene I should redraw the hole scene 1000 times every pass so even the hardware accelerated one is completely impractical (I don't think if that is even practical on an offline rendering or maybe I've understood the algorithm wrongly) .

 

and I want the effect of radiosity on my program which by far only calculates up to 8 lights in the scene (can be increased but would be costly due to calculation of shadows) and the scene is completely dynamic lights and objects are all moving.

 

I considered using a light to simulate the effect for the raidiosity but wasn't realistic enough I have the same problem on reflections (cant find a way to get it workin)

 

(and sorry for misusing the terms) and thanks

Share this post


Link to post
Share on other sites

As Hodgman pointed out, global illumination is just a catch all term for "how light bounces around a scene" and is usually even applied to any approximation there of.

 

And unfortunately to do it "right" is hard, as in probably provably NP Hard if you want classical computing terms for such. What you can do is pick the best hacky approximation you can find and call it good enough. And which approximation you want depends on what your app is doing.

 

The relevant questions I can think to ask are: How big are the scenes you're going to view? Do you need reflections or is diffuse fine? How dynamic is your scene, as in is most of the geometry static and you just want to relight things, or is your scene fully destructible/changeable? What type of hardware is it going to run on? Does it matter if light leaks a lot (goes through walls) or not?

 

There's a very large, and growing, multitude of techniques that all make tradeoffs and cover different aspects of these things. Which one is best for you depends on your answers to the above.

Edited by Frenetic Pony

Share this post


Link to post
Share on other sites

my scene is completely changeable even user can enter new objects that are not at all defined and my target hardware is a normal every day pc like a GeForce GTX 560  and the vendors should not be limited .

 

I want to have both reflection (on specular surfaces) and defuse (well Ill be thank full for the defuse only too) and no, light leak doesn't matter much at the point.

 

and thanks hodgman im gonna take a look at those articals and methods ill ask If I have questions

Share this post


Link to post
Share on other sites

 

And unfortunately to do it "right" is hard, as in probably provably NP Hard if you want classical computing terms for such.

 

Actually it is not that hard - there are "two" common unbiased rendering algorithms - path tracing (and its variants) and progressive photon mapping. Both are, well, quite simple in principle.

 

I'm not sure whether the problem is NP hard in terms of classical computation (but you are probably right), the thing is, that these things are solved using randomized algorithms. These algorithms are using monte carlo approach to the problem - their probabilistic error will be O(1/sqrt(N)), respectively O((log n)^k/N) for quasi method.

Share this post


Link to post
Share on other sites

well really thanks for the methods. this was helpful i'll use a mixed method I have in mind ( I mixed the advantages of these methods) Ill still be thank full for other opinion and method ill try to implement my method ill ask my problems here and ill share the results and my method (if it works, and may it work)

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!