Fix #112742: File output node ignores colorspace overrides

The File Output node ignores color space overrides for EXR images. To
fix this, we save the images using save_as_render set to true. We don't
need to provide this as an option similar to other image types because
even when save_as_render is set to true, it will not have an effect
unless the user chooses to override the color space explicitly, since it
is not affected by view transforms and the like.

Pull Request: https://projects.blender.org/blender/blender/pulls/122791
This commit is contained in:
Omar Emara
2024-06-07 17:38:18 +02:00
committed by Omar Emara
parent 79da892126
commit 1e359f4173
2 changed files with 4 additions and 4 deletions

View File

@@ -203,7 +203,7 @@ void FileOutputOperation::execute_single_layer_multi_view_exr(const FileOutputIn
const int2 size = int2(input.image_input->get_width(), input.image_input->get_height());
realtime_compositor::FileOutput &file_output = context_->get_render_context()->get_file_output(
image_path, format, size, false);
image_path, format, size, true);
/* The EXR stores all views in the same file, so we add the actual render view. Otherwise, we
* add a default unnamed view. */
@@ -232,7 +232,7 @@ void FileOutputOperation::execute_multi_layer()
const int2 size = int2(get_width(), get_height());
const ImageFormatData format = node_data_->format;
realtime_compositor::FileOutput &file_output = context_->get_render_context()->get_file_output(
image_path, format, size, false);
image_path, format, size, true);
/* If we are saving views in separate files, we needn't store the view in the channel names, so
* we add an unnamed view. */

View File

@@ -561,7 +561,7 @@ class FileOutputOperation : public NodeOperation {
const int2 size = result.domain().size;
FileOutput &file_output = context().render_context()->get_file_output(
image_path, format, size, false);
image_path, format, size, true);
/* The EXR stores all views in the same file, so we add the actual render view. Otherwise, we
* add a default unnamed view. */
@@ -588,7 +588,7 @@ class FileOutputOperation : public NodeOperation {
const int2 size = compute_domain().size;
const ImageFormatData format = node_storage(bnode()).format;
FileOutput &file_output = context().render_context()->get_file_output(
image_path, format, size, false);
image_path, format, size, true);
/* If we are saving views in separate files, we needn't store the view in the channel names, so
* we add an unnamed view. */