Skip to content

Commit

Permalink
Reorganize Path Guiding Settings
Browse files Browse the repository at this point in the history
  • Loading branch information
Mango-3 committed Sep 23, 2019
1 parent ae7e9f6 commit 0747fe6
Show file tree
Hide file tree
Showing 6 changed files with 82 additions and 74 deletions.
51 changes: 30 additions & 21 deletions src/appleseed-max-impl/appleseedrenderer/appleseedrenderer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ namespace
ParamIdGPTSamplingFractionLearningRate = 92,
ParamIdGPTSamplingFractionMode = 93,
ParamIdGPTFixedSamplingFractionRatio = 94,
ParamIdGPTEnablePathGuiding = 95,

ParamIdSPPMPhotonType = 57,
ParamIdSPPMDirectLightingType = 58,
Expand Down Expand Up @@ -224,7 +225,6 @@ namespace
{ IDS_RENDERERPARAMS_DENOISE_MODE_3, L"Write Outputs" },
{ IDS_RENDERERPARAMS_LIGHTING_ALGORITHM_1, L"Path Tracing" },
{ IDS_RENDERERPARAMS_LIGHTING_ALGORITHM_2, L"Stochastic Progressive Photon Mapping" },
{ IDS_RENDERERPARAMS_LIGHTING_ALGORITHM_3, L"Guided Path Tracing" },
{ IDS_RENDERERPARAMS_LIGHT_SAMPLER_TYPE_1, L"CDF" },
{ IDS_RENDERERPARAMS_SHADER_OVERRIDE_1, L"No Override" },
{ IDS_RENDERERPARAMS_SHADER_OVERRIDE_2, L"Albedo" },
Expand Down Expand Up @@ -706,6 +706,10 @@ void AppleseedRendererPBlockAccessor::Get(
// Guided Path Tracer.
//

case ParamIdGPTEnablePathGuiding:
v.i = static_cast<int>(settings.m_gpt_enable_path_guiding);
break;

case ParamIdGPTSamplesPerPass:
v.i = settings.m_gpt_samples_per_pass;
break;
Expand Down Expand Up @@ -1139,6 +1143,10 @@ void AppleseedRendererPBlockAccessor::Set(
// Guided Path Tracer.
//

case ParamIdGPTEnablePathGuiding:
settings.m_gpt_enable_path_guiding = v.i > 0;
break;

case ParamIdGPTSamplesPerPass:
settings.m_gpt_samples_per_pass = v.i;
break;
Expand Down Expand Up @@ -1209,7 +1217,7 @@ ParamBlockDesc2 g_param_block_desc(
0, // parameter block's reference number

// --- P_MULTIMAP arguments ---
8,
7,

// --- P_AUTO_UI arguments for Parameters rollup ---

Expand Down Expand Up @@ -1262,13 +1270,6 @@ ParamBlockDesc2 g_param_block_desc(
0, // rollup creation flag
nullptr,

ParamMapIdGuidedPathTracer,
IDD_FORMVIEW_RENDERERPARAMS_GUIDED_PATH_TRACING, // ID of the dialog template
0, // ID of the dialog's title string
0, // IParamMap2 creation/deletion flag mask
0, // rollup creation flag
nullptr,


// --- Parameters specifications for Output rollup ---

Expand Down Expand Up @@ -1434,7 +1435,7 @@ ParamBlockDesc2 g_param_block_desc(

ParamIdLightingAlgorithm, L"lighting_algorithm", TYPE_INT, P_TRANSIENT, 0,
p_ui, ParamMapIdLighting, TYPE_INT_COMBOBOX, IDC_COMBO_LIGHTING_ALGORITHM,
3, IDS_RENDERERPARAMS_LIGHTING_ALGORITHM_1, IDS_RENDERERPARAMS_LIGHTING_ALGORITHM_2, IDS_RENDERERPARAMS_LIGHTING_ALGORITHM_3,
2, IDS_RENDERERPARAMS_LIGHTING_ALGORITHM_1, IDS_RENDERERPARAMS_LIGHTING_ALGORITHM_2,
p_default, 0,
p_accessor, &g_pblock_accessor,
p_end,
Expand Down Expand Up @@ -1851,46 +1852,54 @@ ParamBlockDesc2 g_param_block_desc(
p_accessor, &g_pblock_accessor,
p_end,
// --- Parameters specifications for Guided Path Tracer rollup ---
// --- Parameters specifications for Guided Path Tracer ---
ParamIdGPTEnablePathGuiding, L"enable_path_guiding", TYPE_BOOL, P_TRANSIENT, 0,
p_ui, ParamMapIdPathTracer, TYPE_SINGLECHEKBOX, IDC_CHECK_GPT_ENABLE_PATH_GUIDING,
p_default, FALSE,
p_enable_ctrls, 10, ParamIdGPTSamplesPerPass, ParamIdGPTGuidedPathLimit, ParamIdGPTSpatialFilterType, ParamIdGPTFixedSamplingFractionRatio, ParamIdGPTEnableGuidedPathLimit,
ParamIdGPTDirectionalFilterType, ParamIdGPTGuidedBounceMode, ParamIdGPTSamplingFractionLearningRate, ParamIdGPTIterationProgressionMode, ParamIdGPTSamplingFractionMode,
p_accessor, & g_pblock_accessor,
p_end,
ParamIdGPTSamplesPerPass, L"gpt_samples_per_pass", TYPE_INT, P_TRANSIENT, 0,
p_ui, ParamMapIdGuidedPathTracer, TYPE_SPINNER, EDITTYPE_POS_INT, IDC_TEXT_GPT_SAMPLES_PER_PASS, IDC_SPINNER_GPT_SAMPLES_PER_PASS, SPIN_AUTOSCALE,
p_ui, ParamMapIdPathTracer, TYPE_SPINNER, EDITTYPE_POS_INT, IDC_TEXT_GPT_SAMPLES_PER_PASS, IDC_SPINNER_GPT_SAMPLES_PER_PASS, SPIN_AUTOSCALE,
p_default, 8,
p_range, 1, 1000000,
p_accessor, & g_pblock_accessor,
p_end,
ParamIdGPTEnableGuidedPathLimit, L"enable_path_guide_limit", TYPE_BOOL, P_TRANSIENT, 0,
p_ui, ParamMapIdGuidedPathTracer, TYPE_SINGLECHEKBOX, IDC_CHECK_GPT_GUIDED_PATH_LENGTH,
p_ui, ParamMapIdPathTracer, TYPE_SINGLECHEKBOX, IDC_CHECK_GPT_GUIDED_PATH_LENGTH,
p_default, TRUE,
p_enable_ctrls, 1, ParamIdGPTGuidedPathLimit,
p_accessor, & g_pblock_accessor,
p_end,
ParamIdGPTGuidedPathLimit, L"path_guide_limit", TYPE_INT, P_TRANSIENT, 0,
p_ui, ParamMapIdGuidedPathTracer, TYPE_SPINNER, EDITTYPE_INT, IDC_TEXT_GPT_GUIDED_PATH_LENGTH, IDC_SPINNER_GPT_GUIDED_PATH_LENGTH, SPIN_AUTOSCALE,
p_ui, ParamMapIdPathTracer, TYPE_SPINNER, EDITTYPE_INT, IDC_TEXT_GPT_GUIDED_PATH_LENGTH, IDC_SPINNER_GPT_GUIDED_PATH_LENGTH, SPIN_AUTOSCALE,
p_default, 8,
p_range, 1, 100,
p_accessor, & g_pblock_accessor,
p_end,
ParamIdGPTSpatialFilterType, L"spatial_filter_type", TYPE_INT, P_TRANSIENT, 0,
p_ui, ParamMapIdGuidedPathTracer, TYPE_INT_COMBOBOX, IDC_COMBO_GPT_SPATIAL_FILTER_TYPE,
p_ui, ParamMapIdPathTracer, TYPE_INT_COMBOBOX, IDC_COMBO_GPT_SPATIAL_FILTER_TYPE,
3, IDS_RENDERERPARAMS_GPT_SPATIAL_FILTER_TYPE_1, IDS_RENDERERPARAMS_GPT_SPATIAL_FILTER_TYPE_2,
IDS_RENDERERPARAMS_GPT_SPATIAL_FILTER_TYPE_3,
p_default, 0,
p_accessor, & g_pblock_accessor,
p_end,
ParamIdGPTDirectionalFilterType, L"directional_filter_type", TYPE_INT, P_TRANSIENT, 0,
p_ui, ParamMapIdGuidedPathTracer, TYPE_INT_COMBOBOX, IDC_COMBO_GPT_DIRECTIONAL_FILTER_TYPE,
p_ui, ParamMapIdPathTracer, TYPE_INT_COMBOBOX, IDC_COMBO_GPT_DIRECTIONAL_FILTER_TYPE,
2, IDS_RENDERERPARAMS_GPT_DIRECTIONAL_FILTER_TYPE_1, IDS_RENDERERPARAMS_GPT_DIRECTIONAL_FILTER_TYPE_2,
p_default, 0,
p_accessor, & g_pblock_accessor,
p_end,
ParamIdGPTGuidedBounceMode, L"guided_bounce_mode", TYPE_INT, P_TRANSIENT, 0,
p_ui, ParamMapIdGuidedPathTracer, TYPE_INT_COMBOBOX, IDC_COMBO_GPT_GUIDED_BOUNCE_MODE_TYPE,
p_ui, ParamMapIdPathTracer, TYPE_INT_COMBOBOX, IDC_COMBO_GPT_GUIDED_BOUNCE_MODE_TYPE,
5, IDS_RENDERERPARAMS_GPT_GUIDED_BOUNCE_MODE_TYPE_1, IDS_RENDERERPARAMS_GPT_GUIDED_BOUNCE_MODE_TYPE_2,
IDS_RENDERERPARAMS_GPT_GUIDED_BOUNCE_MODE_TYPE_3, IDS_RENDERERPARAMS_GPT_GUIDED_BOUNCE_MODE_TYPE_4,
IDS_RENDERERPARAMS_GPT_GUIDED_BOUNCE_MODE_TYPE_5,
Expand All @@ -1899,28 +1908,28 @@ ParamBlockDesc2 g_param_block_desc(
p_end,
ParamIdGPTSamplingFractionLearningRate, L"sampling_fraction_learning_rate", TYPE_FLOAT, P_TRANSIENT, 0,
p_ui, ParamMapIdGuidedPathTracer, TYPE_SPINNER, EDITTYPE_FLOAT, IDC_TEXT_GPT_SAMPLING_FRACTION_LEARNING_RATE, IDC_SPINNER_GPT_SAMPLING_FRACTION_LEARNING_RATE, SPIN_AUTOSCALE,
p_ui, ParamMapIdPathTracer, TYPE_SPINNER, EDITTYPE_FLOAT, IDC_TEXT_GPT_SAMPLING_FRACTION_LEARNING_RATE, IDC_SPINNER_GPT_SAMPLING_FRACTION_LEARNING_RATE, SPIN_AUTOSCALE,
p_default, 0.01f,
p_range, 1.0e-6f, 0.99f,
p_accessor, & g_pblock_accessor,
p_end,
ParamIdGPTIterationProgressionMode, L"iteration_progression_mode", TYPE_INT, P_TRANSIENT, 0,
p_ui, ParamMapIdGuidedPathTracer, TYPE_INT_COMBOBOX, IDC_COMBO_GPT_ITERATION_PROGRESSION_TYPE,
p_ui, ParamMapIdPathTracer, TYPE_INT_COMBOBOX, IDC_COMBO_GPT_ITERATION_PROGRESSION_TYPE,
2, IDS_RENDERERPARAMS_GPT_ITERATION_PROGRESSION_TYPE_1, IDS_RENDERERPARAMS_GPT_ITERATION_PROGRESSION_TYPE_2,
p_default, 0,
p_accessor, & g_pblock_accessor,
p_end,
ParamIdGPTFixedSamplingFractionRatio, L"fixed_sampling_fraction_ratio", TYPE_FLOAT, P_TRANSIENT, 0,
p_ui, ParamMapIdGuidedPathTracer, TYPE_SPINNER, EDITTYPE_FLOAT, IDC_TEXT_GPT_FIXED_BSDF_SAMPLING_FRACTION, IDC_SPINNER_GPT_FIXED_BSDF_SAMPLING_FRACTION, SPIN_AUTOSCALE,
p_ui, ParamMapIdPathTracer, TYPE_SPINNER, EDITTYPE_FLOAT, IDC_TEXT_GPT_FIXED_BSDF_SAMPLING_FRACTION, IDC_SPINNER_GPT_FIXED_BSDF_SAMPLING_FRACTION, SPIN_AUTOSCALE,
p_default, 0.5f,
p_range, 1.0e-6f, 0.99f,
p_accessor, & g_pblock_accessor,
p_end,
ParamIdGPTSamplingFractionMode, L"bsdf_sampling_fraction_mode", TYPE_INT, P_TRANSIENT, 0,
p_ui, ParamMapIdGuidedPathTracer, TYPE_INT_COMBOBOX, IDC_COMBO_GPT_SAMPLING_FRACTION_MODE_TYPE,
p_ui, ParamMapIdPathTracer, TYPE_INT_COMBOBOX, IDC_COMBO_GPT_SAMPLING_FRACTION_MODE_TYPE,
2, IDS_RENDERERPARAMS_GPT_SAMPLING_FRACTION_MODE_TYPE_1, IDS_RENDERERPARAMS_GPT_SAMPLING_FRACTION_MODE_TYPE_2,
p_default, 0,
p_accessor, & g_pblock_accessor,
Expand Down
76 changes: 40 additions & 36 deletions src/appleseed-max-impl/appleseedrenderer/appleseedrenderer.rc
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ BEGIN
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,4,162,124,10
END

IDD_FORMVIEW_RENDERERPARAMS_PATH_TRACING DIALOGEX 0, 0, 200, 210
IDD_FORMVIEW_RENDERERPARAMS_PATH_TRACING DIALOGEX 0, 0, 200, 408
STYLE DS_SETFONT | WS_CHILD | WS_VISIBLE
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
Expand Down Expand Up @@ -174,6 +174,42 @@ BEGIN
"SpinnerControl",WS_TABSTOP,124,115,6,10
CONTROL "Optimize For Lights Outside Volumes",IDC_CHECK_LIGHT_OUTSIDE_VOLUMES,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,0,132,130,10
LTEXT "Samples Per Pass:",IDC_STATIC_GPT_SAMPLES_PER_PASS,7,241,65,8
CONTROL "Samples Per Pass",IDC_TEXT_GPT_SAMPLES_PER_PASS,
"CustEdit",WS_TABSTOP,107,240,22,10
CONTROL "Samples Per Pass",IDC_SPINNER_GPT_SAMPLES_PER_PASS,
"SpinnerControl",WS_TABSTOP,131,240,6,10
CONTROL "Max. Guided Path Length",IDC_TEXT_GPT_GUIDED_PATH_LENGTH,
"CustEdit",WS_TABSTOP,107,328,21,10
CONTROL "Max. Guided Path Length",IDC_SPINNER_GPT_GUIDED_PATH_LENGTH,
"SpinnerControl",WS_TABSTOP,131,328,6,10
CONTROL "Max Guided Bounces:",IDC_CHECK_GPT_GUIDED_PATH_LENGTH,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,329,95,8
LTEXT "Spatial Filter:",IDC_STATIC,7,257,56,8
COMBOBOX IDC_COMBO_GPT_SPATIAL_FILTER_TYPE,107,254,71,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Directional Filter:",IDC_STATIC,7,272,55,8
COMBOBOX IDC_COMBO_GPT_DIRECTIONAL_FILTER_TYPE,107,270,71,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Guided Bounce Mode:",IDC_STATIC,7,313,73,8
COMBOBOX IDC_COMBO_GPT_GUIDED_BOUNCE_MODE_TYPE,107,311,83,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Learning Rate:",IDC_STATIC_GPT_SAMPLING_FRACTION_LEARNING_RATE,7,374,48,8
CONTROL "BSDF Sampling Fraction Learning Rate",IDC_TEXT_GPT_SAMPLING_FRACTION_LEARNING_RATE,
"CustEdit",WS_TABSTOP,107,373,30,10
CONTROL "BSDF Sampling Fraction Learning Rate",IDC_SPINNER_GPT_SAMPLING_FRACTION_LEARNING_RATE,
"SpinnerControl",WS_TABSTOP,138,373,6,10
LTEXT "Iteration Progression:",IDC_STATIC,7,288,83,8
COMBOBOX IDC_COMBO_GPT_ITERATION_PROGRESSION_TYPE,107,286,84,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Mode:",IDC_STATIC,7,359,102,8
COMBOBOX IDC_COMBO_GPT_SAMPLING_FRACTION_MODE_TYPE,107,356,39,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Fixed Fraction:",IDC_STATIC_GPT_FIXED_BSDF_SAMPLING_FRACTION,7,388,101,8
CONTROL "Fixed BSDF Sampling Fraction",IDC_TEXT_GPT_FIXED_BSDF_SAMPLING_FRACTION,
"CustEdit",WS_TABSTOP,107,388,30,10
CONTROL "Fixed BSDF Sampling Fraction",IDC_SPINNER_GPT_FIXED_BSDF_SAMPLING_FRACTION,
"SpinnerControl",WS_TABSTOP,138,388,6,10
GROUPBOX "BSDF / SD-Tree Sampling Fraction",IDC_STATIC,4,345,190,56
GROUPBOX "Path Continuation",IDC_STATIC,4,300,190,42
CONTROL "Enable Guided Path Tracing",IDC_CHECK_GPT_ENABLE_PATH_GUIDING,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,227,105,10
GROUPBOX "Guided Path Tracing",IDC_STATIC,0,215,198,190
END

IDD_FORMVIEW_RENDERERPARAMS_SYSTEM DIALOGEX 0, 0, 200, 96
Expand Down Expand Up @@ -350,43 +386,10 @@ BEGIN
"SpinnerControl",WS_TABSTOP,125,140,6,10
END

IDD_FORMVIEW_RENDERERPARAMS_GUIDED_PATH_TRACING DIALOGEX 0, 0, 200, 163
IDD_FORMVIEW_RENDERERPARAMS_GUIDED_PATH_TRACING DIALOGEX 0, 0, 200, 17
STYLE DS_SETFONT | WS_CHILD | WS_VISIBLE
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
LTEXT "Samples Per Pass:",IDC_STATIC_GPT_SAMPLES_PER_PASS,0,1,65,8
CONTROL "Samples Per Pass",IDC_TEXT_GPT_SAMPLES_PER_PASS,
"CustEdit",WS_TABSTOP,107,0,22,10
CONTROL "Samples Per Pass",IDC_SPINNER_GPT_SAMPLES_PER_PASS,
"SpinnerControl",WS_TABSTOP,131,0,6,10
CONTROL "Max. Guided Path Length",IDC_TEXT_GPT_GUIDED_PATH_LENGTH,
"CustEdit",WS_TABSTOP,107,87,21,10
CONTROL "Max. Guided Path Length",IDC_SPINNER_GPT_GUIDED_PATH_LENGTH,
"SpinnerControl",WS_TABSTOP,131,87,6,10
CONTROL "Max. Guided Bounces:",IDC_CHECK_GPT_GUIDED_PATH_LENGTH,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,4,88,95,8
LTEXT "Spatial Filter:",IDC_STATIC,0,17,56,8
COMBOBOX IDC_COMBO_GPT_SPATIAL_FILTER_TYPE,107,14,71,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Directional Filter:",IDC_STATIC,0,32,55,8
COMBOBOX IDC_COMBO_GPT_DIRECTIONAL_FILTER_TYPE,107,30,71,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Guided Bounce Mode:",IDC_STATIC,4,72,73,8
COMBOBOX IDC_COMBO_GPT_GUIDED_BOUNCE_MODE_TYPE,107,70,92,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Learning Rate:",IDC_STATIC_GPT_SAMPLING_FRACTION_LEARNING_RATE,3,132,48,8
CONTROL "BSDF Sampling Fraction Learning Rate",IDC_TEXT_GPT_SAMPLING_FRACTION_LEARNING_RATE,
"CustEdit",WS_TABSTOP,107,131,30,10
CONTROL "BSDF Sampling Fraction Learning Rate",IDC_SPINNER_GPT_SAMPLING_FRACTION_LEARNING_RATE,
"SpinnerControl",WS_TABSTOP,138,131,6,10
LTEXT "Iteration Progression:",IDC_STATIC,0,48,100,8
COMBOBOX IDC_COMBO_GPT_ITERATION_PROGRESSION_TYPE,107,46,92,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Mode:",IDC_STATIC,3,117,102,8
COMBOBOX IDC_COMBO_GPT_SAMPLING_FRACTION_MODE_TYPE,107,114,39,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Fixed Fraction:",IDC_STATIC_GPT_FIXED_BSDF_SAMPLING_FRACTION,3,146,101,8
CONTROL "Fixed BSDF Sampling Fraction",IDC_TEXT_GPT_FIXED_BSDF_SAMPLING_FRACTION,
"CustEdit",WS_TABSTOP,107,146,30,10
CONTROL "Fixed BSDF Sampling Fraction",IDC_SPINNER_GPT_FIXED_BSDF_SAMPLING_FRACTION,
"SpinnerControl",WS_TABSTOP,138,146,6,10
GROUPBOX "BSDF / SD-Tree Sampling Fraction",IDC_STATIC,0,105,199,54
GROUPBOX "Path Continuation",IDC_STATIC,0,61,199,39
END


Expand All @@ -410,6 +413,7 @@ BEGIN

IDD_FORMVIEW_RENDERERPARAMS_PATH_TRACING, DIALOG
BEGIN
BOTTOMMARGIN, 228
END

IDD_FORMVIEW_RENDERERPARAMS_SYSTEM, DIALOG
Expand Down Expand Up @@ -443,7 +447,7 @@ BEGIN

IDD_FORMVIEW_RENDERERPARAMS_GUIDED_PATH_TRACING, DIALOG
BEGIN
BOTTOMMARGIN, 156
BOTTOMMARGIN, 10
END
END
#endif // APSTUDIO_INVOKED
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -536,7 +536,6 @@ struct AppleseedRendererParamDlg::Impl
IParamMap2* m_pmap_image_sampling;
IParamMap2* m_pmap_lighting;
IParamMap2* m_pmap_pathtracer;
IParamMap2* m_pmap_guided_pathtracer;
IParamMap2* m_pmap_sppm;
IParamMap2* m_pmap_postprocessing;
IParamMap2* m_pmap_system;
Expand All @@ -549,7 +548,6 @@ struct AppleseedRendererParamDlg::Impl
, m_pmap_image_sampling(nullptr)
, m_pmap_lighting(nullptr)
, m_pmap_pathtracer(nullptr)
, m_pmap_guided_pathtracer(nullptr)
, m_pmap_sppm(nullptr)
, m_pmap_postprocessing(nullptr)
, m_pmap_system(nullptr)
Expand Down Expand Up @@ -597,15 +595,6 @@ struct AppleseedRendererParamDlg::Impl
L"Path Tracing",
0);

m_pmap_guided_pathtracer = CreateRParamMap2(
7,
renderer->GetParamBlock(0),
rend_params,
g_module,
MAKEINTRESOURCE(IDD_FORMVIEW_RENDERERPARAMS_GUIDED_PATH_TRACING),
L"Guided Path Tracing",
0);

m_pmap_sppm = CreateRParamMap2(
4,
renderer->GetParamBlock(0),
Expand Down Expand Up @@ -658,9 +647,6 @@ struct AppleseedRendererParamDlg::Impl
if (m_pmap_output != nullptr)
DestroyRParamMap2(m_pmap_output);

if (m_pmap_guided_pathtracer != nullptr)
DestroyRParamMap2(m_pmap_guided_pathtracer);

}
};

Expand Down
13 changes: 10 additions & 3 deletions src/appleseed-max-impl/appleseedrenderer/renderersettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ namespace
m_max_ray_intensity = 1.0f;
m_clamp_roughness = false;

m_gpt_enable_path_guiding = false;
m_gpt_samples_per_pass = 8;
m_gpt_enable_guided_bounce_limit = true;
m_gpt_max_guided_bounces = 8;
Expand Down Expand Up @@ -205,7 +206,6 @@ const char* get_lighting_engine_type(const int lighting_engine_type)
{
case 0: return "pt"; // unidirectional path tracing
case 1: return "sppm"; // stochastic progressive photon mapping
case 2: return "gpt"; // guided path tracing
default:
assert(!"Invalid lighting engine type.");
return "pt";
Expand Down Expand Up @@ -335,7 +335,11 @@ void RendererSettings::apply_common_settings(asr::Project& project, const char*
asr::ParamArray& params = project.configurations().get_by_name(config_name)->get_parameters();

params.insert_path("sampling_mode", "qmc");
params.insert_path("lighting_engine", get_lighting_engine_type(m_lighting_algorithm));

if (m_gpt_enable_path_guiding)
params.insert_path("lighting_engine", "gpt");
else params.insert_path("lighting_engine", get_lighting_engine_type(m_lighting_algorithm));


if (m_enable_light_importance_sampling)
params.insert_path("light_sampler.enable_importance_sampling", m_enable_light_importance_sampling);
Expand Down Expand Up @@ -372,7 +376,10 @@ void RendererSettings::apply_common_settings(asr::Project& project, const char*
params.insert_path("pt.rr_min_path_length", m_rr_min_path_length);
params.insert_path("pt.volume_distance_samples", m_volume_distance_samples);
params.insert_path("pt.optimize_for_lights_outside_volumes", m_optimize_for_lights_outside_volumes);
params.insert_path("pt.clamp_roughness", m_clamp_roughness);

// Disable roughness clamping for guided path tracing.
if (!m_gpt_enable_path_guiding)
params.insert_path("pt.clamp_roughness", m_clamp_roughness);

if (m_max_ray_intensity_set)
params.insert_path("pt.max_ray_intensity", m_max_ray_intensity);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ class RendererSettings
// Guided Path Tracer.
//

bool m_gpt_enable_path_guiding;
int m_gpt_samples_per_pass;
bool m_gpt_enable_guided_bounce_limit;
int m_gpt_max_guided_bounces;
Expand Down
Loading

0 comments on commit 0747fe6

Please sign in to comment.