History

Introducing a fix to the graphics bug

Sam Cake committed 9 years ago

Commit b1a4bc31 parent da1355d4 files · +20 −24Browse files

Showing the changes to libraries/render-utils/src/DebugDeferredBuffer.cpp (1 of 4 files). Show all

Unified · Split

libraries/render-utils/src/DebugDeferredBuffer.cpp+17−19
@@ -85,31 +85,15 @@ static const std::string DEFAULT_NORMAL_SHADER { · 84 unmodified lines
8585 " return vec4(vec3(0.5) + (frag.normal * 0.5), 1.0);"
8686 " }"
8787 };
88−/*
89−static const std::string DEFAULT_OCCLUSION_SHADER{
90− "vec4 getFragmentColor() {"
91− // " DeferredFragment frag = unpackDeferredFragmentNoPosition(uv);"
92− // " return vec4(vec3(pow(frag.obscurance, 1.0 / 2.2)), 1.0);"
93− // " return vec4(vec3(pow(texture(specularMap, uv).a, 1.0 / 2.2)), 1.0);"
94− " return vec4(vec3(texture(specularMap, uv).w), 1.0);"
95− " }"
96−};
97−*/
88+
9889 static const std::string DEFAULT_OCCLUSION_SHADER{
9990 "vec4 getFragmentColor() {"
10091 // " DeferredFragment frag = unpackDeferredFragmentNoPosition(uv);"
10192 // " return vec4(vec3(pow(frag.obscurance, 1.0 / 2.2)), 1.0);"
102− " vec4 midNormalCurvature;"
103− " vec4 lowNormalCurvature;"
104− " unpackMidLowNormalCurvature(uv, midNormalCurvature, lowNormalCurvature);"
105− " float ambientOcclusion = curvatureAO(lowNormalCurvature.a * 20.0f) * 0.5f;"
106− " float ambientOcclusionHF = curvatureAO(midNormalCurvature.a * 8.0f) * 0.5f;"
107− " ambientOcclusion = min(ambientOcclusion, ambientOcclusionHF);"
108− " return vec4(vec3(ambientOcclusion), 1.0);"
93+ " return vec4(vec3(pow(texture(specularMap, uv).a, 1.0 / 2.2)), 1.0);"
10994 " }"
11095 };
11196
112−
11397 static const std::string DEFAULT_EMISSIVE_SHADER{
11498 "vec4 getFragmentColor() {"
11599 " DeferredFragment frag = unpackDeferredFragmentNoPosition(uv);"
@@ -211,6 +195,18 @@ static const std::string DEFAULT_DIFFUSED_NORMAL_CURVATURE_SHADER{ · 95 unmodified lines
211195 " }"
212196 };
213197
198+static const std::string DEFAULT_CURVATURE_OCCLUSION_SHADER{
199+ "vec4 getFragmentColor() {"
200+ " vec4 midNormalCurvature;"
201+ " vec4 lowNormalCurvature;"
202+ " unpackMidLowNormalCurvature(uv, midNormalCurvature, lowNormalCurvature);"
203+ " float ambientOcclusion = curvatureAO(lowNormalCurvature.a * 20.0f) * 0.5f;"
204+ " float ambientOcclusionHF = curvatureAO(midNormalCurvature.a * 8.0f) * 0.5f;"
205+ " ambientOcclusion = min(ambientOcclusion, ambientOcclusionHF);"
206+ " return vec4(vec3(ambientOcclusion), 1.0);"
207+ " }"
208+};
209+
214210 static const std::string DEFAULT_DEBUG_SCATTERING_SHADER{
215211 "vec4 getFragmentColor() {"
216212 " return vec4(pow(vec3(texture(scatteringMap, uv).xyz), vec3(1.0 / 2.2)), 1.0);"
@@ -220,7 +216,7 @@ static const std::string DEFAULT_DEBUG_SCATTERING_SHADER{ · 3 unmodified lines
220216
221217 static const std::string DEFAULT_AMBIENT_OCCLUSION_SHADER{
222218 "vec4 getFragmentColor() {"
223− " return vec4(vec3(texture(obscuranceMap, uv).xyz), 1.0);"
219+ " return vec4(vec3(texture(obscuranceMap, uv).x), 1.0);"
224220 // When drawing color " return vec4(vec3(texture(occlusionMap, uv).xyz), 1.0);"
225221 // when drawing normal" return vec4(normalize(texture(occlusionMap, uv).xyz * 2.0 - vec3(1.0)), 1.0);"
226222 " }"
@@ -305,6 +301,8 @@ std::string DebugDeferredBuffer::getShaderSourceCode(Mode mode, std::string cust · 78 unmodified lines
305301 return DEFAULT_DIFFUSED_CURVATURE_SHADER;
306302 case DiffusedNormalCurvatureMode:
307303 return DEFAULT_DIFFUSED_NORMAL_CURVATURE_SHADER;
304+ case CurvatureOcclusionMode:
305+ return DEFAULT_CURVATURE_OCCLUSION_SHADER;
308306 case ScatteringDebugMode:
309307 return DEFAULT_DEBUG_SCATTERING_SHADER;
310308 case AmbientOcclusionMode: