diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-05-05 18:20:19 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-05-20 17:35:34 +0300 |
commit | d2e139e44e0a3b70ae3b517c7b8f2449d3d1620c (patch) | |
tree | 8c5adc607e02db5975d96d7510e629c71e3a3b56 /source/blender | |
parent | b9ce1fee42291b174f1bdee2ae1fded8e9579937 (diff) |
Color Management: update configuration, remove legacy transforms
* Replace Log view transform with Filmic Log.
* Remove Rec.709, DCI-P3 displays that were incomplete and outdated.
* Remove outdated RRT and Film transforms, replaced by Filmic.
* Remove camera responsive curves that don't work with HDR colors.
* Rename Default view transform to Standard.
We're breaking compatibility now for 2.80, so that we can add future
improvements on a clean config.
Part of the code was contributed by George Vogiatzis in D4782.
Differential Revision: https://developer.blender.org/D4900
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenkernel/BKE_blender_version.h | 2 | ||||
-rw-r--r-- | source/blender/blenloader/intern/versioning_280.c | 26 | ||||
-rw-r--r-- | source/blender/blenloader/intern/versioning_defaults.c | 4 | ||||
-rw-r--r-- | source/blender/imbuf/intern/colormanagement.c | 26 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_color.c | 2 |
5 files changed, 44 insertions, 16 deletions
diff --git a/source/blender/blenkernel/BKE_blender_version.h b/source/blender/blenkernel/BKE_blender_version.h index 077bbce2264..3fae40d6c7b 100644 --- a/source/blender/blenkernel/BKE_blender_version.h +++ b/source/blender/blenkernel/BKE_blender_version.h @@ -27,7 +27,7 @@ * \note Use #STRINGIFY() rather than defining with quotes. */ #define BLENDER_VERSION 280 -#define BLENDER_SUBVERSION 70 +#define BLENDER_SUBVERSION 71 /** Several breakages with 280, e.g. collections vs layers. */ #define BLENDER_MINVERSION 280 #define BLENDER_MINSUBVERSION 0 diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c index 13ccc374073..c4e3390d65f 100644 --- a/source/blender/blenloader/intern/versioning_280.c +++ b/source/blender/blenloader/intern/versioning_280.c @@ -3461,6 +3461,32 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain) } } + if (!MAIN_VERSION_ATLEAST(bmain, 280, 71)) { + /* This assumes the Blender builtin config. Depending on the OCIO + * environment variable for versioning is weak, and these deprecated view + * transforms and look names don't seem to exist in other commonly used + * OCIO configs so .blend files created for those would be unaffected. */ + for (Scene *scene = bmain->scenes.first; scene; scene = scene->id.next) { + ColorManagedViewSettings *view_settings; + view_settings = &scene->view_settings; + + if (STREQ(view_settings->view_transform, "Default")) { + STRNCPY(view_settings->view_transform, "Standard"); + } + else if (STREQ(view_settings->view_transform, "RRT") || + STREQ(view_settings->view_transform, "Film")) { + STRNCPY(view_settings->view_transform, "Filmic"); + } + else if (STREQ(view_settings->view_transform, "Log")) { + STRNCPY(view_settings->view_transform, "Filmic Log"); + } + + if (STREQ(view_settings->look, "Filmic - Base Contrast")) { + STRNCPY(view_settings->look, "None"); + } + } + } + { /* Versioning code until next subversion bump goes here. */ } diff --git a/source/blender/blenloader/intern/versioning_defaults.c b/source/blender/blenloader/intern/versioning_defaults.c index c55a860f3b4..83a21a5480d 100644 --- a/source/blender/blenloader/intern/versioning_defaults.c +++ b/source/blender/blenloader/intern/versioning_defaults.c @@ -371,8 +371,8 @@ void BLO_update_defaults_startup_blend(Main *bmain, const char *app_template) scene->r.displaymode = R_OUTPUT_WINDOW; if (app_template && STREQ(app_template, "Video_Editing")) { - /* Filmic is too slow, use default until it is optimized. */ - STRNCPY(scene->view_settings.view_transform, "Default"); + /* Filmic is too slow, use standard until it is optimized. */ + STRNCPY(scene->view_settings.view_transform, "Standard"); STRNCPY(scene->view_settings.look, "None"); } else { diff --git a/source/blender/imbuf/intern/colormanagement.c b/source/blender/imbuf/intern/colormanagement.c index 8a10af7e184..583a3be8168 100644 --- a/source/blender/imbuf/intern/colormanagement.c +++ b/source/blender/imbuf/intern/colormanagement.c @@ -747,6 +747,16 @@ void colormanagement_exit(void) /*********************** Internal functions *************************/ +static bool colormanage_compatible_look(ColorManagedLook *look, const char *view_name) +{ + if (look->is_noop) { + return true; + } + + /* Skip looks only relevant to specific view transforms. */ + return (look->view[0] == 0 || (view_name && STREQ(look->view, view_name))); +} + void colormanage_cache_free(ImBuf *ibuf) { if (ibuf->display_buffer_flags) { @@ -840,7 +850,7 @@ static OCIO_ConstProcessorRcPtr *create_display_buffer_processor(const char *loo OCIO_displayTransformSetView(dt, view_transform); OCIO_displayTransformSetDisplay(dt, display); - if (look_descr->is_noop == false) { + if (look_descr->is_noop == false && colormanage_compatible_look(look_descr, view_transform)) { OCIO_displayTransformSetLooksOverrideEnabled(dt, true); OCIO_displayTransformSetLooksOverride(dt, look); } @@ -989,9 +999,9 @@ static OCIO_ConstProcessorRcPtr *display_to_scene_linear_processor(ColorManagedD void IMB_colormanagement_init_default_view_settings( ColorManagedViewSettings *view_settings, const ColorManagedDisplaySettings *display_settings) { - /* First, try use "Default" view transform of the requested device. */ + /* First, try use "Standard" view transform of the requested device. */ ColorManagedView *default_view = colormanage_view_get_named_for_display( - display_settings->display_device, "Default"); + display_settings->display_device, "Standard"); /* If that fails, we fall back to the default view transform of the display * as per OCIO configuration. */ if (default_view == NULL) { @@ -3215,17 +3225,9 @@ void IMB_colormanagement_look_items_add(struct EnumPropertyItem **items, const char *view_name) { ColorManagedLook *look; - const char *view_filter = NULL; - - /* Test if this view transform is limited to specific looks. */ - for (look = global_looks.first; look; look = look->next) { - if (STREQ(look->view, view_name)) { - view_filter = view_name; - } - } for (look = global_looks.first; look; look = look->next) { - if (!look->is_noop && view_filter && !STREQ(look->view, view_filter)) { + if (!colormanage_compatible_look(look, view_name)) { continue; } diff --git a/source/blender/makesrna/intern/rna_color.c b/source/blender/makesrna/intern/rna_color.c index 8ba1f5440be..da2bf710428 100644 --- a/source/blender/makesrna/intern/rna_color.c +++ b/source/blender/makesrna/intern/rna_color.c @@ -1136,7 +1136,7 @@ static void rna_def_colormanage(BlenderRNA *brna) PropertyRNA *prop; static const EnumPropertyItem display_device_items[] = { - {0, "DEFAULT", 0, "Default", ""}, + {0, "NONE", 0, "None", ""}, {0, NULL, 0, NULL, NULL}, }; |