0030476: Visualization, Path Tracing - Adaptive Screen Sampling leads to unstable...
[occt.git] / src / Shaders / Shaders_RaytraceBase_fs.pxx
index eeab5a9..43c36ba 100644 (file)
@@ -3,6 +3,8 @@
 static const char Shaders_RaytraceBase_fs[] =
   "#ifdef ADAPTIVE_SAMPLING\n"
   "  #extension GL_ARB_shader_image_load_store : require\n"
+  "#endif\n"
+  "#ifdef ADAPTIVE_SAMPLING_ATOMIC\n"
   "  #extension GL_NV_shader_atomic_float : require\n"
   "#endif\n"
   "\n"
@@ -100,10 +102,15 @@ static const char Shaders_RaytraceBase_fs[] =
   "\n"
   "#ifdef ADAPTIVE_SAMPLING\n"
   "  //! OpenGL image used for accumulating rendering result.\n"
-  "  volatile restrict layout(size1x32) uniform image2D  uRenderImage;\n"
+  "  volatile restrict layout(r32f) uniform image2D  uRenderImage;\n"
   "\n"
+  "#ifdef ADAPTIVE_SAMPLING_ATOMIC\n"
   "  //! OpenGL image storing offsets of sampled pixels blocks.\n"
-  "  coherent restrict layout(size2x32) uniform iimage2D uOffsetImage;\n"
+  "  coherent restrict layout(rg32i) uniform iimage2D uOffsetImage;\n"
+  "#else\n"
+  "  //! OpenGL image defining per-tile amount of samples.\n"
+  "  volatile restrict layout(r32i) uniform iimage2D uTilesImage;\n"
+  "#endif\n"
   "\n"
   "  //! Screen space tile size.\n"
   "  uniform ivec2 uTileSize;\n"
@@ -277,7 +284,7 @@ static const char Shaders_RaytraceBase_fs[] =
   "//=======================================================================\n"
   "vec4 BackgroundColor()\n"
   "{\n"
-  "#ifdef ADAPTIVE_SAMPLING\n"
+  "#ifdef ADAPTIVE_SAMPLING_ATOMIC\n"
   "\n"
   "  ivec2 aFragCoord = ivec2 (gl_FragCoord.xy);\n"
   "\n"