# Your preferred or desired BRDF?

This topic is 1965 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

I'm just curious what everyone's using nowadays, or what you'd like to investigate looking forward. I guess Normalized Blinn Phong is the easy starter choice, and Cook-Torrance is a popular model amongst the more expensive ones. But I'm wondering what else is out there and what the advantages and disadvantages of those models are.

Also, what BRDF do you want to use that is currently near feasible? What would you choose if your min spec was 3x SLI GTX Titans? ;)

##### Share on other sites

If you are interested in a good overview of the semi-standard lighting models, take a look in the Lighting section of Programming Vertex, Geometry, and Pixel shaders.  Jack wrote a good, in-depth discussion of each of them individually, and the shader code should be at least a good starting point for your work (assuming HLSL of course...).

P.S.: My preference is: all of them!  Make your material system flexible enough to swap them in and out with data definitions!

Naturally -- this isn't an engineering thread. I'm just a bit tired of seeing the same four or so BRDFs over and over again and I was hoping for a wider view of the subject.

L.Spiro -- it looks interesting and I like a couple things about it. Something about the look of the brighter specular areas really goes down poorly with me though. I'm not sure it's the BRDF though; the highlights are very blown and I'm wondering if maybe I'm just not happy with the choice of tonemap in those shots. The roof of the orange car looks very odd to me, and the specular on the blue one is awfully wide.

Edited by Promit

##### Share on other sites

I went over my shader again and found 2—count them—2 places where I used wrong dot products.

One should have been HdotL but was HdotN and the other should have been HdotN but was HdotL.

I also realized a way to remove a sqrt().

float Nu = fAnisotropy.x;
float Nv = fAnisotropy.y;
float Ps_num = sqrt( (Nu + 1) * (Nv + 1) );


Ps_num can be calculated ahead of time and sent to the shader.

I will post my results later but the crap specular you noticed is fixed.  I have been wondering about that for a long time too but every time I went over my shader I missed those little letters.

L. Spiro

##### Share on other sites

Naturally -- this isn't an engineering thread. I'm just a bit tired of seeing the same four or so BRDFs over and over again and I was hoping for a wider view of the subject.

There are pictures too - just pretend those ugly equations aren't there :P

1. 1
Rutin
26
2. 2
3. 3
JoeJ
20
4. 4
5. 5

• 10
• 9
• 9
• 9
• 46
• ### Forum Statistics

• Total Topics
631751
• Total Posts
3002077
×