Page 1 of 1

Rendering displace only

PostPosted: Wed Feb 14, 2018 9:45 pm
by Leonhard Wolf
Hi,

I would like to make it appear as if a text would have been burnt in into a wood plane.
I tried to to make the text tool drive the 3d displace. This worked fine and I think it could look quite okay for my purposes.
Now my question is: is there a way to render the displaced area only? Because I would like to only have the shadows (and highlights) from the displace to add to the real image with a merge set to overlay maybe. I tried turning down the opacity of the shape which drives the displace but that made the displaced text dissappear as well.
It tried searching "render passes" and could not find anything useful. Maybe that is the wrong term?

Help would be appreciated!

Re: Rendering displace only

PostPosted: Wed Feb 14, 2018 10:04 pm
by Sander de Regt
I am not sure what your setup is. Can you either make a screengrab of your nodes setup or copy/paste the code here in the forum with a picture of your before/after etc? This will help a lot.
Is the real image a still or moving footage? If it's the first maybe you can share it as well.

Re: Rendering displace only

PostPosted: Wed Feb 14, 2018 10:05 pm
by Bryan Ray
Something like this?

Code: Select all
{
   Tools = ordered() {
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "Displace3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "PointLight1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 3520, -412.5 } },
      },
      Blur1_3 = Blur {
         CtrlWZoom = false,
         Inputs = {
            XBlurSize = Input { Value = 1.64, },
            Input = Input {
               SourceOp = "Text1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 3135, -280.5 } },
      },
      Text1 = TextPlus {
         Inputs = {
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1224, },
            Width = Input { Value = 3840, },
            Height = Input { Value = 2160, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Size = Input { Value = 0.175, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "DISPLACEMENT", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            Alignment = Input { Value = 1, },
            CharacterSpacing = Input { Value = 1.071, },
         },
         ViewInfo = OperatorInfo { Pos = { 3025, -280.5 } },
      },
      ChannelBoolean1 = MtlChanBool {
         Inputs = {
            OperationA = Input { Value = 1, },
            BackgroundMaterial = Input {
               SourceOp = "Background2",
               Source = "Output",
            },
            ForegroundMaterial = Input {
               SourceOp = "Blur1_3",
               Source = "Output",
            },
            MaterialID = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 3190, -412.5 } },
      },
      PointLight1 = LightPoint {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -0.496446349828839, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.338366827690717, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 1.19910237802074, },
         },
         ViewInfo = OperatorInfo { Pos = { 3465, -478.5 } },
      },
      ImagePlane3D1 = ImagePlane3D {
         Inputs = {
            ["SurfacePlaneInputs.SizeLock"] = Input { Value = 0, },
            ["SurfacePlaneInputs.SubdivisionWidth"] = Input { Value = 1920, },
            ["SurfacePlaneInputs.SubdivisionHeight"] = Input { Value = 1080, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            MaterialInput = Input {
               SourceOp = "ChannelBoolean1",
               Source = "MaterialOutput",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 3300, -412.5 } },
      },
      Background2 = Background {
         Inputs = {
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1224, },
            Width = Input { Value = 3840, },
            Height = Input { Value = 2160, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 0.859, },
            TopLeftGreen = Input { Value = 0.859, },
            TopLeftBlue = Input { Value = 0.859, },
         },
         ViewInfo = OperatorInfo { Pos = { 2970, -412.5 } },
      },
      Displace3D1 = Displace3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "ImagePlane3D1",
               Source = "Output",
            },
            Scale = Input { Value = -0.036, },
            Input = Input {
               SourceOp = "Blur1_3",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 3410, -412.5 } },
      }
   }
}

Re: Rendering displace only

PostPosted: Wed Feb 14, 2018 10:12 pm
by Bryan Ray
Or maybe a CustomVertex approach:

