Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/blender/blender_session.cpp
| Show First 20 Lines • Show All 498 Lines • ▼ Show 20 Lines | if(session_params.device.advanced_shading) { | ||||
| continue; | continue; | ||||
| if(pass_type != PASS_NONE) | if(pass_type != PASS_NONE) | ||||
| Pass::add(pass_type, passes); | Pass::add(pass_type, passes); | ||||
| } | } | ||||
| } | } | ||||
| buffer_params.passes = passes; | buffer_params.passes = passes; | ||||
| buffer_params.denoising_data_pass = b_layer_iter->use_denoising(); | buffer_params.denoising_data_pass = b_layer_iter->use_denoising(); | ||||
| session->tile_manager.schedule_denoising = b_layer_iter->use_denoising(); | |||||
| session->params.use_denoising = b_layer_iter->use_denoising(); | |||||
| scene->film->denoising_data_pass = buffer_params.denoising_data_pass; | scene->film->denoising_data_pass = buffer_params.denoising_data_pass; | ||||
| scene->film->denoising_flags = 0; | scene->film->denoising_flags = 0; | ||||
| if(!b_layer_iter->denoising_diffuse_direct()) scene->film->denoising_flags |= DENOISING_CLEAN_DIFFUSE_DIR; | if(!b_layer_iter->denoising_diffuse_direct()) scene->film->denoising_flags |= DENOISING_CLEAN_DIFFUSE_DIR; | ||||
| if(!b_layer_iter->denoising_diffuse_indirect()) scene->film->denoising_flags |= DENOISING_CLEAN_DIFFUSE_IND; | if(!b_layer_iter->denoising_diffuse_indirect()) scene->film->denoising_flags |= DENOISING_CLEAN_DIFFUSE_IND; | ||||
| if(!b_layer_iter->denoising_glossy_direct()) scene->film->denoising_flags |= DENOISING_CLEAN_GLOSSY_DIR; | if(!b_layer_iter->denoising_glossy_direct()) scene->film->denoising_flags |= DENOISING_CLEAN_GLOSSY_DIR; | ||||
| if(!b_layer_iter->denoising_glossy_indirect()) scene->film->denoising_flags |= DENOISING_CLEAN_GLOSSY_IND; | if(!b_layer_iter->denoising_glossy_indirect()) scene->film->denoising_flags |= DENOISING_CLEAN_GLOSSY_IND; | ||||
| if(!b_layer_iter->denoising_transmission_direct()) scene->film->denoising_flags |= DENOISING_CLEAN_TRANSMISSION_DIR; | if(!b_layer_iter->denoising_transmission_direct()) scene->film->denoising_flags |= DENOISING_CLEAN_TRANSMISSION_DIR; | ||||
| if(!b_layer_iter->denoising_transmission_indirect()) scene->film->denoising_flags |= DENOISING_CLEAN_TRANSMISSION_IND; | if(!b_layer_iter->denoising_transmission_indirect()) scene->film->denoising_flags |= DENOISING_CLEAN_TRANSMISSION_IND; | ||||
| if(!b_layer_iter->denoising_subsurface_direct()) scene->film->denoising_flags |= DENOISING_CLEAN_SUBSURFACE_DIR; | if(!b_layer_iter->denoising_subsurface_direct()) scene->film->denoising_flags |= DENOISING_CLEAN_SUBSURFACE_DIR; | ||||
| if(!b_layer_iter->denoising_subsurface_indirect()) scene->film->denoising_flags |= DENOISING_CLEAN_SUBSURFACE_IND; | if(!b_layer_iter->denoising_subsurface_indirect()) scene->film->denoising_flags |= DENOISING_CLEAN_SUBSURFACE_IND; | ||||
| scene->film->denoising_clean_pass = (scene->film->denoising_flags & DENOISING_CLEAN_ALL_PASSES); | scene->film->denoising_clean_pass = (scene->film->denoising_flags & DENOISING_CLEAN_ALL_PASSES); | ||||
| buffer_params.denoising_clean_pass = scene->film->denoising_clean_pass; | buffer_params.denoising_clean_pass = scene->film->denoising_clean_pass; | ||||
| session->params.denoising_radius = b_layer_iter->denoising_radius(); | |||||
| session->params.denoising_k2 = powf(2.0f, b_layer_iter->denoising_strength() - 1.0f); | |||||
| session->params.denoising_relative_pca = b_layer_iter->denoising_relative_pca(); | |||||
| scene->film->pass_alpha_threshold = b_layer_iter->pass_alpha_threshold(); | scene->film->pass_alpha_threshold = b_layer_iter->pass_alpha_threshold(); | ||||
| scene->film->tag_passes_update(scene, passes); | scene->film->tag_passes_update(scene, passes); | ||||
| scene->film->tag_update(scene); | scene->film->tag_update(scene); | ||||
| scene->integrator->tag_update(scene); | scene->integrator->tag_update(scene); | ||||
brecht: Could this be computed in `DenoisingTask::init_from_devicetask`? So that the code can be shared… | |||||
| int view_index = 0; | int view_index = 0; | ||||
| for(b_rr.views.begin(b_view_iter); b_view_iter != b_rr.views.end(); ++b_view_iter, ++view_index) { | for(b_rr.views.begin(b_view_iter); b_view_iter != b_rr.views.end(); ++b_view_iter, ++view_index) { | ||||
| b_rview_name = b_view_iter->name(); | b_rview_name = b_view_iter->name(); | ||||
| /* set the current view */ | /* set the current view */ | ||||
| b_engine.active_view_set(b_rview_name.c_str()); | b_engine.active_view_set(b_rview_name.c_str()); | ||||
| ▲ Show 20 Lines • Show All 866 Lines • Show Last 20 Lines | |||||
Could this be computed in DenoisingTask::init_from_devicetask? So that the code can be shared with non-Blender integrations.