This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
ibl_sample_shader_lys [2017/05/15 17:13] adavies old revision restored (2017/05/15 17:11) |
ibl_sample_shader_lys [2017/05/23 03:49] (current) |
||
---|---|---|---|
Line 124: | Line 124: | ||
// form as cube maps convolved in Lys are based on RdotL and not NdotH. You can find | // form as cube maps convolved in Lys are based on RdotL and not NdotH. You can find | ||
// a more detailed description in "Pre-convolved Cube Maps vs Path Tracers" | // a more detailed description in "Pre-convolved Cube Maps vs Path Tracers" | ||
+ | // Despite the difference in distribution of MIPs the lit specular response resulting from | ||
+ | // the “roughness texture” will be identical to existing PBR based game engines and tools. | ||
float BurleyToMip(float fPerceptualRoughness, int nMips, float NdotR) | float BurleyToMip(float fPerceptualRoughness, int nMips, float NdotR) | ||
{ | { | ||
Line 191: | Line 193: | ||
| | ||
// material properties from texture | // material properties from texture | ||
- | float smoothness = smoothness_tex.Sample(samLinear, st).x; // not gamma corrected | + | float smoothness = smoothness_tex.Sample(samLinear, st).x; // inverted roughness texture map (1-x) and no gamma correction |
float perceptualRoughness = 1.0 - smoothness; | float perceptualRoughness = 1.0 - smoothness; | ||
+ | //float perceptualRoughness = roughness_tex.Sample(samLinear, st).x; // For those using roughness texture maps use this line instead to initialize perceptualRoughness. | ||
float metalness = metalness_tex.Sample(samLinear, st).x; // not gamma corrected | float metalness = metalness_tex.Sample(samLinear, st).x; // not gamma corrected | ||
float3 texNormal = 2*normal_tex.Sample(samLinear, st).xyz - 1.0; // not gamma corrected | float3 texNormal = 2*normal_tex.Sample(samLinear, st).xyz - 1.0; // not gamma corrected |