PDA

View Full Version : Radiosity Monstrosity



PixelPilot
02-13-2004, 04:54 PM
I am using LW6.5 and, ultimately, that may be the problem.

But given that I paid for this application and would rather have the functionality I was promised for this version than spend more money to get what I thought I already had, I was wondering if someone could shed some light on this situation.

I've been attempting to create as close to photographic realism as LW is capable of pumping out, and was stunned to see the difference radiosity made in my short animation of a building's exterior with hints of a cityscape in the distance. Photographic realism seemed within reach. But I was additionally shocked by the bizarre artifacting and seemingly runaway procedurals that adding radiosity had created. Large, ugly white spots appearing randomly for a single frame create an unwelcome disco-ball effect and fractals undulate through surfaces to which they hadn't been assigned. Here is a comparison video. The first anim shows without radiosity and the second shows with radiosity.
http://67.153.15.3/np_video/NoRadVSCrapRad.wmv

I've tried controlling for every other factor, and this shows that the only difference is whether or not radiosity has been applied.

All opinions are welcome and encouraged.

:mad:

G3D
02-13-2004, 11:12 PM
you could try: camera mapping

Render your scene form various cameras around the perimeter of the building and then map them back onto your models. This way all your lighting info is burned mapped onto the model w/o the need for radiosity.

Don't know what to do about the radiosity troubles. I have doubts about how usable it is even in 7.5c

Here is a webpage where I documented various issues with radiosity:

http://www.G-3D.com/HDRI_Notes.html


Hope that helps.

evenflcw
02-13-2004, 11:58 PM
I think what your seeing is the radiosity samples (where the rays hit and end up), or blotches as they are are often called when they're clearly visible like this :). LW shoots these out at random for every frame and I think you might have too few of them to really cover the whole building enough times to get a smooth finish, thats why it's flashing so much all over the place. To get more samples you need to increase Rays per Evaluation. Then you also have a choice of using smaller samples placed more tightly (lower tolerance and spacing) or bigger samples placed far apart. Smaller samples will give more accurate results but long rendertimes. Bigger samples tend to blend out details in shadows but render quickly as you don't need as many of them.

It would be clever to bake with a high quality radiosity setting as G3D suggested if you don't have too many lights or objects animated in the scene. You could even use the SurfaceBaker in LW (Surface Editor>Shaders>Add Shader) instead of doing it manually (what g3D sorta suggested) :) After you've baked the textures you can turn radiosity off and get really speedy renders.

ingo
02-14-2004, 01:48 AM
Since i guess there is only the camera moving in your animation you can cache the raydiosity, just click on it in the global illumination panel. So LW only calculates raydiosity for the first frame and than simply use it for the other frames.

pixelinfected
02-15-2004, 03:26 AM
radiosity is slow techniques, i suggest to update to lw 7.5 which is faster than 6.5 in radiosity, and you have more control of general ray quality and computing, you can download the lw 7.5 update and test it before the buying.

some tip to have a better radiosity without a big time enlargment.

ray per evalution from 4x12 to 5*15 with montecarlo, with medium antialias and motion blur dithered give you a better light sampling without a very high time consuming. if you setup a more higher antialis instead to do an higher ray per evaluation in radiosity panel, you have more sampling (only with motion blur enable) with a very big time growing.

use baker to lock a radiosity solution to palace.
a good way is to use radiosity with baker to capture the diffuse and light map, then you can load and retouch it in photoretouch software like photoshop or similar, then you apply it with common rendering, and if you need new shadow you can do with a spot which work only for new obj, with light and smooth shadow.

have a nice day.

Intuition
02-15-2004, 12:08 PM
I remember when LW was doing stuff like that.

The only thing that ended that stuff for me was the newer version.

I can't remember if LW 6.5 had the reduce shading noise checkbox.

In 7.5 I don't use radiosity without checked. It smoothes out the noise which makes for really nice results.

Also if you use shadow mapping and the shadows are softened using the shadow fuzziness setting, make sure the reduce shading noise is checked as well so that the shadows are smooth instead of noisy.

In the 6.5 version I think you have, I also had a problem refrecting suff with the hypervoxels. It created the same kind of random noises and blotches in the refraction of a hypervoxel surface.

Tried alot of stuff. Only was fixed when I upgraded to 7. Sorry I must sound like a sales man. I am not. It is just alot better in 7 and also the computing time is reduced a bit.

PixelPilot
02-16-2004, 08:24 AM
Thanks all for your awesome input and especially those who suggested caching the radiosity -- that seems to have ameliorated the artifacting.

I assume caching the radiosity works only when the lights don't move is that correct? For example, it wouldn't work for lights attached to a passing police car?

Anyone? Anyone? Bueller?

pixelinfected
02-17-2004, 09:18 AM
the best idea is to cache radiosity to have correct general light and realist light fall off, then you can add other light to create shadow for obj in movment, or light of police car...

PixelPilot
02-17-2004, 09:37 AM
PixelInfected

Would this require baking surfaces in advance? or just pre-selecting which objects get affected by radiosity and which don't?

The baking thing is totally new to me -- I've never done it, and I'm not sure I care to. I prefer objects with realistic surfaces that are gonna react appropriately to whatever lighting conditions I invoke.;)