Skip to content

Commit 3553de6

Browse files
make sure to clear accumulation when resetting the render
1 parent 1e4e67d commit 3553de6

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

examples_tests/22.RaytracedAO/dirty_source/ExtraCrap.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -985,7 +985,8 @@ void Renderer::render(nbl::ITimer* timer)
985985

986986
const auto currentViewProj = camera->getConcatenatedMatrix();
987987
// TODO: instead of rasterizing vis-buffer only once, subpixel jitter it to obtain AA
988-
if (!core::equals(prevViewProj,currentViewProj,core::ROUNDING_ERROR<core::matrix4SIMD>()*1000.0))
988+
const auto thresh = core::ROUNDING_ERROR<core::matrix4SIMD>()*128.f;
989+
if (!core::equals(prevViewProj,currentViewProj,thresh))
989990
{
990991
m_raytraceCommonData.framesDispatched = 0u;
991992

@@ -1002,6 +1003,11 @@ void Renderer::render(nbl::ITimer* timer)
10021003
m_driver->dispatch(m_cullWorkGroups, 1u, 1u);
10031004
COpenGLExtensionHandler::pGlMemoryBarrier(GL_COMMAND_BARRIER_BIT|GL_SHADER_STORAGE_BARRIER_BIT);
10041005

1006+
m_driver->setRenderTarget(tmpTonemapBuffer);
1007+
{
1008+
uint32_t clearAccumulation[4] = { 0,0,0,0 };
1009+
m_driver->clearColorBuffer(EFAP_COLOR_ATTACHMENT0, clearAccumulation);
1010+
}
10051011
m_driver->setRenderTarget(m_visibilityBuffer);
10061012
{ // clear
10071013
m_driver->clearZBuffer();
@@ -1095,7 +1101,7 @@ void Renderer::render(nbl::ITimer* timer)
10951101
m_driver->bindComputePipeline(m_resolvePipeline.get());
10961102
m_driver->dispatch(m_resolveWorkGroups[0], m_resolveWorkGroups[1], 1);
10971103

1098-
COpenGLExtensionHandler::pGlMemoryBarrier(GL_TEXTURE_FETCH_BARRIER_BIT
1104+
COpenGLExtensionHandler::pGlMemoryBarrier(GL_TEXTURE_FETCH_BARRIER_BIT|GL_SHADER_IMAGE_ACCESS_BARRIER_BIT
10991105
#ifndef _NBL_BUILD_OPTIX_
11001106
|GL_FRAMEBUFFER_BARRIER_BIT|GL_TEXTURE_UPDATE_BARRIER_BIT
11011107
#else

examples_tests/22.RaytracedAO/raygen.comp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ void main()
208208

209209
bool alive = false;
210210
nbl_glsl_MC_precomputed_t precomputed;
211+
nbl_glsl_MC_oriented_material_t material;
211212
nbl_glsl_xoroshiro64star_state_t start_scramble;
212213
vec2 uv;
213214
if (revdepth>0.0)
@@ -253,10 +254,11 @@ void main()
253254
}
254255

255256
//
256-
nbl_glsl_MC_precomputed_t precomputed = nbl_glsl_MC_precomputeData(frontfacing);
257+
precomputed = nbl_glsl_MC_precomputeData(frontfacing);
258+
//material = nbl_glsl_MC_material_data_t_getOriented(InstData.data[objectID].material,precomputed.frontface);
257259

258260
//
259-
const vec3 emissive = vec3(0.0,1.0,0.0);
261+
const vec3 emissive = vec3(0.0,1.0,0.0);//nbl_glsl_MC_oriented_material_t_getEmissive(material);
260262
vec3 acc;
261263
if (pc.cummon.rcpFramesDispatched<1.0)
262264
acc = fetchAccumulation(pixelCoord)+emissive/float(pc.cummon.framesDispatched-1u);

0 commit comments

Comments
 (0)