Code: Select all
{
   Tools = ordered() {
      ImagePlane3D1 = ImagePlane3D {
         Inputs = {
            ["SurfacePlaneInputs.SizeLock"] = Input { Value = 0, },
            ["SurfacePlaneInputs.SubdivisionWidth"] = Input { Value = 1920, },
            ["SurfacePlaneInputs.SubdivisionHeight"] = Input { Value = 1080, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            MaterialInput = Input {
               SourceOp = "Background2",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 3300, -412.5 } },
      },
      Background2 = Background {
         Inputs = {
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1224, },
            Width = Input { Value = 3840, },
            Height = Input { Value = 2160, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 0.859, },
            TopLeftGreen = Input { Value = 0.859, },
            TopLeftBlue = Input { Value = 0.859, },
         },
         ViewInfo = OperatorInfo { Pos = { 2970, -412.5 } },
      },
      Displace3D1 = Displace3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "ImagePlane3D1",
               Source = "Output",
            },
            Scale = Input { Value = -0.036, },
            Input = Input {
               SourceOp = "Blur1_3",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 3410, -412.5 } },
      },
      PointLight1 = LightPoint {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -0.496446349828839, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.338366827690717, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 1.19910237802074, },
         },
         ViewInfo = OperatorInfo { Pos = { 3520, -478.5 } },
      },
      Blur1_3 = Blur {
         Inputs = {
            Filter = Input { Value = FuID { "Multi-box" }, },
            XBlurSize = Input { Value = 1.64, },
            Passes = Input { Value = 12, },
            Input = Input {
               SourceOp = "Text1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 3135, -280.5 } },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "Displace3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "PointLight1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 3520, -412.5 } },
      },
      Text1 = TextPlus {
         Inputs = {
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1224, },
            Width = Input { Value = 3840, },
            Height = Input { Value = 2160, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Size = Input { Value = 0.175, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "DISPLACEMENT", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            Alignment = Input { Value = 1, },
            CharacterSpacing = Input { Value = 1.071, },
         },
         ViewInfo = OperatorInfo { Pos = { 3025, -280.5 } },
      },
      CustomVertex3D1 = CustomVertex3D {
         CtrlWZoom = false,
         Inputs = {
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            ["VertexColor.Nest"] = Input { Value = 1, },
            ["VertexColor.A"] = Input { Value = "if(pz>n1, 0, 1)", },
            Number1 = Input { Value = -0.0021, },
            LUT1 = Input {
               SourceOp = "CustomVertex3D1LUT1",
               Source = "Value",
            },
            LUT2 = Input {
               SourceOp = "CustomVertex3D1LUT2",
               Source = "Value",
            },
            LUT3 = Input {
               SourceOp = "CustomVertex3D1LUT3",
               Source = "Value",
            },
            LUT4 = Input {
               SourceOp = "CustomVertex3D1LUT4",
               Source = "Value",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 3685, -412.5 } },
      },
      CustomVertex3D1LUT1 = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
               [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
            }
         },
         SplineColor = { Red = 0, Green = 0, Blue = 0 },
         NameSet = true,
      },
      CustomVertex3D1LUT2 = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
               [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
            }
         },
         SplineColor = { Red = 0, Green = 0, Blue = 0 },
         NameSet = true,
      },
      CustomVertex3D1LUT3 = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
               [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
            }
         },
         SplineColor = { Red = 0, Green = 0, Blue = 0 },
         NameSet = true,
      },
      CustomVertex3D1LUT4 = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
               [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
            }
         },
         SplineColor = { Red = 0, Green = 0, Blue = 0 },
         NameSet = true,
      }
   }
}

Re: Rendering displace only

PostPosted: Wed Feb 14, 2018 10:27 pm
by Leonhard Wolf
It is pretty awesome how fast you guys respond in this forum. Thanks!

It is quite late where I live so I will answer your posts tomorrow.

Re: Rendering displace only

PostPosted: Thu Feb 15, 2018 7:20 pm
by Leonhard Wolf
The project is only a still.
Here is an upload of the current version so you can see what I am actually trying to achieve:

Bierkrug0000.jpg
Bierkrug0000.jpg (258.17 KiB) Viewed 1881 times


Here is a screengrab from my attempt to make it work:

Screengrab.JPG
Screengrab.JPG (121.43 KiB) Viewed 1881 times



Bryan: I pasted your code in Fusion but did not know what to do with it.

Re: Rendering displace only

PostPosted: Thu Feb 15, 2018 10:47 pm
by Sander de Regt
So, the text is a text tool composited on top of the background, right?
Just wondering, why do you want it to be a 3D based solution?
This is basically a photoshop kind of situation. Doing it in 2D with a combination of filters might do the trick quite easily.

