Page 1 of 1

smooth 3d displacement

PostPosted: Fri Mar 15, 2019 3:05 pm
by Rick van den Berg
Im trying to displace an image plane, to give it a flag-like animation. so i added a displace3d node and an animated fastnoise. but it ends up in a very ''noisy'' animation. i looks like it has something to do with the resolution of the imageplane, but when i turn it up, it gets even worse.

Code: Select all
{
   Tools = ordered() {
      SpotLight1 = LightSpot {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = 0.780457044194241, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.521172020358484, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 1.77551995059541, },
            ["Transform3DOp.Rotate.X"] = Input { Value = -9.65803137747571, },
            ["Transform3DOp.Rotate.Y"] = Input { Value = 21.707356209401, },
            ["Transform3DOp.Rotate.Z"] = Input { Value = 3.4168590051122, },
            ["ShadowLightInputs3D.Nest"] = Input { Value = 1, },
            ["ShadowLightInputs3D.SoftnessType"] = Input { Value = FuID { "Constant" }, },
         },
         ViewInfo = OperatorInfo { Pos = { 1061, -14 } },
      },
      FastNoise1_1_1 = FastNoise {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Center = Input {
               SourceOp = "Path1_1",
               Source = "Position",
            },
            Detail = Input { Value = 0, },
            Contrast = Input { Value = 0.051, },
            Brightness = Input { Value = -0.726, },
            XScale = Input { Value = 2.48, },
            Angle = Input { Value = 77.4, },
            Color1Alpha = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 803.23, 91.5564 } },
      },
      Path1_1 = PolyPath {
         DrawMode = "InsertAndModify",
         Inputs = {
            Displacement = Input {
               SourceOp = "Path1_1Displacement",
               Source = "Value",
            },
            PolyLine = Input {
               Value = Polyline {
                  Points = {
                     { Linear = true, LockY = true, X = -0.682978032600595, Y = 0, RX = 3.82946709046637, RY = 0 },
                     { Linear = true, LockY = true, X = 10.8054232387985, Y = 0, LX = -3.82946709046637, LY = 0 }
                  }
               },
            },
         },
      },
      Path1_1Displacement = BezierSpline {
         SplineColor = { Red = 255, Green = 0, Blue = 255 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 333.333333333333, 0.333333333333333 }, Flags = { Linear = true, LockedY = true } },
            [1000] = { 1, LH = { 666.666666666667, 0.666666666666667 }, Flags = { Linear = true, LockedY = true } }
         }
      },
      FastNoise1_1 = FastNoise {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Center = Input {
               SourceOp = "Path1",
               Source = "Position",
            },
            Detail = Input { Value = 0.21, },
            Contrast = Input { Value = 0.299, },
            Brightness = Input { Value = -0.615, },
            XScale = Input { Value = 2.48, },
            Angle = Input { Value = 77.4, },
            Color1Alpha = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 686.747, 96.7626 } },
      },
      Path1 = PolyPath {
         DrawMode = "InsertAndModify",
         Inputs = {
            Displacement = Input {
               SourceOp = "Path1Displacement",
               Source = "Value",
            },
            PolyLine = Input {
               Value = Polyline {
                  Points = {
                     { Linear = true, LockY = true, X = -0.682978032600595, Y = 0, RX = 3.82946709046637, RY = 0 },
                     { Linear = true, LockY = true, X = 10.8054232387985, Y = 0, LX = -3.82946709046637, LY = 0 }
                  }
               },
            },
         },
      },
      Path1Displacement = BezierSpline {
         SplineColor = { Red = 255, Green = 0, Blue = 255 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 333.333333333333, 0.333333333333333 }, Flags = { Linear = true, LockedY = true } },
            [1000] = { 1, LH = { 666.666666666667, 0.666666666666667 }, Flags = { Linear = true, LockedY = true } }
         }
      },
      Displace3D1 = Displace3D {
         Inputs = {
            Scale = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 568.542, 124.91 } },
      },
      FastNoise1_2_1 = FastNoise {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Detail = Input { Value = 0.51, },
            Contrast = Input { Value = 0.265, },
            Brightness = Input { Value = -0.188, },
            XScale = Input { Value = 50, },
            Angle = Input { Value = 77.4, },
         },
         ViewInfo = OperatorInfo { Pos = { 489.999, -35.757 } },
      },
      Merge2 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "ColorCorrector3",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Displace1_2",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 458.615, 99.3055 } },
      },
      Displace1_2 = Displace {
         Inputs = {
            Input = Input {
               SourceOp = "Merge3",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "FastNoise1_2_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 377.705, -29.0279 } },
      },
      Merge3 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background2_1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Background3",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 377.705, -62.0279 } },
      },
      ColorCorrector3 = ColorCorrector {
         Inputs = {
            MasterRGBGain = Input { Value = 2.06, },
            MasterRGBGamma = Input { Value = 2.573, },
            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 }
                        }
                     }
                  }
               },
            },
            HistogramIgnoreTransparent = Input { Value = 1, },
            Input = Input {
               SourceOp = "Displace1",
               Source = "Output",
            },
            EffectMask = Input {
               SourceOp = "Ellipse3",
               Source = "Mask",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 359.393, 99.3055 } },
      },
      Ellipse3 = EllipseMask {
         Inputs = {
            SoftEdge = Input { Value = 0.2, },
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Center = Input { Value = { 0.391724137931035, 0.708333333333333 }, },
            Width = Input { Value = 0.747279808547092, },
            Height = Input { Value = 0.747279808547092, },
         },
         ViewInfo = OperatorInfo { Pos = { 338.511, 70.3472 } },
      },
      Background3 = Background {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
         },
         ViewInfo = OperatorInfo { Pos = { 151.841, -132.084 } },
      },
      ImagePlane3D1 = ImagePlane3D {
         Inputs = {
            ["SurfacePlaneInputs.SubdivisionWidth"] = Input { Value = 20, },
            ["SurfacePlaneInputs.Visibility.Nest"] = Input { Value = 1, },
            ["SurfacePlaneInputs.Lighting.Nest"] = Input { Value = 1, },
            ["SurfacePlaneInputs.BlendMode.Nest"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            MaterialInput = Input {
               SourceOp = "Merge2",
               Source = "Output",
            },
            ["MtlStdInputs.Specular.Nest"] = Input { Value = 1, },
            ["MtlStdInputs.Specular.Intensity"] = Input { Value = 0.388, },
            ["MtlStdInputs.Specular.Exponent"] = Input { Value = 37.62, },
            ["MtlStdInputs.Transmittance.ColorDetail"] = Input { Value = 1, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 395, 153 } },
      },
      FastNoise1_2 = FastNoise {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Detail = Input { Value = 10, },
            Contrast = Input { Value = 0.043, },
            Brightness = Input { Value = -0.308, },
            XScale = Input { Value = 50, },
            Angle = Input { Value = 77.4, },
         },
         ViewInfo = OperatorInfo { Pos = { 249.516, 2.63962 } },
      },
      Background2_1 = Background {
         Inputs = {
            Width = Input { Value = 2200, },
            Height = Input { Value = 1312, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftAlpha = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 268.379, -62.0279 } },
      },
      Displace3D2 = Displace3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Merge3D2",
               Source = "Output",
            },
            Scale = Input { Value = 1.068, },
            Bias = Input { Value = -0.162, },
            CameraDisplacement = Input { Value = 1, },
            Input = Input {
               SourceOp = "FastNoise1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 678.32, 155.694 } },
      },
      Displace1_1 = Displace {
         Inputs = {
            Spread = Input { Value = 2.821, },
            Input = Input {
               SourceOp = "ColorCorrector2",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "FastNoise1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 139.393, 99.9791 } },
      },
      FastNoise1 = FastNoise {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Detail = Input { Value = 0.13, },
            Contrast = Input { Value = 1.274, },
            XScale = Input { Value = 20, },
            Angle = Input { Value = 77.4, },
         },
         ViewInfo = OperatorInfo { Pos = { 121.5, 15.0604 } },
      },
      Displace1 = Displace {
         Inputs = {
            Spread = Input { Value = 2.731, },
            Input = Input {
               SourceOp = "Displace1_1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "FastNoise1_2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 249.393, 105.368 } },
      },
      Merge3D2 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "ImagePlane3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Displace3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 567.646, 153.674 } },
      },
      Displace3D2_1 = Displace3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Displace3D2",
               Source = "Output",
            },
            Scale = Input { Value = 1.026, },
            Bias = Input { Value = -0.162, },
            Input = Input {
               SourceOp = "FastNoise1_1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 788.994, 155.694 } },
      },
      Renderer3D1 = Renderer3D {
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            ["RendererSoftware.LightingEnabled"] = Input { Value = 1, },
            ["RendererSoftware.ShadowsEnabled"] = Input { Value = 1, },
            ["RendererOpenGL.Channels.RGBASS"] = Input { Value = 1, },
            ["RendererOpenGL.Supersampling"] = Input { Value = 1, },
            ["RendererOpenGL.LightingEnabled"] = Input { Value = 1, },
            ["RendererOpenGL.ShadowsEnabled"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 1321.31, 190.028 } },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "Transform3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "SpotLight1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1164.97, 193.354 } },
      },
      Transform3D1 = Transform3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Displace3D2_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 898.32, 157.546 } },
      },
      ColorCorrector2 = ColorCorrector {
         Inputs = {
            WheelTintAngle1 = Input { Value = 0.0532750222939187, },
            WheelTintLength1 = Input { Value = 0.1054, },
            MasterRGBGain = Input { Value = 2.675, },
            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 }
                        }
                     }
                  }
               },
            },
            HistogramIgnoreTransparent = Input { Value = 1, },
            Input = Input {
               SourceOp = "ColorCorrector1",
               Source = "Output",
            },
            EffectMask = Input {
               SourceOp = "Ellipse2",
               Source = "Mask",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 30.0665, 104.021 } },
      },
      Ellipse2 = EllipseMask {
         Inputs = {
            SoftEdge = Input { Value = 0.0607, },
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Center = Input { Value = { 0.28920741989882, 0.535982008995502 }, },
         },
         ViewInfo = OperatorInfo { Pos = { 28.7193, 70.3472 } },
      },
      ColorCorrector1 = ColorCorrector {
         Inputs = {
            MasterRGBGain = Input { Value = 2.675, },
            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 }
                        }
                     }
                  }
               },
            },
            HistogramIgnoreTransparent = Input { Value = 1, },
            Input = Input {
               SourceOp = "ColorCorrector4",
               Source = "Output",
            },
            EffectMask = Input {
               SourceOp = "Ellipse1",
               Source = "Mask",
            },
         },
         ViewInfo = OperatorInfo { Pos = { -80.6071, 103.347 } },
      },
      Ellipse1 = EllipseMask {
         Inputs = {
            SoftEdge = Input { Value = 0.2, },
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Center = Input { Value = { 0.691399662731872, 0.510494752623688 }, },
         },
         ViewInfo = OperatorInfo { Pos = { -102.163, -79.1957 } },
      },
      ColorCorrector4 = ColorCorrector {
         Inputs = {
            WheelTintAngle1 = Input { Value = 0.170352370862681, },
            WheelTintLength1 = Input { Value = 0.946, },
            MasterRGBGain = Input { Value = 0.872, },
            MasterRGBLift = Input { Value = -0.65, },
            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 }
                        }
                     }
                  }
               },
            },
            HistogramIgnoreTransparent = Input { Value = 1, },
            Input = Input {
               SourceOp = "Merge1",
               Source = "Output",
            },
            EffectMask = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { -222.067, 85.1596 } },
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background2",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { -335.435, 108.063 } },
      },
      Camera3D1 = Camera3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input { Value = 1.43485838751718, },
            AoV = Input { Value = 32.59, },
            FLength = Input { Value = 20.3197981891521, },
            ["Stereo.Mode"] = Input { Value = FuID { "OffAxis" }, },
            FilmGate = Input { Value = FuID { "BMD_URSA_4K_16x9" }, },
            ApertureW = Input { Value = 0.831496062992126, },
            ApertureH = Input { Value = 0.467716535433071, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 1056.64, 225.028 } },
      },
      Background2 = Background {
         Inputs = {
            Width = Input { Value = 2200, },
            Height = Input { Value = 1312, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftAlpha = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { -445.435, 108.063 } },
      },
      Background1 = Background {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 0.42, },
            TopLeftGreen = Input { Value = 0.315012304073866, },
            TopLeftBlue = Input { Value = 0.1974, },
         },
         ViewInfo = OperatorInfo { Pos = { -452.889, 34.7347 } },
      }
   }
}


