I just thought of something that might help speed up GI renders with animated characters in a scene. OK, so we have HDRI lighting abilitys. What if we could build and light an environment that the characters where to move around in and then render a panoramic HDRI image of it. Then we could load that image into a scene and animate our characters in it. Simple shadow catching planes would need to be used too. Next, we render the new scene with the HDRI image we just made.
The question is: how to make an HDRI image of the environment?
Yes! I just did my first test and it’s seems to work. It’s a little cruddy looking but it’s very promising. The question I have is, what is the best format to make the HDRI image? Do I need to have any of the g-buffer elements? Or, is it just supposed to be a 16 bpp image? By the way, Cubic camera seems to give the best results as far as rebuilding the original environment.
It is a very valid thing to do. In the movie that I recently finished working on we were dealing with a lot of planes flying in tight canyons through clouds etc… We rendered a full frame range of HDRs for the shot so that they would pick up the change in reflection and lighting. BTW, I should note that this was not done in Vray, but since it was a conceptual question…
You rendered the HDRI sequence of the canyon or of the jets? This brings up something I was just thinking about: Is there a way to set the environment to map to global space instead of camera space? If so, there wouldn’t be a need to render an hdri seq. if the camera moved.
global space? I guess if you could find a way to do point cloud data and have that data as a light source. But IR map data sets usually store the light on the surface and cannot be used to emmit light… now that I think about it.
Actually, what I was talking about was; say you have a scene where your character is walking around a room and the camera is following it. With a single image mapped to the camera (in local camera space) the image with stay static with the camera. But, if you map the image onto a sphere around everything, then, as the camera moves the background stays with the camera. Now, the problem with this is that the image will loose a lot of quality being mapped to the sphere. So, the solution is some way to map the image to the camera using global space. Does that make sense?
well that is already what an HDR is… if you do enivronment as spherical. The environment is looked to world space. But lets say you character walks by a blue box very close then a red box very close, the HDR woudl have be different, hence the need for an HDR sequence. Maybe I’m getting what you are saying.
You should have a look at richard rosenman’s page. He used this technique quite succesful with his award winning shortfilm “plumber”. He also has an extensive making of for this film on his page. He explains exactly how he did this.
1. Render out the environment using the spherical vray camera with the viewing degrees set at 360. Make sure the final image you render out is twice as wide as it is tall (for example, 400 highx800 wide, 2048 highx4096 wide). Enable the g-buffer output “real rgb” and save that as a .hdr
2. Set this as the environment (in max) for the rest of the renders, setting it in the bitmap controls as “Environment” mapping, “Spherical Environment,” using the regular hdr importing scheme.
That should be it. max always interprets the spherical environment mapping as pointing in one direction (it does not rotate as the camera rotates through the scene).
Also, it would probably work better looks wise if you rendered the animation of the background as a seperate pass and comped the character into it.