Re: Rendering displace only

PostPosted: Thu Feb 15, 2018 10:55 pm
by Sander de Regt
Here's something I came up with in about 10 minutes. it's not very good, but it gives you an idea on what is possible with pure 2D-tools.

BurnedLetters.jpg
BurnedLetters.jpg (288.74 KiB) Viewed 1861 times


To make it look more like it's been burned in, it's probably a good idea to also pick a font that's used for 'branding' - this will help sell the illusion.

Re: Rendering displace only

PostPosted: Sat Feb 17, 2018 6:53 pm
by Leonhard Wolf
Could you send me the code from the tools in your flow?

Re: Rendering displace only

PostPosted: Sat Feb 17, 2018 7:16 pm
by Sander de Regt
Sure. Here it is. You'll need to change the loader and most likely the font in the Text+ tool, but it should give you a starting point.

Code: Select all
{
   Tools = ordered() {
      Loader1 = Loader {
         Clips = {
            Clip {
               ID = "Clip1",
               Filename = "C:\\Users\\Sander de Regt\\Desktop\\wood_planks03_Base_Color.jpg",
               FormatID = "JpegFormat",
               StartFrame = -1,
               LengthSetManually = true,
               TrimIn = 0,
               TrimOut = 0,
               ExtendFirst = 0,
               ExtendLast = 0,
               Loop = 0,
               AspectMode = 0,
               Depth = 1,
               TimeCode = 0,
               GlobalStart = 0,
               GlobalEnd = 0
            }
         },
         Inputs = {
            Depth = Input { Value = 1, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Comments = Input { Value = "This is where you need to provide your own background", },
         },
         ViewInfo = OperatorInfo { Pos = { 110, 16.5 } },
      },
      FastNoise2 = FastNoise {
         Inputs = {
            GlobalOut = Input { Value = 500, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Detail = Input { Value = 10, },
            Contrast = Input { Value = 1.615, },
            Brightness = Input { Value = 0.077, },
            XScale = Input { Value = 20, },
         },
         ViewInfo = OperatorInfo { Pos = { 220, 82.5 } },
      },
      DVE1 = DVE {
         Inputs = {
            Center = Input { Value = { 0.5, 0.201785714285714 }, },
            ZMove = Input { Value = 0.51, },
            XRotation = Input { Value = 104.2, },
            Perspective = Input { Value = 0.9658, },
            Input = Input {
               SourceOp = "Loader1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 385, 16.5 } },
      },
      MatteControl1 = MatteControl {
         Inputs = {
            MatteCombine = Input { Value = 4, },
            CombineOp = Input { Value = 2, },
            LowMatteThreshold = Input { Value = 0.485, },
            High = Input { Value = 0.619, },
            ["Solid.Matte"] = Input {
               SourceOp = "MatteControl2",
               Source = "Output",
            },
            PostMultiplyImage = Input { Value = 1, },
            Background = Input {
               SourceOp = "Text1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "FastNoise2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 385, 115.5 } },
      },
      Text1 = TextPlus {
         CtrlWZoom = false,
         Inputs = {
            GlobalOut = Input { Value = 500, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            LayoutRotation = Input { Value = 1, },
            AngleX = Input { Value = 67.5, },
            Size = Input { Value = 0.3184, },
            Font = Input { Value = "Bernard MT Condensed", },
            StyledText = Input { Value = "BURNED \nLETTERS", },
            Style = Input { Value = "Regular", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            SelectTransform = Input { Value = 2, },
            LineRotation = Input { Value = 1, },
            CharacterRotation = Input { Value = 1, },
            Type1 = Input { Value = 1, },
            ColorImage1 = Input {
               SourceOp = "FastNoise1",
               Source = "Output",
            },
            ShadingGradient1 = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [0.26978417266187] = { 0.167, 0.167, 0.167, 1 },
                     [0.679856115107914] = { 0.347, 0.347, 0.347, 1 },
                     [0.91726618705036] = { 0.26, 0.26, 0.26, 1 },
                     [1] = { 0.467, 0.246729192485799, 0.16812, 1 }
                  }
               },
            },
            ShadingMappingLevel1 = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 165, 148.5 } },
      },
      Filter1 = Filter {
         Inputs = {
            Power = Input { Value = 7, },
            Angle = Input { Value = 180, },
            Input = Input {
               SourceOp = "MatteControl1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 605, 115.5 } },
      },
      BrightnessContrast1 = BrightnessContrast {
         Inputs = {
            Alpha = Input { Value = 1, },
            Low = Input { Value = 0.577, },
            High = Input { Value = 0.82, },
            ClipBlack = Input { Value = 1, },
            ClipWhite = Input { Value = 1, },
            PreDividePostMultiply = Input { Value = 1, },
            Input = Input {
               SourceOp = "Filter1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 715, 115.5 } },
      },
      FastNoise1 = FastNoise {
         Inputs = {
            GlobalOut = Input { Value = 500, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Type = Input { Value = 1, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 0.807, 0.505505012212718, 0.28245, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 165, 214.5 } },
      },
      MatteControl2 = MatteControl {
         Inputs = {
            MatteContractExpand = Input { Value = -0.803, },
            PostMultiplyImage = Input { Value = 1, },
            Background = Input {
               SourceOp = "Blur2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 330, 214.5 } },
      },
      Blur1 = Blur {
         Inputs = {
            Input = Input {
               SourceOp = "BrightnessContrast1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 825, 115.5 } },
      },
      Blur2 = Blur {
         Inputs = {
            XBlurSize = Input { Value = 6, },
            Input = Input {
               SourceOp = "Text1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 330, 247.5 } },
      },
      ColorCorrector1 = ColorCorrector {
         Inputs = {
            Menu = Input { Value = 1, },
            MasterRGBOutputHigh = Input { Value = 0.14, },
            ColorRanges = Input {
               Value = ColorCurves {
                  Curves = {
                     {
                        Points = {
                           { 0, 1 },
                           { 0.4, 0.2 },
                           { 0.6, 0 },
                           { 1, 0 }
                        }
                     },
                     {
                        Points = {
                           { 0, 0 },
                           { 0.4, 0 },
                           { 0.6, 0.2 },
                           { 1, 1 }
                        }
                     }
                  }
               },
            },
            PreDividePostMultiply = Input { Value = 1, },
            HistogramIgnoreTransparent = Input { Value = 1, },
            Input = Input {
               SourceOp = "Blur1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 935, 115.5 } },
      },
      BrightnessContrast2 = BrightnessContrast {
         Inputs = {
            Gain = Input { Value = 0.564, },
            Gamma = Input { Value = 0.983, },
            PreDividePostMultiply = Input { Value = 1, },
            Input = Input {
               SourceOp = "MatteControl1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 715, 280.5 } },
      },
      Merge2 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Merge1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "BrightnessContrast2",
               Source = "Output",
            },
            Center = Input { Value = { 0.5, 0.360640301318267 }, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 935, 280.5 } },
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "DVE1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "ColorCorrector1",
               Source = "Output",
            },
            Center = Input { Value = { 0.5, 0.360640301318267 }, },
            ApplyMode = Input { Value = FuID { "Multiply" }, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1100, 115.5 } },
      },
      Merge3 = Merge {
         Inputs = {
            Blend = Input { Value = 0.316, },
            Background = Input {
               SourceOp = "Merge2",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Text1",
               Source = "Output",
            },
            Center = Input { Value = { 0.5, 0.358928571428571 }, },
            ApplyMode = Input { Value = FuID { "Multiply" }, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1100, 280.5 } },
      }
   }
}

Re: Rendering displace only

PostPosted: Sat Feb 17, 2018 7:58 pm
by Bryan Ray
Leonhard Wolf wrote:Bryan: I pasted your code in Fusion but did not know what to do with it.


Um... Well, the idea was that you would learn from it! :D In the first case, I used a ChannelBoolean3D to substitute the alpha from the text into the material going into the plane. This makes the material transparent, thus hiding it.

In the second, I used the CustomVertex node to change the vertex color to 0 alpha wherever the Z position value exceeded a threshold controlled by the Number In 1 slider. Same effect, but it depends on the mesh's location, which is generally less useful.

Re: Rendering displace only

PostPosted: Wed Feb 28, 2018 2:56 pm
by Leonhard Wolf
Sander: thanks! I have never used the DVE and filter tool. Both seem very handy.

Bryan: the custom vertex approach was actually exactly what I was looking for.