in alot of 3d packages there is something like smooth normals/shading. it feels like a button like that would solve it. but how to do this in fusion?

Re: smooth 3d displacement

PostPosted: Fri Mar 15, 2019 4:37 pm
by Sander de Regt
Just a question: what are all the fastnoises, displaces and BG tools for that feed into the imageplane?
It just looks like a black BG. What's the point of adding all the other stuff?

Re: smooth 3d displacement

PostPosted: Fri Mar 15, 2019 4:44 pm
by Frank Feijen
Was wondering the same thing as Sander ;)
simple "flag":
Code: Select all
{
   Tools = ordered() {
      ImagePlane3D2 = ImagePlane3D {
         Inputs = {
            ["SurfacePlaneInputs.SubdivisionWidth"] = Input { Value = 50, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 3, },
            MaterialInput = Input {
               SourceOp = "Background4",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 3, },
         },
         ViewInfo = OperatorInfo { Pos = { -275, 445.5 } },
      },
      Background4 = Background {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Type = Input { Value = FuID { "Corner" }, },
            TopLeftRed = Input { Value = 1, },
            TopRightGreen = Input { Value = 1, },
            BottomLeftBlue = Input { Value = 1, },
            BottomRightRed = Input { Value = 1, },
            BottomRightGreen = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { -385, 445.5 } },
      },
      Renderer3D2 = Renderer3D {
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Merge3D3",
               Source = "Output",
            },
            ["RendererSoftware.LightingEnabled"] = Input { Value = 1, },
            ["RendererSoftware.ShadowsEnabled"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 165, 445.5 } },
      },
      Merge3D3 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "Displace3D3",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "SpotLight1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { -55, 445.5 } },
      },
      SpotLight1_1 = LightSpot {
         Inputs = {
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.635, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 1.44, },
            ["Transform3DOp.Rotate.X"] = Input { Value = -20, },
            ["Transform3DOp.Rotate.Y"] = Input { Value = 6.1, },
            ["Transform3DOp.Rotate.Z"] = Input { Value = 19, },
            ConeAngle = Input { Value = 90, },
            ["ShadowLightInputs3D.Nest"] = Input { Value = 1, },
            ["ShadowLightInputs3D.SoftnessType"] = Input { Value = FuID { "Constant" }, },
         },
         ViewInfo = OperatorInfo { Pos = { -55, 478.5 } },
      },
      Displace3D3 = Displace3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "ImagePlane3D2",
               Source = "Output",
            },
            Scale = Input { Value = 0.812, },
            Input = Input {
               SourceOp = "FastNoise2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { -165, 445.5 } },
      },
      FastNoise2 = FastNoise {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            Depth = Input { Value = 4, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Detail = Input { Value = 0.47, },
            SeetheRate = Input { Value = 0.2, },
            Color1Alpha = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { -165, 412.5 } },
      }
   }
}

