@@ -352,6 +352,7 @@ void Ray::Vk::Renderer::RenderScene(const SceneBase &scene, RegionContext ®io
352352 ++region.iteration ;
353353
354354 const Ray::camera_t &cam = s.cams_ [s.current_cam ()._index ];
355+ const float cam_exposure = std::pow (2 .0f , cam.exposure );
355356
356357 // TODO: Use common command buffer for all uploads
357358 if (cam.filter != filter_table_filter_ || cam.filter_width != filter_table_width_) {
@@ -396,7 +397,7 @@ void Ray::Vk::Renderer::RenderScene(const SceneBase &scene, RegionContext ®io
396397
397398 cache_grid_params_t cache_grid_params;
398399 memcpy (cache_grid_params.cam_pos_curr , cam.origin , 3 * sizeof (float ));
399- cache_grid_params.exposure = std::pow ( 2 . 0f , cam. exposure ) ;
400+ cache_grid_params.exposure = cam_exposure ;
400401
401402 CommandBuffer cmd_buf = {};
402403 if (external_cmd_buf_.vk_cmd_buf ) {
@@ -690,13 +691,11 @@ void Ray::Vk::Renderer::RenderScene(const SceneBase &scene, RegionContext ®io
690691 { // prepare result
691692 DebugMarker _ (ctx_.get (), cmd_buf, " Prepare Result" );
692693
693- const float exposure = std::pow (2 .0f , cam.exposure );
694-
695694 // factor used to compute incremental average
696695 const float mix_factor = 1 .0f / float (region.iteration );
697696 const float half_mix_factor = 1 .0f / float ((region.iteration + 1 ) / 2 );
698697
699- kernel_MixIncremental (cmd_buf, mix_factor, half_mix_factor, rect, region.iteration , exposure , temp_buf0_,
698+ kernel_MixIncremental (cmd_buf, mix_factor, half_mix_factor, rect, region.iteration , cam_exposure , temp_buf0_,
700699 temp_buf1_, temp_depth_normals_buf_, required_samples_buf_, full_buf_, half_buf_,
701700 base_color_buf_, depth_normals_buf_);
702701 }
0 commit comments