Radiosity - Form Factor

Started by
14 comments, last by VladR 16 years, 9 months ago
@The Scytheman: Thanks for your suggestions regarding spotlights. But my intention was to find a way to alter the form-factor equation. Because this way it should be possible to accommodate for many different light sources with more complicated light distribution patterns.

@VladR: I will try your suggestion with the volumes. I will have to compare the volumes of the intensity distribution of the light sources, since the halfsphere is the intensity distribution of the standard lambertian light. Is that right?

regarding real time radiosity, you may take a look at "realtime radiosity bugs". it was shown at the eurographics conference in vienna last year.
you humans are such dreamers. you dream that you´re clever. You dream that you´re important. You dream that you´re special. [the wee free men, terry pratchett]
Advertisement
Poons: "regarding real time radiosity, you may take a look at "realtime radiosity bugs". it was shown at the eurographics conference in vienna last year."

Yeah, I've seen that. As far as I can remember, the only thing dynamic in that demo is the light sources. The geometry is static, isn't it?

So, if the geometry is static, that is basically an example of the method I've been talking about.

Recently the Geomerics real-time radiosity technology "Enlighten" has been on the news (http://www.geomerics.com/enlighten-sdk.htm). Based on its documentation it's also, at heart, an example of the method. This is what it says in the SDK documentation:

"The core radiosity runtime component of Enlighten takes the __result of your direct illumination__ in the form of a texture, which represents something similar to a light map. It returns as output other textures representing all of the bounced light computed for that frame which can be sampled inside your shaders."

.. and the geometry is static:

"Enlighten currently requires a one-off geometry pre-compute stage, and stores the results of this for use as additional input to the runtime system. ... This allows you to re-texture and light your world in real time."

This is exactly what I was talking about. You can do all kinds of light sources as long as you're able to quickly compute the direct illumination caused by the sources and feed the lit areas as light sources to the radiosity solver.

Poons: Yeah, this is not equivalent to incorporating non-diffuse light sources to the radiosity algorithm, but for those interested in getting real-time global illumination effects it's something to think about.

-- Jani
Quote:Original post by The Scytheman
.. and the geometry is static:

You will notice, though, that there is a moving character also affected by the radiosity solver. Currently a pre-compute step is the most efficient method of generating your radiosity data for static geometry, as you'd expect. The website isn't really very clear on that point, I suppose.

Indeed, but the question is how exactly is the character affected by the radiosity solver? Is the moving character part of the complete GI solution? I think not, as that implies radiosity with dynamic geometry. It's possible though, but unlikely.

The character is probably lit by an environment map computed after the radiosity solution has been computed sans the character and the shadows cast by the character are computed with standard shadow algorithms. This is not equivalent to a full radiosity solution taking into account the character's presence.

If somebody has more precise information please share it. Interesting stuff. :)

-- Jani
No, you're absolutely right there. I was merely suggesting that perhaps Poons could mix and match methods, though I don't personally believe that he should do so. As you say, it would suddenly become a fractured GI solution, but it is a quick and dirty way of doing it.

Good luck Poons :)
The moving characters can be lit by radiosity solution. We just calculate the shadows using some other shadowing algorithm. The difference wil be negligible, so it`s no use to loose precious cycles with calculation of character shadows through radiosity solver.

You just treat the vertices of your character as patches. Since characters can be reasonably detailed these days, it`s a nice trade-off compared to full tesselation of character mesh into patches. You might spot some differences on comparison screenshots, but surely not in a full game.

But the characte would be correctly lit taking into account all lights around him with all their specific distances/intensities/directions.

With some interpolation of form factors (i.e. calculating precise FFs only each character frame (not render frame)), results should be unrecognizable from full radiosity solver, provided decent resolution of original character mesh.

VladR My 3rd person action RPG on GreenLight: http://steamcommunity.com/sharedfiles/filedetails/?id=92951596

This topic is closed to new replies.

Advertisement