UI: Optional Complex Layout for Workspace Status #120595

Merged
Harley Acheson merged 51 commits from Harley/blender:WorkspaceStatus into main 2024-05-06 23:52:47 +02:00
8 changed files with 16 additions and 12 deletions
Showing only changes of commit 2dce8d6dd2 - Show all commits

View File

@ -573,7 +573,7 @@ class RENDER_PT_eevee_next_raytracing(RenderButtonsPanel, Panel):
options = context.scene.eevee.ray_tracing_options
col.prop(options, "resolution_scale")
col.prop(options, "screen_trace_max_roughness", text="Max Roughness")
col.prop(options, "trace_max_roughness", text="Max Roughness")
# TODO Move it to raytracing options
col.prop(props, "horizon_bias", text="Bias")

View File

@ -6,6 +6,8 @@
* \ingroup bke
*/
#include "BLI_utildefines.h"
#include "BKE_subdiv_topology.hh"
#include "BKE_subdiv.hh"
@ -20,6 +22,7 @@ int topology_num_fvar_layers_get(const Subdiv *subdiv)
OpenSubdiv_TopologyRefiner *topology_refiner = subdiv->topology_refiner;
return topology_refiner->getNumFVarChannels();
#else
UNUSED_VARS(subdiv);
return 0;
#endif
}

View File

@ -2830,7 +2830,7 @@ void blo_do_versions_400(FileData *fd, Library * /*lib*/, Main *bmain)
RAYTRACE_EEVEE_DENOISE_BILATERAL;
scene->eevee.ray_tracing_options.screen_trace_quality = 0.25f;
scene->eevee.ray_tracing_options.screen_trace_thickness = 0.2f;
scene->eevee.ray_tracing_options.screen_trace_max_roughness = 0.5f;
scene->eevee.ray_tracing_options.trace_max_roughness = 0.5f;
scene->eevee.ray_tracing_options.sample_clamp = 10.0f;
scene->eevee.ray_tracing_options.resolution_scale = 2;
}

View File

@ -335,7 +335,7 @@ RayTraceResult RayTraceModule::render(RayTraceBuffer &rt_buffer,
RaytraceEEVEE options = ray_tracing_options_;
bool use_horizon_scan = options.screen_trace_max_roughness < 1.0f;
bool use_horizon_scan = options.trace_max_roughness < 1.0f;
const int resolution_scale = max_ii(1, power_of_2_max_i(options.resolution_scale));
const int horizon_resolution_scale = max_ii(
@ -380,7 +380,7 @@ RayTraceResult RayTraceModule::render(RayTraceBuffer &rt_buffer,
raytrace_denoise_tiles_buf_.resize(ceil_to_multiple_u(denoise_tile_count, 512));
/* Data for tile classification. */
float roughness_mask_start = options.screen_trace_max_roughness;
float roughness_mask_start = options.trace_max_roughness;
float roughness_mask_fade = 0.2f;
data_.roughness_mask_scale = 1.0 / roughness_mask_fade;
data_.roughness_mask_bias = data_.roughness_mask_scale * roughness_mask_start;
@ -514,7 +514,7 @@ RayTraceResultTexture RayTraceModule::trace(
data_.quality = 1.0f - 0.95f * options.screen_trace_quality;
data_.brightness_clamp = (options.sample_clamp > 0.0) ? options.sample_clamp : 1e20;
float roughness_mask_start = options.screen_trace_max_roughness;
float roughness_mask_start = options.trace_max_roughness;
float roughness_mask_fade = 0.2f;
data_.roughness_mask_scale = 1.0 / roughness_mask_fade;
data_.roughness_mask_bias = data_.roughness_mask_scale * roughness_mask_start;

View File

@ -598,9 +598,6 @@ static void gesture_end(bContext & /*C*/, gesture::GestureData &gesture_data)
static void init_operation(gesture::GestureData &gesture_data, wmOperator &op)
{
gesture_data.operation = reinterpret_cast<gesture::Operation *>(
MEM_cnew<TrimOperation>(__func__));
TrimOperation *trim_operation = (TrimOperation *)gesture_data.operation;
trim_operation->op.begin = gesture_begin;
@ -725,6 +722,8 @@ static int gesture_box_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
gesture_data->operation = reinterpret_cast<gesture::Operation *>(
MEM_cnew<TrimOperation>(__func__));
initialize_cursor_info(*C, *op, *gesture_data);
init_operation(*gesture_data, *op);
@ -754,6 +753,8 @@ static int gesture_lasso_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
gesture_data->operation = reinterpret_cast<gesture::Operation *>(
MEM_cnew<TrimOperation>(__func__));
initialize_cursor_info(*C, *op, *gesture_data);
init_operation(*gesture_data, *op);

View File

@ -164,7 +164,7 @@
RAYTRACE_EEVEE_DENOISE_BILATERAL, \
.screen_trace_quality = 0.25f, \
.screen_trace_thickness = 0.2f, \
.screen_trace_max_roughness = 0.5f, \
.trace_max_roughness = 0.5f, \
.sample_clamp = 10.0f, \
.resolution_scale = 2, \
}

View File

@ -1800,7 +1800,7 @@ typedef struct RaytraceEEVEE {
/** Thickness in world space each surface will have during screen space tracing. */
float screen_trace_thickness;
/** Maximum roughness before using horizon scan. */
float screen_trace_max_roughness;
float trace_max_roughness;
/** Resolution downscale factor. */
int resolution_scale;
/** Maximum intensity a ray can have. */

View File

@ -7758,10 +7758,10 @@ static void rna_def_raytrace_eevee(BlenderRNA *brna)
RNA_def_property_override_flag(prop, PROPOVERRIDE_OVERRIDABLE_LIBRARY);
RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, nullptr);
prop = RNA_def_property(srna, "screen_trace_max_roughness", PROP_FLOAT, PROP_FACTOR);
prop = RNA_def_property(srna, "trace_max_roughness", PROP_FLOAT, PROP_FACTOR);
RNA_def_property_ui_text(
prop,
"Screen-Trace Max Roughness",
"Raytrace Max Roughness",
"Maximum roughness to use the tracing pipeline for. Higher "
"roughness surfaces will use horizon scan. A value of 1 will disable horizon scan");
RNA_def_property_range(prop, 0.0f, 1.0f);