Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/scene/integrator.cpp
| Show First 20 Lines • Show All 79 Lines • ▼ Show 20 Lines | #endif | ||||
| SOCKET_INT(start_sample, "Start Sample", 0); | SOCKET_INT(start_sample, "Start Sample", 0); | ||||
| SOCKET_BOOLEAN(use_adaptive_sampling, "Use Adaptive Sampling", true); | SOCKET_BOOLEAN(use_adaptive_sampling, "Use Adaptive Sampling", true); | ||||
| SOCKET_FLOAT(adaptive_threshold, "Adaptive Threshold", 0.01f); | SOCKET_FLOAT(adaptive_threshold, "Adaptive Threshold", 0.01f); | ||||
| SOCKET_INT(adaptive_min_samples, "Adaptive Min Samples", 0); | SOCKET_INT(adaptive_min_samples, "Adaptive Min Samples", 0); | ||||
| SOCKET_FLOAT(light_sampling_threshold, "Light Sampling Threshold", 0.01f); | SOCKET_FLOAT(light_sampling_threshold, "Light Sampling Threshold", 0.01f); | ||||
| SOCKET_BOOLEAN(use_light_tree, "Use light tree to optimize many light sampling", false); | |||||
| SOCKET_FLOAT(splitting_threshold, "Splitting threshold", 0.85f); | |||||
| static NodeEnum sampling_pattern_enum; | static NodeEnum sampling_pattern_enum; | ||||
| sampling_pattern_enum.insert("sobol_burley", SAMPLING_PATTERN_SOBOL_BURLEY); | sampling_pattern_enum.insert("sobol_burley", SAMPLING_PATTERN_SOBOL_BURLEY); | ||||
| sampling_pattern_enum.insert("pmj", SAMPLING_PATTERN_PMJ); | sampling_pattern_enum.insert("pmj", SAMPLING_PATTERN_PMJ); | ||||
| SOCKET_ENUM(sampling_pattern, "Sampling Pattern", sampling_pattern_enum, SAMPLING_PATTERN_PMJ); | SOCKET_ENUM(sampling_pattern, "Sampling Pattern", sampling_pattern_enum, SAMPLING_PATTERN_PMJ); | ||||
| SOCKET_FLOAT(scrambling_distance, "Scrambling Distance", 1.0f); | SOCKET_FLOAT(scrambling_distance, "Scrambling Distance", 1.0f); | ||||
| static NodeEnum denoiser_type_enum; | static NodeEnum denoiser_type_enum; | ||||
| denoiser_type_enum.insert("optix", DENOISER_OPTIX); | denoiser_type_enum.insert("optix", DENOISER_OPTIX); | ||||
| ▲ Show 20 Lines • Show All 61 Lines • ▼ Show 20 Lines | void Integrator::device_update(Device *device, DeviceScene *dscene, Scene *scene) | ||||
| kintegrator->ao_additive_factor = ao_additive_factor; | kintegrator->ao_additive_factor = ao_additive_factor; | ||||
| #ifdef WITH_CYCLES_DEBUG | #ifdef WITH_CYCLES_DEBUG | ||||
| kintegrator->direct_light_sampling_type = direct_light_sampling_type; | kintegrator->direct_light_sampling_type = direct_light_sampling_type; | ||||
| #else | #else | ||||
| kintegrator->direct_light_sampling_type = DIRECT_LIGHT_SAMPLING_MIS; | kintegrator->direct_light_sampling_type = DIRECT_LIGHT_SAMPLING_MIS; | ||||
| #endif | #endif | ||||
| kintegrator->use_light_tree = scene->integrator->use_light_tree; | |||||
| kintegrator->splitting_threshold = scene->integrator->splitting_threshold; | |||||
| /* Transparent Shadows | /* Transparent Shadows | ||||
| * We only need to enable transparent shadows, if we actually have | * We only need to enable transparent shadows, if we actually have | ||||
| * transparent shaders in the scene. Otherwise we can disable it | * transparent shaders in the scene. Otherwise we can disable it | ||||
| * to improve performance a bit. */ | * to improve performance a bit. */ | ||||
| kintegrator->transparent_shadows = false; | kintegrator->transparent_shadows = false; | ||||
| foreach (Shader *shader, scene->shaders) { | foreach (Shader *shader, scene->shaders) { | ||||
| /* keep this in sync with SD_HAS_TRANSPARENT_SHADOW in shader.cpp */ | /* keep this in sync with SD_HAS_TRANSPARENT_SHADOW in shader.cpp */ | ||||
| if ((shader->has_surface_transparent && shader->get_use_transparent_shadow()) || | if ((shader->has_surface_transparent && shader->get_use_transparent_shadow()) || | ||||
| ▲ Show 20 Lines • Show All 185 Lines • Show Last 20 Lines | |||||