Creating mattes in OpenEXR.

Get answers to your questions about color grading, editing and finishing with DaVinci Resolve.
  • Author
  • Message
Offline
User avatar

Lucas D.

  • Posts: 121
  • Joined: Wed Oct 10, 2018 8:31 am
  • Location: 1132 Vine St, Los Angeles, CA 90038
  • Real Name: Lucas Druzynski

Creating mattes in OpenEXR.

PostMon Jan 27, 2020 12:14 am

Well right now I create 2 sets of files: front plate and a matte plate ( its for a colorist ).

It is possible for those mattes to be embedded into Open EXR ?
I'm creating mattes in fusion and exporting in resolve in delivery tab.

Anyone has done that?
Microsoft Windows 10 Pro x64
Version 22H2
AMD Ryzen 7 1800X 8cores @ 3.6 GHz
NVIDIA GeForce GTX 3080ti
48.0 GB of RAM
Resolve Studio v19 Beta1
Offline
User avatar

Lucas D.

  • Posts: 121
  • Joined: Wed Oct 10, 2018 8:31 am
  • Location: 1132 Vine St, Los Angeles, CA 90038
  • Real Name: Lucas Druzynski

Re: Creating mattes in OpenEXR.

PostSun Feb 02, 2020 1:33 am

Looks like the competition can do this with ease:



Feature request for the next version.
Microsoft Windows 10 Pro x64
Version 22H2
AMD Ryzen 7 1800X 8cores @ 3.6 GHz
NVIDIA GeForce GTX 3080ti
48.0 GB of RAM
Resolve Studio v19 Beta1
Offline
User avatar

Igor Riđanović

  • Posts: 1596
  • Joined: Thu Jul 02, 2015 5:11 am
  • Location: Los Angeles, Calif.

Re: Creating mattes in OpenEXR.

PostMon Feb 03, 2020 11:48 pm

Add a saver node in Fusion flow. It will save EXR with whatever auxiliary channels you pass to it.
www.metafide.com - DaVinci Resolve™ Apps
Offline
User avatar

Igor Riđanović

  • Posts: 1596
  • Joined: Thu Jul 02, 2015 5:11 am
  • Location: Los Angeles, Calif.

Re: Creating mattes in OpenEXR.

PostFri Feb 21, 2020 2:20 am

This comp will embed two masks into Z buffer and Z coverage channels of an RGB image.

