it's working!

This commit is contained in:
HifiExperiments 2024-06-26 23:24:56 -07:00
parent b5da8e7d5c
commit b00086ddb0
8 changed files with 13 additions and 12 deletions

View file

@ -380,16 +380,17 @@ void AmbientOcclusionEffect::updateParameters(const graphics::AmbientOcclusionPo
current.w = ambientOcclusion->getAOObscuranceLevel();
}
if (shouldUpdateTechnique || ambientOcclusion->getAOFalloffAngle() != _aoParametersBuffer->getFalloffAngle()) {
const float falloffAngle = std::min(1.0f - EPSILON, ambientOcclusion->getAOFalloffAngle());
if (shouldUpdateTechnique || falloffAngle != _aoParametersBuffer->getFalloffAngle()) {
auto& current = _aoParametersBuffer.edit()._falloffInfo;
current.x = ambientOcclusion->getAOFalloffAngle();
current.x = falloffAngle;
current.y = 1.0f / (1.0f - current.x);
// Compute sin from cos
current.z = sqrtf(1.0f - ambientOcclusion->getAOFalloffAngle() * ambientOcclusion->getAOFalloffAngle());
current.z = sqrtf(1.0f - current.x * current.x);
current.w = 1.0f / current.z;
}
const int numSamples = ambientOcclusion->getAOSamplingAmount() * MAX_SSAO_SAMPLES;
const int numSamples = std::max(1, (int)(ambientOcclusion->getAOSamplingAmount() * MAX_HBAO_SAMPLES));
if (shouldUpdateTechnique || numSamples != _aoParametersBuffer->getNumSamples()) {
auto& current = _aoParametersBuffer.edit()._sampleInfo;
current.x = numSamples;
@ -423,7 +424,7 @@ void AmbientOcclusionEffect::updateParameters(const graphics::AmbientOcclusionPo
current.z = ambientOcclusion->getSSAONumSpiralTurns();
}
const int numSamples = ambientOcclusion->getAOSamplingAmount() * MAX_HBAO_SAMPLES;
const int numSamples = std::max(1, (int)(ambientOcclusion->getAOSamplingAmount() * MAX_SSAO_SAMPLES));
if (shouldUpdateTechnique || numSamples != _aoParametersBuffer->getNumSamples()) {
auto& current = _aoParametersBuffer.edit()._sampleInfo;
current.x = numSamples;

View file

@ -11,7 +11,7 @@
#include <gpu/Context.h>
std::string AmbientOcclusionStage::_stageName { "BLOOM_STAGE"};
std::string AmbientOcclusionStage::_stageName { "AMBIENT_OCCLUSION_STAGE" };
const AmbientOcclusionStage::Index AmbientOcclusionStage::INVALID_INDEX { render::indexed_container::INVALID_INDEX };
AmbientOcclusionStage::Index AmbientOcclusionStage::findAmbientOcclusion(const AmbientOcclusionPointer& ambientOcclusion) const {

View file

@ -90,7 +90,7 @@ void SetupZones::run(const RenderContextPointer& context, const Input& input) {
hazeStage->_currentFrame.pushHaze(0);
bloomStage->_currentFrame.pushBloom(INVALID_INDEX);
tonemappingStage->_currentFrame.pushTonemapping(0);
ambientOcclusionStage->_currentFrame.pushAmbientOcclusion(0);
ambientOcclusionStage->_currentFrame.pushAmbientOcclusion(INVALID_INDEX);
}
const gpu::PipelinePointer& DebugZoneLighting::getKeyLightPipeline() {