Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2017-11-23 21:16:11 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2017-11-23 21:16:11 +0300
commit4f8bffa7bfe46192b43c75d864e2117369cbffdd (patch)
tree3e869e57151f4d487106d59bba1f2282a9578a44 /source/blender/render
parentb79b8478ee3bb1b115c5d6b8bdb0cc74d5169955 (diff)
parentdebd9f6ea1286533d4d5c9262fa6724c862fe35e (diff)
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender/render')
-rw-r--r--source/blender/render/intern/source/render_result.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/source/blender/render/intern/source/render_result.c b/source/blender/render/intern/source/render_result.c
index 53169c256a9..0e7f35fbca3 100644
--- a/source/blender/render/intern/source/render_result.c
+++ b/source/blender/render/intern/source/render_result.c
@@ -921,6 +921,17 @@ bool RE_WriteRenderResult(ReportList *reports, RenderResult *rr, const char *fil
}
}
+ /* We only store RGBA passes as half float, for
+ * others precision loss can be problematic. */
+ bool pass_half_float = half_float &&
+ (STREQ(rp->chan_id, "RGB") ||
+ STREQ(rp->chan_id, "RGBA") ||
+ STREQ(rp->chan_id, "R") ||
+ STREQ(rp->chan_id, "G") ||
+ STREQ(rp->chan_id, "B") ||
+ STREQ(rp->chan_id, "A"));
+
+
for (int a = 0; a < rp->channels; a++) {
/* Save Combined as RGBA if single layer save. */
char passname[EXR_PASS_MAXNAME];
@@ -936,10 +947,9 @@ bool RE_WriteRenderResult(ReportList *reports, RenderResult *rr, const char *fil
layname[0] = '\0';
}
- /* Add channel. */
IMB_exr_add_channel(exrhandle, layname, passname, viewname,
rp->channels, rp->channels * rr->rectx, rp->rect + a,
- STREQ(rp->name, RE_PASSNAME_Z) ? false : half_float);
+ pass_half_float);
}
}
}