I just got handed a new BRDF-like lighting option for our realtime shaders, wondering if anyone else has played with and/or studied BRDF, I'm wondering what other ways artists might be using it.
I've been given three controls...
X axis of the bitmap is for controlling the incidence that normals reflect light (bitmap left edge is perpendicular to light direction, right edge is parallel). So a left-to-right black-to-white gradient is regular diffuse lighting, while the inverse is kind of like rim lighting (light appears on surface where normals are perpendicular to light direction).
Y axis of the bitmap is for controlling the compass direction that normals reflect light, bitmap bottom edge is 0°, top edge is all the way around the clock at 360°. So if I want an anisotropic effect, like specular for hair or those groovy Christmas ornaments then I give the bitmap some white bands at 3 o'clock (1/4 down the bitmap) and 9 o'clock (3/4 down). So then the light only reflects from the polygonal surface when the normals face those directions relative to the light.
Last control is an exponent number, which takes that bitmap and alters it for controlling the specular part of the light. The bitmap without the exponent is used for regular diffuse lighting, then the bitmap is altered by the exponent to make a tighter (or wider) control for the specular.
Sorry that's a bit long-winded, but are there any artists playing with BRDF? How have you been controlling it? Wondering if there's a better method...
Replies
Although I've never heard of it
Well I just got the heads-up about it, so now the exporter guys have to implement it in their code before I can really play with it.
Also since it uses a bitmap, we can affect the red, green, and blue channels of the incoming light separately. Haven't decided what to do with the alpha channel yet, but probably should since we have it just sitting there. Maybe replace that exponent number with the alpha, per-pixel control and all that.
Here's some info, and a sample realtime app (right-click for options).
http://developer.nvidia.com/object/BRDFbased_Lighting.html
It basically helps control what direction the lighting is reflected off the surface. So I can use it to do fancy car paint, gold/brass/copper, anisotropic bands on CDs, buffed metal, soft fuzz like a muppet, silk/satin, etc.
Some screencaps of the NVIDIA demo.
http://www.ericchadwick.com/examples/images/brdf_nvidia.jpg
The more I'm reading up on it, the more I'm liking it. The gradient map idea might be weird, but I guess like Kevin says I'll just have to play with it, make some examples that other artists can use as a base.
A tool with like a normal/reflect handle and some sort of shinyness slider. so that you can have a graphical representation of what it really does... although this of course limits the customization a bit. but I think with proper modifiers for those "vector handles" it would be easier than purely painting colors.
Be a hero!
I'll probably start with just multiplying a few Gradient Ramps together, horizontal * vertical. Should be pretty easy to control.
Looks pretty cool. was nice you could paint the maps in realtime and see them change "on the fly"
How were the bitmaps setup for his app? Like the one I've been given? Or...?
Basically you loaded up a sample model and your bitmaps and then you could change brushsize and color, paint and watch your changes on the model.
It was pretty crude tho, but i guess with some tweaks it could be turned into a real handy app.