Showing the changes to libraries/render-utils/src/DebugDeferredBuffer.cpp (1 of 16 files). Show all
Unified · Split
| @@ -48,6 +48,8 @@ enum Slot { · 47 unmodified lines | ||
| 48 | 48 | Shadow, |
| 49 | 49 | Pyramid, |
| 50 | 50 | Curvature, |
| 51 | + DiffusedCurvature, | |
| 52 | + Scattering, | |
| 51 | 53 | AmbientOcclusion, |
| 52 | 54 | AmbientOcclusionBlurred |
| 53 | 55 | }; |
| @@ -147,6 +149,21 @@ static const std::string DEFAULT_CURVATURE_SHADER{ · 93 unmodified lines | ||
| 147 | 149 | " }" |
| 148 | 150 | }; |
| 149 | 151 | |
| 152 | +static const std::string DEFAULT_NORMAL_CURVATURE_SHADER{ | |
| 153 | + "vec4 getFragmentColor() {" | |
| 154 | + //" return vec4(pow(vec3(texture(curvatureMap, uv).a), vec3(1.0 / 2.2)), 1.0);" | |
| 155 | + " return vec4(pow(vec3(texture(curvatureMap, uv).xyz), vec3(1.0 / 2.2)), 1.0);" | |
| 156 | + //" return vec4(vec3(1.0 - textureLod(pyramidMap, uv, 3).x * 0.01), 1.0);" | |
| 157 | + " }" | |
| 158 | +}; | |
| 159 | + | |
| 160 | +static const std::string DEFAULT_SCATTERING_SHADER{ | |
| 161 | + "vec4 getFragmentColor() {" | |
| 162 | + // " return vec4(pow(vec3(texture(scatteringMap, uv).xyz), vec3(1.0 / 2.2)), 1.0);" | |
| 163 | + " return vec4(vec3(texture(scatteringMap, uv).xyz), 1.0);" | |
| 164 | + " }" | |
| 165 | +}; | |
| 166 | + | |
| 150 | 167 | static const std::string DEFAULT_AMBIENT_OCCLUSION_SHADER{ |
| 151 | 168 | "vec4 getFragmentColor() {" |
| 152 | 169 | " return vec4(vec3(texture(obscuranceMap, uv).x), 1.0);" |
| @@ -214,6 +231,10 @@ std::string DebugDeferredBuffer::getShaderSourceCode(Mode mode, std::string cust · 61 unmodified lines | ||
| 214 | 231 | return DEFAULT_PYRAMID_DEPTH_SHADER; |
| 215 | 232 | case CurvatureMode: |
| 216 | 233 | return DEFAULT_CURVATURE_SHADER; |
| 234 | + case NormalCurvatureMode: | |
| 235 | + return DEFAULT_NORMAL_CURVATURE_SHADER; | |
| 236 | + case ScatteringMode: | |
| 237 | + return DEFAULT_SCATTERING_SHADER; | |
| 217 | 238 | case AmbientOcclusionMode: |
| 218 | 239 | return DEFAULT_AMBIENT_OCCLUSION_SHADER; |
| 219 | 240 | case AmbientOcclusionBlurredMode: |
| @@ -269,6 +290,8 @@ const gpu::PipelinePointer& DebugDeferredBuffer::getPipeline(Mode mode, std::str · 49 unmodified lines | ||
| 269 | 290 | slotBindings.insert(gpu::Shader::Binding("shadowMap", Shadow)); |
| 270 | 291 | slotBindings.insert(gpu::Shader::Binding("pyramidMap", Pyramid)); |
| 271 | 292 | slotBindings.insert(gpu::Shader::Binding("curvatureMap", Curvature)); |
| 293 | + slotBindings.insert(gpu::Shader::Binding("diffusedCurvatureMap", DiffusedCurvature)); | |
| 294 | + slotBindings.insert(gpu::Shader::Binding("scatteringMap", Scattering)); | |
| 272 | 295 | slotBindings.insert(gpu::Shader::Binding("occlusionBlurredMap", AmbientOcclusionBlurred)); |
| 273 | 296 | gpu::Shader::makeProgram(*program, slotBindings); |
| 274 | 297 | |
| @@ -294,11 +317,13 @@ void DebugDeferredBuffer::configure(const Config& config) { · 19 unmodified lines | ||
| 294 | 317 | _size = config.size; |
| 295 | 318 | } |
| 296 | 319 | |
| 297 | −void DebugDeferredBuffer::run(const SceneContextPointer& sceneContext, const RenderContextPointer& renderContext) { | |
| 320 | +void DebugDeferredBuffer::run(const SceneContextPointer& sceneContext, const RenderContextPointer& renderContext, const gpu::FramebufferPointer& inputBuffer) { | |
| 298 | 321 | assert(renderContext->args); |
| 299 | 322 | assert(renderContext->args->hasViewFrustum()); |
| 300 | 323 | RenderArgs* args = renderContext->args; |
| 301 | 324 | |
| 325 | + auto& scatteringFramebuffer = inputBuffer; | |
| 326 | + | |
| 302 | 327 | gpu::doInBatch(args->_context, [&](gpu::Batch& batch) { |
| 303 | 328 | batch.enableStereo(false); |
| 304 | 329 | batch.setViewportTransform(args->_viewport); |
| @@ -329,6 +354,8 @@ void DebugDeferredBuffer::run(const SceneContextPointer& sceneContext, const Ren · 24 unmodified lines | ||
| 329 | 354 | batch.setResourceTexture(Shadow, lightStage.lights[0]->shadow.framebuffer->getDepthStencilBuffer()); |
| 330 | 355 | batch.setResourceTexture(Pyramid, framebufferCache->getDepthPyramidTexture()); |
| 331 | 356 | batch.setResourceTexture(Curvature, framebufferCache->getCurvatureTexture()); |
| 357 | + //batch.setResourceTexture(DiffusedCurvature, diffusedCurvatureBuffer); | |
| 358 | + batch.setResourceTexture(Scattering, scatteringFramebuffer->getRenderBuffer(0)); | |
| 332 | 359 | if (DependencyManager::get<DeferredLightingEffect>()->isAmbientOcclusionEnabled()) { |
| 333 | 360 | batch.setResourceTexture(AmbientOcclusion, framebufferCache->getOcclusionTexture()); |
| 334 | 361 | } else { |