Re: smooth 3d displacement

PostPosted: Fri Mar 15, 2019 5:35 pm
by Rick van den Berg
i knew those questions were coming :)

i removed a paper-texture png and some footage, which will eventually become some kind of harry potter style live-newspaper. and the displace tools are for those crunchy edges.

thanks for your working example. i just still dont know what i did differently/wrong :)

Re: smooth 3d displacement

PostPosted: Fri Mar 15, 2019 6:51 pm
by Bryan Ray
In the FastNoise that you use to displace, leave the Brightness and Contrast alone—you can control the depth of the displacement in the Displace3D node itself. For a flag you want low detail, but not 0. Note that Frank's example has it set to about 0.5.

Your instinct to animate the Center in the FastNoise to give a sense that the air is moving is a good one. Supplement it with a little Seethe Rate to simulate turbulence. Unlink the X- and Y- scale. You'll want something that is higher frequency in the x direction (or whichever direction the wind is coming from—traditionally it's horizontal) than the Y, so you get nice waves instead of bulges.

Probably the crunchiness was coming from trying to use two Displace3D nodes in line. Distorting the UVs then applying a second Displace might have unexpected results. If you want to combine two noise generators, it's probably best to use a Merge in Overlay mode to mix them together and only displace once. The same goes for bump mapping.

