1
$\begingroup$

I'm working on a project where I'm editing in Davinci Resolve, but doing a number of effects in Blender. However, when I render out a shot from Blender, I find that the color of the image is slightly different from the source video.

Here's a frame from the source (no color grade):

Source clip

And here's that same frame after being rendered out in Blender and saved as a PNG (started with the default Blender file, added the clip to the sequencer, and rendered):

Blender output

It's hard to see in these pictures, but the color is slightly darker and modified in the Blender output. If you look at the waveforms, you can see in the Blender output on the right, some of the sections are slightly brighter (for example, the circled blue section):

Waveforms

I might be able to color correct it to match, but so far that's not been straightforward. It would be much easier if Blender's output didn't dork with the colors to begin with.

What is going on here, and how do I get Blender to not modify the image's colors when rendering?

I am working with 8-bit V-log H.264 footage from a Gh5s (color space sRGB). Again, all Blender's settings are at their default.

$\endgroup$
  • $\begingroup$ Related: I have tried to import EXR files to Davinci Resolve with the LUT's $\endgroup$ – Jachym Michal May 25 at 20:17
  • $\begingroup$ Unfortunately, outputting the image in EXR produces the same color issues. If it was just brightness, that would be easy to counter, but it appears to be altering the color more selectively. $\endgroup$ – jpyams May 25 at 20:33
  • 2
    $\begingroup$ Willing to wager it’s a broken encoding out of Blender, or incorrect decoding in Resolve. Codecs and handling is a path fraught with issues. This smells like a broadcast vs full-range issue. Hard to tell without further analysis on your end. Panasonic, and all camera vendors with a history in video, will encode using the full range flag typically. Sample the highest and lowest code value and you can get a hint as to whether this is the issue. $\endgroup$ – troy_s May 25 at 23:25
3
$\begingroup$

PNG is a terrible format. You should forget it even exists.

Blender does only what the operator instructs it to do. If the setting are to output on a certain color space, then that is the color space it will use. If the original source is in a different color space blender has no way to guess what that might be.

Any image displayed in the wrong color space will always look wrong.

When doing visual effects you need to plan how to have all of your material be in the same color space. If one source is encoded using a different gamut than the other they never going mix nicely and any transformation will further distort the color on one or the other. Long story short: you can't mix apples and oranges.

All compositing should be made using linear values in a common color space.

The ideal scenario would involve controlling all of the variables.

Ingest your footage in resolve, set the correct input transforms, color space and gamut (Vlog to 709). Then export the plates as linear scene referred values (de-Log it), convert it then to the correct color space you are going to be working on (most likely 709): set the project to be Color Managed and use 709 scene as output color spaces. Export then as EXRs to be used in Blender. Work your magic in blender, export the elements to be combined back to resolve as linear-scene referred EXRs. then composite in fusion (read the suggested link).

Else you need to go a more complicated route, which is to create a definition of V-log in the Ocio config, supply the correct LUT and color matrix, so that the footage ingested is linearized correctly and with the correct 709 gamut in blender. Work then your amazing magic in blender and re-encode as V-log and save as Tiff files. Bring those files in resolve and integrate them into your project.

| improve this answer | |
$\endgroup$
  • $\begingroup$ Welcome to Blender Stack Exchange, and thanks for taking the time to look at my question! The source clip's color space is sRGB. The Resolve timeline is using Rec.709 Gamma 2.4. In Blender 2.8 I left all settings on their defaults, only importing the clip to the sequencer and rendering out the still. I would assume Blender would not affect the color of the clip by default; if there's a setting that will let me do this I'd really like to know $\endgroup$ – jpyams May 25 at 23:02
  • $\begingroup$ Once you get the rep, you can leave a comment asking the OP for missing crucial information $\endgroup$ – jpyams May 25 at 23:03
  • $\begingroup$ If you are using vlog you are not using sRGB, but some form of LOG image, that has to be de-loged (converted to linear values) to be successfully composited. The main issue is Gamut. Whatever gamut panasonic is using has to be converted into sRGB-709 primaries to work in blender. Don't use the sequencer, is a piece of garbage. Edit in Davinci. Never assume anything about color. Specify it or you will never get repeatable and controllable results. Read the answer. The info you need is there. $\endgroup$ – susu May 25 at 23:30
  • $\begingroup$ Thanks, decoding the clip from V-Log to an image sequence and putting that through Blender worked a lot better. Not a perfect match, but if I output it from Blender to PNG, it's almost exact. Interestingly enough, it does not match the colors right if I output EXR from Blender. I'm guessing I need to set some color space thing while pulling it back into Resolve, but neither Linear nor sRGB seem to work. $\endgroup$ – jpyams May 26 at 0:11
  • $\begingroup$ EXR is linear, scene referred. No color transforms have been applied. PNG is display referred, with a color transform baked in. Useless to composite or for further manipulation. To have the EXR "match" you need to apply the same color transform to bring it to Display Referred levels. Again you are compairing apples and oranges. $\endgroup$ – susu May 26 at 0:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.