I’ve mentioned before how I would like to be able to save the lighting into a PRT, in the same format as the LCache. Just one channel (3*float16) that would contain all the lighting. The more I think about it, the more useful it sounds. Some uses:
-
Save out animated lighting so you can try out motion blur, depth of field, different camera animations (diffuse only), etc. The LCache is good for stills, but with a lighting channel in the PRT, you can do animations. Once the lighting is baked in, you could render out animations with a variety of settings and let your art director chose which one looks best. Each revision would be really fast, since no lighting had to be re-done.
-
Self Illumination. If you just set the channel to be (0.1,0.1,0.1) you have self illumination, or you can set up a bunch of soft fill lights with some small shadow map sizes, bake that in, and then add in your key light at rendertime. I’m assuming that the lighting channel in the PRT and the scene lighting would just be added together (which sounds reasonable, no?)
-
With the lighting baked in, you can clip your PRT by depth or with geometry to make layered passes for compositing. Right now doing overlapping Krakatoa/Brazil/Krakatoa/Brazil rendering is impossible to do correctly.
-
By reading in the lighting channel into Pflow or TP you could filter the lighting. Diffusion, scatter, tinting shadows, lighting LUT’s, etc. Spawn and distribute “glow” particles based on light intensity? Wackyness ensues, sure, but even having the ability to either modify or even generate the shading from scratch would be really cool. I did specular highlights with a DataOp before that was built in, and while slow, certainly wasn’t hard. You could design your own BRDF, or other useful pretty things.
-
Include/Exclude. If we render out lights and PRT_Loaders separately, saving the lighting, we can then load back the PRT’s and render them with the include/excludes set up.
-
Flames and smoke? If you have fire particles that are self illuminated, the smoke particles could sample for nearby flames and gather lighting from them. Horrifically slow, probably, but you could make a proxy particle system that sampled light levels sparsely, or a voxel texture map that did the same. Transfer the lighting back to the smoke. Eh, I’m just speculating here, but as you can see, there are a lot of potential applications.
Number 3 is the one I really want, but there’s a lot you could do with this.
- Chad
PS, I got timed out, so I had to type this twice. I think the first version made more sense. Sorry.