Re: smooth 3d displacement

PostPosted: Sun Mar 17, 2019 11:26 am
by Theodor Groeneboom
Make sure you enable HQ mode, else you get alias artefacts.

Re: smooth 3d displacement

PostPosted: Sun Mar 17, 2019 3:56 pm
by leepuznowski
It seems like a very complicated way to make a flag effect. Of course there are many ways to achieve this effect, but maybe something a little simpler like this?

Code: Select all
{
   Tools = ordered() {
      Merge3D3 = Merge3D {
         CtrlWZoom = false,
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "Displace3D3",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "PointLight1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 610, 145 } },
      },
      PointLight1 = LightPoint {
         Inputs = {
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.306786946281003, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 0.752783057066873, },
         },
         ViewInfo = OperatorInfo { Pos = { 610, 211 } },
      },
      Displace3D3 = Displace3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Bender3D1",
               Source = "Output",
            },
            Input = Input {
               SourceOp = "Merge5",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 500, 211 } },
      },
      Merge5 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Merge4",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Transform1",
               Source = "Output",
            },
            ApplyMode = Input { Value = FuID { "Multiply" }, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 335, 211 } },
      },
      Bender3D1 = Bender3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Shape3D1",
               Source = "Output",
            },
            Amount = Input {
               SourceOp = "Perturb1",
               Source = "Value",
            },
            Axis = Input { Value = 0, },
            Angle = Input { Value = 90, },
            Center = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 500, 277 } },
      },
      Perturb1 = PerturbNumber {
         CtrlWZoom = false,
         Inputs = {
            Strength = Input { Value = 0.2, },
            Speed = Input {
               SourceOp = "Perturb2",
               Source = "Value",
            },
         },
      },
      Perturb2 = PerturbNumber {
         CtrlWZoom = false,
         Inputs = {
            Value = Input { Value = 1, },
            Strength = Input { Value = 0.2, },
         },
      },
      Merge4 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Blur1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Background5",
               Source = "Output",
            },
            ApplyMode = Input { Value = FuID { "Multiply" }, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 225, 211 } },
      },
      Background5 = Background {
         Inputs = {
            Width = Input { Value = 1080, },
            Height = Input { Value = 1080, },
            Depth = Input { Value = 3, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Type = Input { Value = FuID { "Gradient" }, },
         },
         ViewInfo = OperatorInfo { Pos = { 225, 178 } },
      },
      Blur1 = Blur {
         Inputs = {
            XBlurSize = Input { Value = 50, },
            Input = Input {
               SourceOp = "Background4",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 115, 211 } },
      },
      Transform1 = Transform {
         Inputs = {
            Size = Input { Value = 1.40727356959086, },
            Angle = Input { Value = 17.4, },
            Input = Input {
               SourceOp = "TimeSpeed1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 225, 343 } },
      },
      Shape3D1 = Shape3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input { Value = 0.146496327342168, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 3, },
            ["SurfacePlaneInputs.SizeLock"] = Input { Value = 0, },
            ["SurfacePlaneInputs.Height"] = Input { Value = 0.5, },
            ["SurfacePlaneInputs.SubdivisionWidth"] = Input { Value = 50, },
            ["SurfacePlaneInputs.SubdivisionHeight"] = Input { Value = 50, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 3, }
         },
         ViewInfo = OperatorInfo { Pos = { 500, 343 } },
      },
      TimeSpeed1 = TimeSpeed {
         Inputs = {
            Speed = Input { Value = 2, },
            Input = Input {
               SourceOp = "Blur1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 115, 343 } },
      },
      Background4 = Background {
         CtrlWZoom = false,
         Inputs = {
            Width = Input { Value = 1080, },
            Height = Input { Value = 1080, },
            Depth = Input { Value = 3, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Type = Input { Value = FuID { "Gradient" }, },
            Start = Input { Value = { 0.523002421307506, 0.50726392251816 }, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [0.644295302013423] = { 1, 1, 1, 1 },
                     [0.822147651006711] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
            Offset = Input {
               SourceOp = "Background4Offset",
               Source = "Value",
            },
            Repeat = Input { Value = FuID { "Ping-Pong" }, },
         },
         ViewInfo = OperatorInfo { Pos = { 5, 211 } },
      },
      Background4Offset = BezierSpline {
         SplineColor = { Red = 234, Green = 92, Blue = 75 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 66.6666666666667, 2.66666666666667 }, Flags = { Linear = true } },
            [200] = { 8, LH = { 133.333333333333, 5.33333333333333 }, RH = { 266.666666666667, 10.6666666666667 }, Flags = { Linear = true } },
            [400] = { 16, LH = { 333.333333333333, 13.3333333333333 }, Flags = { Linear = true } }
         }
      }
   }
}