Compositor: Use original variable size in Blur node
Currently, the CPU compositor smoothes its input size in variable size mode. It is unclear why this is the case, but it seems the logic is that sharp transitions in the size input are undesirable. Alternatively, this is similar to the morphological blurring step in the Defocus node. But it does not use standard weights and it is not morphological in nature at all. This patch removes the smoothing step and uses the original size provided by the user. Looking at resources online, it seems users almost always expect the size inputs to be used directly, so there is no reason for force smooth their inputs. Pull Request: https://projects.blender.org/blender/blender/pulls/118757
This commit is contained in:
@@ -54,35 +54,13 @@ void BlurNode::convert_to_operations(NodeConverter &converter,
|
||||
converter.map_input_socket(get_input_socket(1), clamp->get_input_socket(0));
|
||||
converter.add_link(zero->get_output_socket(), clamp->get_input_socket(1));
|
||||
|
||||
GaussianAlphaXBlurOperation *operationx = new GaussianAlphaXBlurOperation();
|
||||
operationx->set_data(data);
|
||||
operationx->set_quality(quality);
|
||||
operationx->set_size(1.0f);
|
||||
operationx->set_falloff(PROP_SMOOTH);
|
||||
operationx->set_subtract(false);
|
||||
operationx->set_extend_bounds(extend_bounds);
|
||||
|
||||
converter.add_operation(operationx);
|
||||
converter.add_link(clamp->get_output_socket(), operationx->get_input_socket(0));
|
||||
|
||||
GaussianAlphaYBlurOperation *operationy = new GaussianAlphaYBlurOperation();
|
||||
operationy->set_data(data);
|
||||
operationy->set_quality(quality);
|
||||
operationy->set_size(1.0f);
|
||||
operationy->set_falloff(PROP_SMOOTH);
|
||||
operationy->set_subtract(false);
|
||||
operationy->set_extend_bounds(extend_bounds);
|
||||
|
||||
converter.add_operation(operationy);
|
||||
converter.add_link(operationx->get_output_socket(), operationy->get_input_socket(0));
|
||||
|
||||
GaussianBlurReferenceOperation *operation = new GaussianBlurReferenceOperation();
|
||||
operation->set_data(data);
|
||||
operation->set_quality(quality);
|
||||
operation->set_extend_bounds(extend_bounds);
|
||||
|
||||
converter.add_operation(operation);
|
||||
converter.add_link(operationy->get_output_socket(), operation->get_input_socket(1));
|
||||
converter.add_link(clamp->get_output_socket(), operation->get_input_socket(1));
|
||||
|
||||
output_operation = operation;
|
||||
input_operation = operation;
|
||||
|
||||
Submodule tests/data updated: 132949d18d...c642b3b345
Reference in New Issue
Block a user