# Blinn-Phong Specular Exponent to Trowbridge-Reitz Roughness

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

## Recommended Posts

Is there a good formula to convert the specular exponent (glossiness) of the Blinn-Phong NDF to the roughness value of the Trowbridge-Reitz NDF?
I've tried something like [eqn]\frac{1}{\sqrt{\alpha}}[/eqn], but that doesn't work that well. Is there a better approximation?

I'm currently changing the BRDF to an actual Cook-Torrance BRDF with Trowbridge-Reitz distribution, Schlick fresnel and Smith-Trowbridge-Reitz geometry factor. The BRDF itself is only 27 clock cycles on a Fermi or Kepler GPU (NDotL, NDotH, LDotH, ... not included). It's fast enough, so there's no reason for me to use a weak approximation of Cook-Torrance. But all my models are still storing Blinn-Phong glossiness, that's why I need to convert them.

I actually would want to use an approximation for [eqn]1+\sqrt{1+\alpha\frac{\sqrt{1-(N\cdot L)^2}}{N\cdot L}}[/eqn] though. That's the worst part of the whole BRDF. The 2 square roots alone take 12 clock cycles Edited by CryZe

##### Share on other sites
Damn google! I just searched for "Trowbridge Reitz", and despite this being a 70's publication, this thread came up as the 3rd result!

You could always brute-force yourself a conversion look-up table. Render a couple-hundred spheres with a single point light and your full range of spec-power and roughness values. Then compare each "power" image against each "roughness" image to find which one produces the least error, and use that to generate a LUT converter. Repeat with different lighting angles, and average the resulting roughness suggestions for robustness

##### Share on other sites
If no one comes up with a solution, I'm probably going to do that. Too bad that the Trowbridge-Reitz NDF isn't that well known
I could try modifying the conversion function for Beckmann roughness, because they might not differ that much. Beckmann is more well known, so what's the conversion function for the Beckmann NDF?

Update: This, is the approximation I came up with:
[eqn]f(\alpha)=
\begin{cases}
0.773871 - 0.160132 \ln(\alpha) & \alpha\in [0,24] \\
0.606127 - 0.105979 \ln(\alpha) & \alpha\in (24,60] \\
0.4008 - 0.0562807 \ln(\alpha) & \alpha\in (60,\infty)
\end{cases}[/eqn] Edited by CryZe

1. 1
Rutin
44
2. 2
3. 3
4. 4
5. 5

• 9
• 9
• 12
• 10
• 13
• ### Forum Statistics

• Total Topics
632983
• Total Posts
3009706
• ### Who's Online (See full list)

There are no registered users currently online

×