PDA

View Full Version : Light Probe positioning...


Integrity
06-04-2006, 04:29 AM
I'm a little confused on the placement of hdr balls.

Pretty soon I want to do a simple scene of a dragon landing on a famous landmark where I live. It's an asian pagoda (if that's the right term) atop a small mountain that's part of a historical site, with a road passing by it. The dragon will simply fly in overhead the camera (which will be positioned across the street looking towards the pagoda) and land on the sideroof, and will basically just act angry, roar and knock off a whole bunch of shingles (sort of like what the dragon did that Harry Potter fought in the most recent movie).

Recently I made a (very) short film where I used an HDR ball for lighting with radiosity (as the background); the position of the ball was pretty much where the CG object was, and I positioned the texture in 3D space in exactly the same spot. I also created a simple plane object that used the same HDR probe as a texture that matched the spherical projection of the background lighting, thinking that this was the correct way so the reflected light that came from the ground (which was stored in the probe image I was using) would be in the right position and have the right intensity when lighting up the shadow areas of my CG object. I offsetted the texture by the heighth of the ball in the real world, which automatically textured the plane correctly with the image probe (besides the distortions caused by the spherical mapping); sort of like camera mapping I guess. Should I really have done this? Or would simply using the background lighting have been good enough? Because when I did this it looked better.

The predicted problem that I think I'm going to face now with the dragon is that I will not be able to take photographs of the ball in the same position as the dragon will be (once it lands on the roof, way out of my reach). I was thinking of just taking them where the camera will be positioned, and doing what I did in my previous short film; but my confusion and problem is that instead of offsetting texture mapping only a couple feet (where I had thought the distortions would be negligible), it's going to be probably a hundred feet or more this time. My confusion is that when making light probes from reflective balls does the ball need to be positioned where the CG object will be? Or can you take it anywhere where it's feasible and be able to place your CG object anywhere in the HDR probe lit background and the lighting information be accurate? Shouldn't, let's say the tail end of the dragon, have a different light probe than the head end? Since they're further apart? Is there a specific distance when this technique should be used? The fact that the dragon will be sitting right on the pagoda where the bounced light from it will effect him more than what the light probe of the position across the street would be able to give is my problem, as well as the distortions and resolution will greatly effect the quality of the calculation.

gerardo
06-04-2006, 07:20 AM
It must have several ways to do this and it depends mainly on how you are solving your lighting setup. If you want to use IBL (Image Based Lighting) for your lighting integration and besides a GI solution that calculates indirect illumination (let's say Montecarlo, Photon Mapping/IrradianceGradients, etc), you need to adquire an HDR image only each time your distant scene changes. But necessarily you need to represent accurately your local scene in order your indirect lighting match realistically.
But if you are using a simpler GI solution (let's say Background radiosity, dome lights, spinning lights (in Lightwave's case) and only this IBL to solve the lighting integration, you can do at least two things:
1. Relapse all lighting in this IBL solution (what means to include the local scene in your HDR image, what implies to integrate the local scene in your HDRI and use an image each time your local scene changes)
2. Use the IBL solution for your distant scene and solve the indirect illumination using other methods like bounce lights (or depending on your app, my gradients technique (http://www.cgtalk.com/showthread.php?t=176195)). This solution implies to use an image only each time your distant scene changes.
Let's put a very simple and basic example:
Suppose your dragon is in a large street (which is your distant scene) and in some moment, it comes closer to a red roof (a house for example), and then it descends toward a garden (local scene)
It is in the same street, so if you are using a GI solution that take into account indirect lighting, you need to model the red roof (just a simple plane) and the garden (this might be a textured plane too), acquire the street panorama only one time and calculate the indirect illumination.
Now, suppose you are only using IBL with a simpler GI solution; you can solve this in the two ways proposed above:
1. Relapse all lighting in this IBL solution, what in this case implies 2 methods:
A. or acquire 2 HDR maps (one above the roof and the other one in the garden), I'm sure you won't want to make this
B. or acquire just one HDRI (a panorama in the middle of the street), model and texture the red and green plane for the roof and the garden, set up the HDRI as environment, and re-capture in the CG space two panoramas (HDRIs) : one above the roof and the other on the garden (the green plane), so you can light with these new HDRIs.
2. Light the 2 shots with just one panorama (using the IBL solution that you want), but for the take above the roof, set a red "pointlight" in the roof position (or a red gradient based on the roof position), and for the take on the garden, use other bounce lights or gradients to fake the indirect lighting.
There are other ways also, you can try to match by hand the lighting with common lights and BRDF references (I know a VFX supervisor that makes this by sight, he never had used an HDRI to match his CG elements with background plates, I think he even doesn't know how to do an HDRI :D but his results are awesome!)
As I said before, there are several ways to do this depending on the packages and techniques that work best for you :)



Gerardo

CGTalk Moderation
06-04-2006, 07:20 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.