Skip to content
Snippets Groups Projects
Commit 6753d808 authored by Mathias Paulin's avatar Mathias Paulin :speech_balloon:
Browse files

Remplace material parameter by roughnes parameter in getEnvMapColors

parent 12a0a4c3
No related branches found
No related tags found
No related merge requests found
......@@ -174,7 +174,8 @@ const std::string customFragmentColor{
"vec3(0, 0, 1), diffColor, specColor );\n"
"vec3 envd;\n"
"vec3 envs;\n"
"int e = getEnvMapColors(mat, normal_world, envd, envs);"
"float r = getGGXRoughness(mat, getPerVertexTexCoord());\n"
"int e = getEnvMapColors(r, normal_world, envd, envs);"
"vec3 finalColor = normal_world*0.5+0.5;\n"
"finalColor *= fragCustomAttrib.rgb;\n"
"if (e==1) { finalColor = finalColor*envd + specColor*envs; }\n"
......
......@@ -21,7 +21,7 @@ using namespace gl;
// Envmap shader source
static const std::string noopEnvMapFunction{
"\nint getEnvMapColors(Material mat, vec3 normalWorld, out vec3 diffuse, out vec3 specular) {\n"
"\nint getEnvMapColors(float roughness, vec3 normalWorld, out vec3 diffuse, out vec3 specular) {\n"
" diffuse = vec3(1); specular = vec3(1); return 0;\n"
"}\n\n"
};
......@@ -34,7 +34,7 @@ static const std::string envMapFunction{
"uniform mat4 blueShCoeffs;\n"
"uniform float envStrength;\n"
"const float OneOverPi = 0.3183098862;\n"
"int getEnvMapColors(Material mat, vec3 normalWorld, out vec3 diffuse, out vec3 specular) {\n"
"int getEnvMapColors(float roughness, vec3 normalWorld, out vec3 diffuse, out vec3 specular) {\n"
" vec3 view = normalize(in_viewVector);\n"
" vec3 rfl = reflect(-view, normalWorld.xyz);\n"
" vec4 up = vec4(normalWorld, 1);\n"
......@@ -43,7 +43,7 @@ static const std::string envMapFunction{
" diffuse.b = dot(up, blueShCoeffs * up);\n"
" diffuse *= envStrength/OneOverPi;\n"
" float cosTi = clamp(dot(rfl, normalWorld), 0.001, 1.);\n"
" float r = getGGXRoughness(material, getPerVertexTexCoord()) * numLod;\n"
" float r = roughness * numLod;\n"
" specular = textureLod(envTexture, rfl, r).rgb * cosTi * envStrength;\n"
" return 1;\n"
"}\n\n"};
......
......@@ -99,7 +99,8 @@ class CustomAttribToColorPass : public RenderPass
"vec3(0, 0, 1), diffColor, specColor );\n"
"vec3 envd;\n"
"vec3 envs;\n"
"int e = getEnvMapColors(mat, normal_world, envd, envs);"
"float r = getGGXRoughness(mat, getPerVertexTexCoord());\n"
"int e = getEnvMapColors(r, normal_world, envd, envs);"
"vec3 finalColor;\n"
"if (e==1) { finalColor = diffColor*envd + specColor*envs; }\n"
"else { finalColor = (diffColor + specColor) * max(lightDir.z, 0) \n"
......
......@@ -59,7 +59,8 @@ class NodeBasedRenderer_LIBRARY_API VisualizationController
"vec3(0, 0, 1), diffColor, specColor );\n"
"vec3 envd;\n"
"vec3 envs;\n"
"int e = getEnvMapColors(mat, normal_world, envd, envs);"
"float r = getGGXRoughness(mat, getPerVertexTexCoord());\n"
"int e = getEnvMapColors(r, normal_world, envd, envs);"
"vec3 finalColor;\n"
"if (e==1) { finalColor = diffColor*envd + specColor*envs; }\n"
"else { finalColor = (diffColor + specColor) * max(lightDir.z, 0) \n"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment