mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 19:10:49 +02:00
Fixed android compilation error and removed _glUniformi call
This commit is contained in:
parent
1a5c382d88
commit
51fe60ec45
5 changed files with 57 additions and 21 deletions
|
@ -268,6 +268,7 @@ GLsizei getCompressedImageSize(int width, int height, GLenum internalFormat) {
|
||||||
void GLESFixedAllocationTexture::allocateStorage() const {
|
void GLESFixedAllocationTexture::allocateStorage() const {
|
||||||
const GLTexelFormat texelFormat = GLTexelFormat::evalGLTexelFormat(_gpuObject.getTexelFormat());
|
const GLTexelFormat texelFormat = GLTexelFormat::evalGLTexelFormat(_gpuObject.getTexelFormat());
|
||||||
const auto numMips = _gpuObject.getNumMips();
|
const auto numMips = _gpuObject.getNumMips();
|
||||||
|
const auto numSlices = _gpuObject.getNumSlices();
|
||||||
|
|
||||||
// glTextureStorage2D(_id, mips, texelFormat.internalFormat, dimensions.x, dimensions.y);
|
// glTextureStorage2D(_id, mips, texelFormat.internalFormat, dimensions.x, dimensions.y);
|
||||||
for (GLint level = 0; level < numMips; level++) {
|
for (GLint level = 0; level < numMips; level++) {
|
||||||
|
|
|
@ -60,7 +60,8 @@ enum TextureSlot {
|
||||||
enum ParamSlot {
|
enum ParamSlot {
|
||||||
CameraCorrection = 0,
|
CameraCorrection = 0,
|
||||||
DeferredFrameTransform,
|
DeferredFrameTransform,
|
||||||
ShadowTransform
|
ShadowTransform,
|
||||||
|
DebugParametersBuffer
|
||||||
};
|
};
|
||||||
|
|
||||||
static const std::string DEFAULT_ALBEDO_SHADER {
|
static const std::string DEFAULT_ALBEDO_SHADER {
|
||||||
|
@ -139,13 +140,11 @@ static const std::string DEFAULT_LIGHTING_SHADER {
|
||||||
" }"
|
" }"
|
||||||
};
|
};
|
||||||
|
|
||||||
static const std::string DEFAULT_SHADOW_SHADER{
|
static const std::string DEFAULT_SHADOW_DEPTH_SHADER{
|
||||||
"uniform sampler2DArrayShadow shadowMaps;"
|
|
||||||
"uniform int shadowCascadeIndex;"
|
|
||||||
"vec4 getFragmentColor() {"
|
"vec4 getFragmentColor() {"
|
||||||
" for (int i = 255; i >= 0; --i) {"
|
" for (int i = 255; i >= 0; --i) {"
|
||||||
" float depth = i / 255.0;"
|
" float depth = i / 255.0;"
|
||||||
" if (texture(shadowMaps, vec4(uv, shadowCascadeIndex, depth)) > 0.5) {"
|
" if (texture(shadowMaps, vec4(uv, parameters._shadowCascadeIndex, depth)) > 0.5) {"
|
||||||
" return vec4(vec3(depth), 1.0);"
|
" return vec4(vec3(depth), 1.0);"
|
||||||
" }"
|
" }"
|
||||||
" }"
|
" }"
|
||||||
|
@ -324,7 +323,7 @@ std::string DebugDeferredBuffer::getShaderSourceCode(Mode mode, std::string cust
|
||||||
case ShadowCascade1Mode:
|
case ShadowCascade1Mode:
|
||||||
case ShadowCascade2Mode:
|
case ShadowCascade2Mode:
|
||||||
case ShadowCascade3Mode:
|
case ShadowCascade3Mode:
|
||||||
return DEFAULT_SHADOW_SHADER;
|
return DEFAULT_SHADOW_DEPTH_SHADER;
|
||||||
case ShadowCascadeIndicesMode:
|
case ShadowCascadeIndicesMode:
|
||||||
return DEFAULT_SHADOW_CASCADE_SHADER;
|
return DEFAULT_SHADOW_CASCADE_SHADER;
|
||||||
case LinearDepthMode:
|
case LinearDepthMode:
|
||||||
|
@ -397,6 +396,7 @@ const gpu::PipelinePointer& DebugDeferredBuffer::getPipeline(Mode mode, std::str
|
||||||
slotBindings.insert(gpu::Shader::Binding("cameraCorrectionBuffer", CameraCorrection));
|
slotBindings.insert(gpu::Shader::Binding("cameraCorrectionBuffer", CameraCorrection));
|
||||||
slotBindings.insert(gpu::Shader::Binding("deferredFrameTransformBuffer", DeferredFrameTransform));
|
slotBindings.insert(gpu::Shader::Binding("deferredFrameTransformBuffer", DeferredFrameTransform));
|
||||||
slotBindings.insert(gpu::Shader::Binding("shadowTransformBuffer", ShadowTransform));
|
slotBindings.insert(gpu::Shader::Binding("shadowTransformBuffer", ShadowTransform));
|
||||||
|
slotBindings.insert(gpu::Shader::Binding("parametersBuffer", DebugParametersBuffer));
|
||||||
|
|
||||||
slotBindings.insert(gpu::Shader::Binding("albedoMap", Albedo));
|
slotBindings.insert(gpu::Shader::Binding("albedoMap", Albedo));
|
||||||
slotBindings.insert(gpu::Shader::Binding("normalMap", Normal));
|
slotBindings.insert(gpu::Shader::Binding("normalMap", Normal));
|
||||||
|
@ -433,8 +433,11 @@ const gpu::PipelinePointer& DebugDeferredBuffer::getPipeline(Mode mode, std::str
|
||||||
}
|
}
|
||||||
|
|
||||||
void DebugDeferredBuffer::configure(const Config& config) {
|
void DebugDeferredBuffer::configure(const Config& config) {
|
||||||
|
auto& parameters = _parameters.edit();
|
||||||
|
|
||||||
_mode = (Mode)config.mode;
|
_mode = (Mode)config.mode;
|
||||||
_size = config.size;
|
_size = config.size;
|
||||||
|
parameters._shadowCascadeIndex = glm::clamp(_mode - Mode::ShadowCascade0Mode, 0, (int)SHADOW_CASCADE_MAX_COUNT - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DebugDeferredBuffer::run(const RenderContextPointer& renderContext, const Inputs& inputs) {
|
void DebugDeferredBuffer::run(const RenderContextPointer& renderContext, const Inputs& inputs) {
|
||||||
|
@ -484,18 +487,15 @@ void DebugDeferredBuffer::run(const RenderContextPointer& renderContext, const I
|
||||||
batch.setResourceTexture(Velocity, velocityFramebuffer->getVelocityTexture());
|
batch.setResourceTexture(Velocity, velocityFramebuffer->getVelocityTexture());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
batch.setUniformBuffer(DebugParametersBuffer, _parameters);
|
||||||
|
|
||||||
auto lightStage = renderContext->_scene->getStage<LightStage>();
|
auto lightStage = renderContext->_scene->getStage<LightStage>();
|
||||||
assert(lightStage);
|
assert(lightStage);
|
||||||
assert(lightStage->getNumLights() > 0);
|
assert(lightStage->getNumLights() > 0);
|
||||||
auto lightAndShadow = lightStage->getCurrentKeyLightAndShadow();
|
auto lightAndShadow = lightStage->getCurrentKeyLightAndShadow();
|
||||||
const auto& globalShadow = lightAndShadow.second;
|
const auto& globalShadow = lightAndShadow.second;
|
||||||
if (globalShadow) {
|
if (globalShadow) {
|
||||||
const auto cascadeIndex = glm::clamp(_mode - Mode::ShadowCascade0Mode, 0, (int)globalShadow->getCascadeCount() - 1);
|
|
||||||
const auto cascadeIndexLocation = pipeline->getProgram()->getUniforms().findLocation("shadowCascadeIndex");
|
|
||||||
batch.setResourceTexture(Shadow, globalShadow->map);
|
batch.setResourceTexture(Shadow, globalShadow->map);
|
||||||
if (cascadeIndexLocation >= 0) {
|
|
||||||
batch._glUniform1i(cascadeIndexLocation, cascadeIndex);
|
|
||||||
}
|
|
||||||
batch.setUniformBuffer(ShadowTransform, globalShadow->getBuffer());
|
batch.setUniformBuffer(ShadowTransform, globalShadow->getBuffer());
|
||||||
batch.setUniformBuffer(DeferredFrameTransform, frameTransform->getFrameTransformBuffer());
|
batch.setUniformBuffer(DeferredFrameTransform, frameTransform->getFrameTransformBuffer());
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,12 @@ signals:
|
||||||
|
|
||||||
class DebugDeferredBuffer {
|
class DebugDeferredBuffer {
|
||||||
public:
|
public:
|
||||||
using Inputs = render::VaryingSet6<DeferredFramebufferPointer, LinearDepthFramebufferPointer, SurfaceGeometryFramebufferPointer, AmbientOcclusionFramebufferPointer, VelocityFramebufferPointer, DeferredFrameTransformPointer>;
|
using Inputs = render::VaryingSet6<DeferredFramebufferPointer,
|
||||||
|
LinearDepthFramebufferPointer,
|
||||||
|
SurfaceGeometryFramebufferPointer,
|
||||||
|
AmbientOcclusionFramebufferPointer,
|
||||||
|
VelocityFramebufferPointer,
|
||||||
|
DeferredFrameTransformPointer>;
|
||||||
using Config = DebugDeferredBufferConfig;
|
using Config = DebugDeferredBufferConfig;
|
||||||
using JobModel = render::Job::ModelI<DebugDeferredBuffer, Inputs, Config>;
|
using JobModel = render::Job::ModelI<DebugDeferredBuffer, Inputs, Config>;
|
||||||
|
|
||||||
|
@ -52,7 +57,8 @@ public:
|
||||||
protected:
|
protected:
|
||||||
friend class DebugDeferredBufferConfig;
|
friend class DebugDeferredBufferConfig;
|
||||||
|
|
||||||
enum Mode : uint8_t {
|
enum Mode : uint8_t
|
||||||
|
{
|
||||||
// Use Mode suffix to avoid collisions
|
// Use Mode suffix to avoid collisions
|
||||||
Off = 0,
|
Off = 0,
|
||||||
DepthMode,
|
DepthMode,
|
||||||
|
@ -92,6 +98,10 @@ private:
|
||||||
Mode _mode{ Off };
|
Mode _mode{ Off };
|
||||||
glm::vec4 _size;
|
glm::vec4 _size;
|
||||||
|
|
||||||
|
#include "debug_deferred_buffer_shared.slh"
|
||||||
|
|
||||||
|
using ParametersBuffer = gpu::StructBuffer<DebugParameters>;
|
||||||
|
|
||||||
struct CustomPipeline {
|
struct CustomPipeline {
|
||||||
gpu::PipelinePointer pipeline;
|
gpu::PipelinePointer pipeline;
|
||||||
mutable QFileInfo info;
|
mutable QFileInfo info;
|
||||||
|
@ -103,6 +113,7 @@ private:
|
||||||
const gpu::PipelinePointer& getPipeline(Mode mode, std::string customFile = std::string());
|
const gpu::PipelinePointer& getPipeline(Mode mode, std::string customFile = std::string());
|
||||||
std::string getShaderSourceCode(Mode mode, std::string customFile = std::string());
|
std::string getShaderSourceCode(Mode mode, std::string customFile = std::string());
|
||||||
|
|
||||||
|
ParametersBuffer _parameters;
|
||||||
StandardPipelines _pipelines;
|
StandardPipelines _pipelines;
|
||||||
CustomPipelines _customPipelines;
|
CustomPipelines _customPipelines;
|
||||||
int _geometryId{ 0 };
|
int _geometryId{ 0 };
|
||||||
|
|
|
@ -23,11 +23,18 @@ uniform sampler2D occlusionMap;
|
||||||
uniform sampler2D occlusionBlurredMap;
|
uniform sampler2D occlusionBlurredMap;
|
||||||
uniform sampler2D scatteringMap;
|
uniform sampler2D scatteringMap;
|
||||||
uniform sampler2D velocityMap;
|
uniform sampler2D velocityMap;
|
||||||
|
uniform sampler2DArrayShadow shadowMaps;
|
||||||
|
|
||||||
<@include ShadowCore.slh@>
|
<@include ShadowCore.slh@>
|
||||||
|
|
||||||
<$declareDeferredCurvature()$>
|
<$declareDeferredCurvature()$>
|
||||||
|
|
||||||
|
<@include debug_deferred_buffer_shared.slh@>
|
||||||
|
|
||||||
|
layout(std140) uniform parametersBuffer {
|
||||||
|
DebugParameters parameters;
|
||||||
|
};
|
||||||
|
|
||||||
float curvatureAO(float k) {
|
float curvatureAO(float k) {
|
||||||
return 1.0f - (0.0022f * k * k) + (0.0776f * k) + 0.7369f;
|
return 1.0f - (0.0022f * k * k) + (0.0776f * k) + 0.7369f;
|
||||||
}
|
}
|
||||||
|
|
17
libraries/render-utils/src/debug_deferred_buffer_shared.slh
Normal file
17
libraries/render-utils/src/debug_deferred_buffer_shared.slh
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
// glsl / C++ compatible source as interface for FadeEffect
|
||||||
|
#ifdef __cplusplus
|
||||||
|
# define INT32 glm::int32
|
||||||
|
#else
|
||||||
|
# define INT32 int
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct DebugParameters
|
||||||
|
{
|
||||||
|
INT32 _shadowCascadeIndex;
|
||||||
|
};
|
||||||
|
|
||||||
|
// <@if 1@>
|
||||||
|
// Trigger Scribe include
|
||||||
|
// <@endif@> <!def that !>
|
||||||
|
//
|
||||||
|
|
Loading…
Reference in a new issue