Code: Select all
{
   Tools = ordered() {
      RGBonlyImage = GroupOperator {
         NameSet = true,
         Outputs = {
            Output1 = InstanceOutput {
               SourceOp = "Merge1",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo {
            Pos = { 231.667, 11.4546 },
            Flags = {
               AllowPan = false,
               AutoSnap = true,
               RemoveRouters = true
            },
            Size = { 240, 102.394, 120, 24.2424 },
            Direction = "Horizontal",
            PipeStyle = "Direct",
            Scale = 1,
            Offset = { -197, 26.7272 }
         },
         Tools = ordered() {
            Background1 = Background {
               Inputs = {
                  GlobalOut = Input { Value = 119, },
                  Width = Input { Value = 3840, },
                  Height = Input { Value = 2160, },
                  UseFrameFormatSettings = Input { Value = 1, },
                  ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
                  TopLeftRed = Input { Value = 0.083657, },
                  TopLeftGreen = Input { Value = 0.23683652, },
                  TopLeftBlue = Input { Value = 0.323, },
               },
               ViewInfo = OperatorInfo { Pos = { 145.333, 17.3333 } },
            },
            Merge1 = Merge {
               Inputs = {
                  Background = Input {
                     SourceOp = "Background1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "Text1",
                     Source = "Output",
                  },
                  PerformDepthMerge = Input { Value = 0, },
               },
               ViewInfo = OperatorInfo { Pos = { 254, 17.9394 } },
            },
            Text1 = TextPlus {
               Inputs = {
                  GlobalOut = Input { Value = 119, },
                  Width = Input { Value = 3840, },
                  Height = Input { Value = 2160, },
                  UseFrameFormatSettings = Input { Value = 1, },
                  ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
                  StyledText = Input { Value = "www.metafide.com", },
                  Font = Input { Value = "Open Sans", },
                  Style = Input { Value = "Bold", },
                  Size = Input { Value = 0.1408, },
                  VerticalJustificationNew = Input { Value = 3, },
                  HorizontalJustificationNew = Input { Value = 3, },
                  ManualFontKerningPlacement = Input {
                     Value = StyledText {
                        Array = {
                        },
                        Value = ""
                     },
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 140, -18.0909 } },
            }
         },
      },
      AddToZBuffer = ChannelBoolean {
         NameSet = true,
         Inputs = {
            ToRed = Input { Value = 4, },
            ToGreen = Input { Value = 4, },
            ToBlue = Input { Value = 4, },
            ToAlpha = Input { Value = 4, },
            EnableExtraChannels = Input { Value = 1, },
            ToZBuffer = Input { Value = 0, },
            Background = Input {
               SourceOp = "Merge1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Rectangle1",
               Source = "Mask",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 398.666, 9.78786 } },
      },
      Rectangle1 = RectangleMask {
         Inputs = {
            Filter = Input { Value = FuID { "Fast Gaussian" }, },
            MaskWidth = Input { Value = 3840, },
            MaskHeight = Input { Value = 2160, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
         },
         ViewInfo = OperatorInfo { Pos = { 389.333, -24.4848 } },
      },
      AddToZcoverage = ChannelBoolean {
         NameSet = true,
         Inputs = {
            ToRed = Input { Value = 4, },
            ToGreen = Input { Value = 4, },
            ToBlue = Input { Value = 4, },
            ToAlpha = Input { Value = 4, },
            EnableExtraChannels = Input { Value = 1, },
            ToZCoverage = Input { Value = 0, },
            Background = Input {
               SourceOp = "AddToZBuffer",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Ellipse1",
               Source = "Mask",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 518.667, 12.2121 } },
      },
      Ellipse1 = EllipseMask {
         Inputs = {
            Filter = Input { Value = FuID { "Fast Gaussian" }, },
            MaskWidth = Input { Value = 3840, },
            MaskHeight = Input { Value = 2160, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
         },
         ViewInfo = OperatorInfo { Pos = { 498.667, -26.5758 } },
      },
      Note2 = Note {
         Inputs = {
            Comments = Input { Value = "This is where you add masks to AUX channels.", }
         },
         ViewInfo = StickyNoteInfo {
            Pos = { 460, 35.8485 },
            Size = { 196, 181.364 }
         },
      },
      Note1 = Note {
         Inputs = {
            Comments = Input { Value = "Use this node to QC the AUX channels by converting them to RGB.", }
         },
         ViewInfo = StickyNoteInfo {
            Pos = { 637.333, 127.364 },
            Size = { 196, 181.364 }
         },
      },
      UnpackChannels = ChannelBoolean {
         NameSet = true,
         Inputs = {
            ToRed = Input { Value = 18, },
            ToGreen = Input { Value = 19, },
            ToBlue = Input { Value = 18, },
            ToAlpha = Input { Value = 15, },
            Background = Input {
               SourceOp = "AddToZcoverage",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 549.333, 141.303 } },
      },
      EXRsaver = Saver {
         NameSet = true,
         Inputs = {
            ProcessWhenBlendIs00 = Input { Value = 0, },
            Clip = Input {
               Value = Clip {
                  Filename = "C:\\Users\\editor\\Desktop\\testChannels.exr",
                  FormatID = "OpenEXRFormat",
                  Length = 0,
                  Saving = true,
                  TrimIn = 0,
                  ExtendFirst = 0,
                  ExtendLast = 0,
                  Loop = 1,
                  AspectMode = 0,
                  Depth = 0,
                  GlobalStart = -2000000000,
                  GlobalEnd = 0
               },
            },
            OutputFormat = Input { Value = FuID { "OpenEXRFormat" }, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Input = Input {
               SourceOp = "AddToZcoverage",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 747.334, 14.0303 } },
      }
   }
}
www.metafide.com - DaVinci Resolve™ Apps
Offline
User avatar

Lucas D.

  • Posts: 121
  • Joined: Wed Oct 10, 2018 8:31 am
  • Location: 1132 Vine St, Los Angeles, CA 90038
  • Real Name: Lucas Druzynski

Re: Creating mattes in OpenEXR.

PostMon Feb 24, 2020 12:46 am

Thank you sooo much ! :D :D
It works !!
Microsoft Windows 10 Pro x64
Version 22H2
AMD Ryzen 7 1800X 8cores @ 3.6 GHz
NVIDIA GeForce GTX 3080ti
48.0 GB of RAM
Resolve Studio v19 Beta1
Offline
User avatar

Bryan Ray

  • Posts: 2488
  • Joined: Mon Nov 28, 2016 5:32 am
  • Location: Los Angeles, CA, USA

Re: Creating mattes in OpenEXR.

PostMon Feb 24, 2020 2:36 am

Make sure it works for whomever you're sending it to. Some software may not properly identify a matte stored in z as a matte. Hopefully it's not a problem, but it should be tested in the pipeline.

I'd still like to see a proper multi-layer Saver workflow that supports more than Zip compression.
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline
User avatar

Lucas D.

  • Posts: 121
  • Joined: Wed Oct 10, 2018 8:31 am
  • Location: 1132 Vine St, Los Angeles, CA 90038
  • Real Name: Lucas Druzynski

Re: Creating mattes in OpenEXR.

PostMon Feb 24, 2020 8:06 am

It works when you send it to another resolve, which that's what I'm doing .

We are using a regular saver node so all the compression setting for OpenEXR are present.

The only issue I have is by exporting files this way, I get zero Time Code, no options on exports for TC, and I need source TC , but you cant have everything :D

Thanx again !!!
Microsoft Windows 10 Pro x64
Version 22H2
AMD Ryzen 7 1800X 8cores @ 3.6 GHz
NVIDIA GeForce GTX 3080ti
48.0 GB of RAM
Resolve Studio v19 Beta1
Offline
User avatar

Igor Riđanović

  • Posts: 1596
  • Joined: Thu Jul 02, 2015 5:11 am
  • Location: Los Angeles, Calif.

Re: Creating mattes in OpenEXR.

PostTue Feb 25, 2020 2:50 am

If you're exporting for another Resolve in the same facility, wouldn't it be simpler to keep it all in Fusion comp, skip export, and use collaboration?
www.metafide.com - DaVinci Resolve™ Apps
Offline
User avatar

waltervolpatto

  • Posts: 10530
  • Joined: Thu Feb 07, 2013 5:07 pm
  • Location: 1146 North Las Palmas Ave. Hollywood, California 90038 USA

Re: Creating mattes in OpenEXR.

PostTue Feb 25, 2020 3:43 am

Igor Riđanović wrote:If you're exporting for another Resolve in the same facility, wouldn't it be simpler to keep it all in Fusion comp, skip export, and use collaboration?


Sometimes it has to be a single (alone) shot... Silly workflows...


BTW, thanks for the flame example... i was actually looking for that...
W10-19043.1645- Supermicro MB C9X299-PGF - RAM 128GB CPU i9-10980XE 16c 4.3GHz (Oc) Water cooled
Decklink Studio 4K (12.3)
Resolve 18.5.1 / fusion studio 18
GPU 3090ti drivers 512.59 studio

Return to DaVinci Resolve

Who is online

Users browsing this forum: panos_mts and 167 guests