From 2b12eb862a806fba708dc92faf47733f251923ae Mon Sep 17 00:00:00 2001 From: isk Date: Tue, 3 Nov 2015 17:08:08 +0300 Subject: [PATCH] Fix Path Tracing trouble. --- src/OpenGl/OpenGl_View_Raytrace.cxx | 8 ++++---- src/OpenGl/OpenGl_View_Redraw.cxx | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/OpenGl/OpenGl_View_Raytrace.cxx b/src/OpenGl/OpenGl_View_Raytrace.cxx index a32d792530..cae667498e 100644 --- a/src/OpenGl/OpenGl_View_Raytrace.cxx +++ b/src/OpenGl/OpenGl_View_Raytrace.cxx @@ -2419,8 +2419,8 @@ Standard_Boolean OpenGl_View::runRaytraceShaders (const Standard_Integer { for (int aPassIndex = 0; aPassIndex < aSamplesPerPixel; ++aPassIndex) { - aRenderFramebuffer = myAccumFrames % 2 ? myRaytraceFBO1[aFBOIdx] : myRaytraceFBO2[aFBOIdx]; - anAccumFramebuffer = myAccumFrames % 2 ? myRaytraceFBO2[aFBOIdx] : myRaytraceFBO1[aFBOIdx]; + aRenderFramebuffer = (myAccumFrames + aPassIndex) % 2 ? myRaytraceFBO1[aFBOIdx] : myRaytraceFBO2[aFBOIdx]; + anAccumFramebuffer = (myAccumFrames + aPassIndex) % 2 ? myRaytraceFBO2[aFBOIdx] : myRaytraceFBO1[aFBOIdx]; aRenderFramebuffer->BindBuffer (theGlContext); @@ -2429,14 +2429,14 @@ Standard_Boolean OpenGl_View::runRaytraceShaders (const Standard_Integer // Set frame accumulation weight myRaytraceProgram->SetUniform (theGlContext, - myUniformLocations[0][OpenGl_RT_uSampleWeight], 1.f / (myAccumFrames + 1)); + myUniformLocations[0][OpenGl_RT_uSampleWeight], 1.f / (myAccumFrames + aPassIndex + 1)); // Set random number generator seed myRaytraceProgram->SetUniform (theGlContext, myUniformLocations[0][OpenGl_RT_uFrameRndSeed], static_cast (myRNG.NextInt() >> 2)); theGlContext->core20fwd->glDrawArrays (GL_TRIANGLES, 0, 6); - ++myAccumFrames; + //++myAccumFrames; glFinish(); } } diff --git a/src/OpenGl/OpenGl_View_Redraw.cxx b/src/OpenGl/OpenGl_View_Redraw.cxx index 28f354b5dd..bb4a2936b4 100644 --- a/src/OpenGl/OpenGl_View_Redraw.cxx +++ b/src/OpenGl/OpenGl_View_Redraw.cxx @@ -475,7 +475,8 @@ void OpenGl_View::Redraw() if (myRenderParams.Method == Graphic3d_RM_RAYTRACING && myRenderParams.IsGlobalIlluminationEnabled) { - myAccumFrames++; + //myAccumFrames++; + myAccumFrames += myRenderParams.SamplesPerPixel ? myRenderParams.SamplesPerPixel : 1; } // bind default FBO -- 2.39.5