Hello, I’m working on a new idea for a real time shader for games that would fake radiosity and self specularity effects by use of prt’s (6-way light bakes, like “bent normals ++”) and another texture for “reflected color”. Part 1 is done and working: I’m getting pretty accurate outlines of specular self-occlusion on the environment map reflections on shiny chromes on the model; but to color those self-occluded areas something better than black, I need one more bake: A self-radiosity bake. But I can’t seem to persuade Blender to give me one.
The idea is that a part of the model that is blue next to another part that is red, would radio paint areas of the red part blue; and would be radio painted red by the other part in return.
I have 13 material indexes, each with its own color, so the first thing I tried was to make my 13 materials both emissive and receptive; but in the radio baking mode the whole model looks very bright from the start, and when I try to bake I get a white texture mostly.
So the next thing I tried was making a duplicate of the model to serve as light source, and make the original model one single, receptive material.
Here’s a shot of the emissive model:
(Don’t look at the model; just very simple, for testing purposes.)
I actually used Alt-S to inflate it a bit, so the rays would not be occluded before even leaving the surface.
The material indexes are VColLight, Emissive, no shadow buffer, not traceable, non-shadow receiving, have zero ambient, zero alpha, and Shadeless.
I also removed from it the seat, tires, and a few other things that were made of materials too dark to make a difference in real-time radiosity.
The receiver model …
…is made of a single, light gray material; traceable, shadow-receiving, etceteras.
But when I do a bake, after I Add Meshes, Free Radio Data, and I move the result
to another layer…
…after I remove the emissive geometry, I get less than a full radiosity.
Most of my texture bake is black:
Apparently, the emissive mesh covering a part also protects it from emissions by
other parts nearby. I don’t know why, since I made all my emissive materials
non-traceable. Is there a way to make this work?