mirror of
https://github.com/AleziaKurdis/overte.git
synced 2025-04-07 23:12:36 +02:00
Merge pull request #13932 from SamGondelman/framebuffer
Fix framebuffer debugging
This commit is contained in:
commit
03f51352aa
3 changed files with 36 additions and 82 deletions
|
@ -38,33 +38,6 @@ void DebugDeferredBufferConfig::setMode(int newMode) {
|
|||
emit dirty();
|
||||
}
|
||||
|
||||
#if 0
|
||||
enum TextureSlot {
|
||||
Albedo = 0,
|
||||
Normal,
|
||||
Specular,
|
||||
Depth,
|
||||
Lighting,
|
||||
Shadow,
|
||||
LinearDepth,
|
||||
HalfLinearDepth,
|
||||
HalfNormal,
|
||||
Curvature,
|
||||
DiffusedCurvature,
|
||||
Scattering,
|
||||
AmbientOcclusion,
|
||||
AmbientOcclusionBlurred,
|
||||
Velocity,
|
||||
};
|
||||
|
||||
enum ParamSlot {
|
||||
CameraCorrection = 0,
|
||||
DeferredFrameTransform,
|
||||
ShadowTransform,
|
||||
DebugParametersBuffer
|
||||
};
|
||||
#endif
|
||||
|
||||
static const std::string DEFAULT_ALBEDO_SHADER{
|
||||
"vec4 getFragmentColor() {"
|
||||
" DeferredFragment frag = unpackDeferredFragmentNoPosition(uv);"
|
||||
|
@ -178,19 +151,19 @@ static const std::string DEFAULT_SHADOW_CASCADE_SHADER{
|
|||
|
||||
static const std::string DEFAULT_LINEAR_DEPTH_SHADER{
|
||||
"vec4 getFragmentColor() {"
|
||||
" return vec4(vec3(1.0 - texture(linearDepthMap, uv).x * 0.01), 1.0);"
|
||||
" return vec4(vec3(1.0 - texture(debugTexture0, uv).x * 0.01), 1.0);"
|
||||
"}"
|
||||
};
|
||||
|
||||
static const std::string DEFAULT_HALF_LINEAR_DEPTH_SHADER{
|
||||
"vec4 getFragmentColor() {"
|
||||
" return vec4(vec3(1.0 - texture(halfLinearDepthMap, uv).x * 0.01), 1.0);"
|
||||
" return vec4(vec3(1.0 - texture(debugTexture0, uv).x * 0.01), 1.0);"
|
||||
" }"
|
||||
};
|
||||
|
||||
static const std::string DEFAULT_HALF_NORMAL_SHADER{
|
||||
"vec4 getFragmentColor() {"
|
||||
" return vec4(vec3(texture(halfNormalMap, uv).xyz), 1.0);"
|
||||
" return vec4(vec3(texture(debugTexture0, uv).xyz), 1.0);"
|
||||
" }"
|
||||
};
|
||||
|
||||
|
@ -240,27 +213,27 @@ static const std::string DEFAULT_CURVATURE_OCCLUSION_SHADER{
|
|||
|
||||
static const std::string DEFAULT_DEBUG_SCATTERING_SHADER{
|
||||
"vec4 getFragmentColor() {"
|
||||
" return vec4(pow(vec3(texture(scatteringMap, uv).xyz), vec3(1.0 / 2.2)), 1.0);"
|
||||
// " return vec4(vec3(texture(scatteringMap, uv).xyz), 1.0);"
|
||||
" return vec4(pow(vec3(texture(debugTexture0, uv).xyz), vec3(1.0 / 2.2)), 1.0);"
|
||||
// " return vec4(vec3(texture(debugTexture0, uv).xyz), 1.0);"
|
||||
" }"
|
||||
};
|
||||
|
||||
static const std::string DEFAULT_AMBIENT_OCCLUSION_SHADER{
|
||||
"vec4 getFragmentColor() {"
|
||||
" return vec4(vec3(texture(obscuranceMap, uv).x), 1.0);"
|
||||
// When drawing color " return vec4(vec3(texture(occlusionMap, uv).xyz), 1.0);"
|
||||
// when drawing normal" return vec4(normalize(texture(occlusionMap, uv).xyz * 2.0 - vec3(1.0)), 1.0);"
|
||||
// When drawing color " return vec4(vec3(texture(debugTexture0, uv).xyz), 1.0);"
|
||||
// when drawing normal" return vec4(normalize(texture(debugTexture0, uv).xyz * 2.0 - vec3(1.0)), 1.0);"
|
||||
" }"
|
||||
};
|
||||
static const std::string DEFAULT_AMBIENT_OCCLUSION_BLURRED_SHADER{
|
||||
"vec4 getFragmentColor() {"
|
||||
" return vec4(vec3(texture(occlusionBlurredMap, uv).xyz), 1.0);"
|
||||
" return vec4(vec3(texture(debugTexture0, uv).xyz), 1.0);"
|
||||
" }"
|
||||
};
|
||||
|
||||
static const std::string DEFAULT_VELOCITY_SHADER{
|
||||
"vec4 getFragmentColor() {"
|
||||
" return vec4(vec2(texture(velocityMap, uv).xy), 0.0, 1.0);"
|
||||
" return vec4(vec2(texture(debugTexture0, uv).xy), 0.0, 1.0);"
|
||||
" }"
|
||||
};
|
||||
|
||||
|
@ -463,13 +436,10 @@ void DebugDeferredBuffer::run(const RenderContextPointer& renderContext, const I
|
|||
batch.setResourceTexture(Textures::DeferredDepth, deferredFramebuffer->getPrimaryDepthTexture());
|
||||
batch.setResourceTexture(Textures::DeferredLighting, deferredFramebuffer->getLightingTexture());
|
||||
}
|
||||
if (velocityFramebuffer) {
|
||||
batch.setResourceTexture(Textures::DebugVelocity, velocityFramebuffer->getVelocityTexture());
|
||||
if (velocityFramebuffer && _mode == VelocityMode) {
|
||||
batch.setResourceTexture(Textures::DebugTexture0, velocityFramebuffer->getVelocityTexture());
|
||||
}
|
||||
|
||||
// FIXME can't find the corresponding buffer
|
||||
// batch.setUniformBuffer(UBOs:: DebugParametersBuffer, _parameters);
|
||||
|
||||
auto lightStage = renderContext->_scene->getStage<LightStage>();
|
||||
assert(lightStage);
|
||||
assert(lightStage->getNumLights() > 0);
|
||||
|
@ -479,12 +449,17 @@ void DebugDeferredBuffer::run(const RenderContextPointer& renderContext, const I
|
|||
batch.setResourceTexture(Textures::Shadow, globalShadow->map);
|
||||
batch.setUniformBuffer(UBOs::ShadowParams, globalShadow->getBuffer());
|
||||
batch.setUniformBuffer(UBOs::DeferredFrameTransform, frameTransform->getFrameTransformBuffer());
|
||||
batch.setUniformBuffer(UBOs::DebugDeferredParams, _parameters);
|
||||
}
|
||||
|
||||
if (linearDepthTarget) {
|
||||
batch.setResourceTexture(Textures::DebugDepth, linearDepthTarget->getLinearDepthTexture());
|
||||
batch.setResourceTexture(Textures::DebugHalfDepth, linearDepthTarget->getHalfLinearDepthTexture());
|
||||
batch.setResourceTexture(Textures::DebugHalfNormal, linearDepthTarget->getHalfNormalTexture());
|
||||
if (_mode == DepthMode) {
|
||||
batch.setResourceTexture(Textures::DebugTexture0, linearDepthTarget->getLinearDepthTexture());
|
||||
} else if (_mode == HalfLinearDepthMode) {
|
||||
batch.setResourceTexture(Textures::DebugTexture0, linearDepthTarget->getHalfLinearDepthTexture());
|
||||
} else if (_mode == HalfNormalMode) {
|
||||
batch.setResourceTexture(Textures::DebugTexture0, linearDepthTarget->getHalfNormalTexture());
|
||||
}
|
||||
}
|
||||
if (surfaceGeometryFramebuffer) {
|
||||
batch.setResourceTexture(Textures::DeferredCurvature, surfaceGeometryFramebuffer->getCurvatureTexture());
|
||||
|
@ -492,9 +467,11 @@ void DebugDeferredBuffer::run(const RenderContextPointer& renderContext, const I
|
|||
surfaceGeometryFramebuffer->getLowCurvatureTexture());
|
||||
}
|
||||
if (ambientOcclusionFramebuffer) {
|
||||
batch.setResourceTexture(Textures::DebugOcclusion, ambientOcclusionFramebuffer->getOcclusionTexture());
|
||||
batch.setResourceTexture(Textures::DebugOcclusionBlurred,
|
||||
ambientOcclusionFramebuffer->getOcclusionBlurredTexture());
|
||||
if (_mode == AmbientOcclusionMode) {
|
||||
batch.setResourceTexture(Textures::DebugTexture0, ambientOcclusionFramebuffer->getOcclusionTexture());
|
||||
} else if (_mode == AmbientOcclusionBlurredMode) {
|
||||
batch.setResourceTexture(Textures::DebugTexture0, ambientOcclusionFramebuffer->getOcclusionBlurredTexture());
|
||||
}
|
||||
}
|
||||
const glm::vec4 color(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
const glm::vec2 bottomLeft(_size.x, _size.y);
|
||||
|
@ -505,19 +482,14 @@ void DebugDeferredBuffer::run(const RenderContextPointer& renderContext, const I
|
|||
batch.setResourceTexture(Textures::DeferredNormal, nullptr);
|
||||
batch.setResourceTexture(Textures::DeferredSpecular, nullptr);
|
||||
batch.setResourceTexture(Textures::DeferredDepth, nullptr);
|
||||
batch.setResourceTexture(Textures::DeferredLighting, nullptr);
|
||||
batch.setResourceTexture(Textures::Shadow, nullptr);
|
||||
batch.setResourceTexture(Textures::DebugDepth, nullptr);
|
||||
batch.setResourceTexture(Textures::DebugHalfDepth, nullptr);
|
||||
batch.setResourceTexture(Textures::DebugHalfNormal, nullptr);
|
||||
|
||||
batch.setResourceTexture(Textures::DeferredCurvature, nullptr);
|
||||
batch.setResourceTexture(Textures::DeferredDiffusedCurvature, nullptr);
|
||||
batch.setResourceTexture(Textures::DeferredLighting, nullptr);
|
||||
|
||||
batch.setResourceTexture(Textures::DebugOcclusion, nullptr);
|
||||
batch.setResourceTexture(Textures::DebugOcclusionBlurred, nullptr);
|
||||
|
||||
batch.setResourceTexture(Textures::DebugVelocity, nullptr);
|
||||
for (auto i = 0; i < SHADOW_CASCADE_MAX_COUNT; i++) {
|
||||
batch.setResourceTexture(Textures::Shadow + i, nullptr);
|
||||
}
|
||||
|
||||
batch.setResourceTexture(Textures::DebugTexture0, nullptr);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -16,14 +16,8 @@
|
|||
<@include gpu/Color.slh@>
|
||||
<$declareColorWheel()$>
|
||||
|
||||
layout(binding=RENDER_UTILS_TEXTURE_DEBUG_DEPTH) uniform sampler2D linearDepthMap;
|
||||
layout(binding=RENDER_UTILS_TEXTURE_DEBUG_HALF_DEPTH) uniform sampler2D halfLinearDepthMap;
|
||||
layout(binding=RENDER_UTILS_TEXTURE_DEBUG_HALF_NORMAL) uniform sampler2D halfNormalMap;
|
||||
layout(binding=RENDER_UTILS_TEXTURE_DEBUG_OCCLUSION) uniform sampler2D occlusionMap;
|
||||
layout(binding=RENDER_UTILS_TEXTURE_DEBUG_OCCLUSION_BLURRED) uniform sampler2D occlusionBlurredMap;
|
||||
layout(binding=RENDER_UTILS_TEXTURE_DEBUG_SCATTERING) uniform sampler2D scatteringMap;
|
||||
layout(binding=RENDER_UTILS_TEXTURE_DEBUG_VELOCITY) uniform sampler2D velocityMap;
|
||||
layout(binding=RENDER_UTILS_TEXTURE_DEBUG_SHADOWS) uniform sampler2DArrayShadow shadowMaps;
|
||||
layout(binding=RENDER_UTILS_DEBUG_TEXTURE0) uniform sampler2D debugTexture0;
|
||||
layout(binding=RENDER_UTILS_TEXTURE_SHADOW) uniform sampler2DArrayShadow shadowMaps;
|
||||
|
||||
<@include ShadowCore.slh@>
|
||||
|
||||
|
@ -31,7 +25,7 @@ layout(binding=RENDER_UTILS_TEXTURE_DEBUG_SHADOWS) uniform sampler2DArrayShadow
|
|||
|
||||
<@include debug_deferred_buffer_shared.slh@>
|
||||
|
||||
layout(std140) uniform parametersBuffer {
|
||||
layout(std140, binding=RENDER_UTILS_BUFFER_DEBUG_DEFERRED_PARAMS) uniform parametersBuffer {
|
||||
DebugParameters parameters;
|
||||
};
|
||||
|
||||
|
|
|
@ -126,14 +126,8 @@
|
|||
|
||||
// Debugging
|
||||
#define RENDER_UTILS_BUFFER_DEBUG_SKYBOX 5
|
||||
#define RENDER_UTILS_TEXTURE_DEBUG_DEPTH 11
|
||||
#define RENDER_UTILS_TEXTURE_DEBUG_HALF_DEPTH 12
|
||||
#define RENDER_UTILS_TEXTURE_DEBUG_OCCLUSION 13
|
||||
#define RENDER_UTILS_TEXTURE_DEBUG_OCCLUSION_BLURRED 14
|
||||
#define RENDER_UTILS_TEXTURE_DEBUG_VELOCITY 15
|
||||
#define RENDER_UTILS_TEXTURE_DEBUG_SHADOWS 16
|
||||
#define RENDER_UTILS_TEXTURE_DEBUG_HALF_NORMAL 17
|
||||
#define RENDER_UTILS_TEXTURE_DEBUG_SCATTERING 18
|
||||
#define RENDER_UTILS_DEBUG_TEXTURE0 11
|
||||
#define RENDER_UTILS_BUFFER_DEBUG_DEFERRED_PARAMS 1
|
||||
|
||||
// <!
|
||||
#include <gpu/ShaderConstants.h>
|
||||
|
@ -174,6 +168,7 @@ enum Buffer {
|
|||
BloomParams = RENDER_UTILS_BUFFER_BLOOM_PARAMS,
|
||||
ToneMappingParams = RENDER_UTILS_BUFFER_TM_PARAMS,
|
||||
ShadowParams = RENDER_UTILS_BUFFER_SHADOW_PARAMS,
|
||||
DebugDeferredParams = RENDER_UTILS_BUFFER_DEBUG_DEFERRED_PARAMS,
|
||||
};
|
||||
} // namespace buffer
|
||||
|
||||
|
@ -212,14 +207,7 @@ enum Texture {
|
|||
BloomColor = RENDER_UTILS_TEXTURE_BLOOM_COLOR,
|
||||
ToneMappingColor = RENDER_UTILS_TEXTURE_TM_COLOR,
|
||||
TextFont = RENDER_UTILS_TEXTURE_TEXT_FONT,
|
||||
DebugDepth = RENDER_UTILS_TEXTURE_DEBUG_DEPTH,
|
||||
DebugHalfDepth = RENDER_UTILS_TEXTURE_DEBUG_HALF_DEPTH,
|
||||
DebugOcclusion = RENDER_UTILS_TEXTURE_DEBUG_OCCLUSION,
|
||||
DebugOcclusionBlurred = RENDER_UTILS_TEXTURE_DEBUG_OCCLUSION_BLURRED,
|
||||
DebugVelocity = RENDER_UTILS_TEXTURE_DEBUG_VELOCITY,
|
||||
DebugShadows = RENDER_UTILS_TEXTURE_DEBUG_SHADOWS,
|
||||
DebugHalfNormal = RENDER_UTILS_TEXTURE_DEBUG_HALF_NORMAL,
|
||||
DebugScattering = RENDER_UTILS_TEXTURE_DEBUG_SCATTERING,
|
||||
DebugTexture0 = RENDER_UTILS_DEBUG_TEXTURE0,
|
||||
};
|
||||
} // namespace texture
|
||||
|
||||
|
|
Loading…
Reference in a new issue