Jump to: Board index » General » Fusion

Cut out 3d text from 3d object

Learn about 3D compositing, animation, broadcast design and VFX workflows.
  • Author
  • Message
Offline

Matthew Lumb

  • Posts: 47
  • Joined: Tue Apr 26, 2016 12:41 pm

Cut out 3d text from 3d object

PostMon May 04, 2020 10:30 am

Hello,

Trying to replicate something like this style of title. I.e. 3D text cut-out/embossed from a 3D object.

2.jpeg
2.jpeg (34.23 KiB) Viewed 1640 times


I've got the textured 3D slab and the text, the camera, renderer and lighting... I just can't work out how to "cut" the text from the object.

In 2D it can be done with a mask, but what's the solution in 3D?

Thanks!
Offline

UserNoah

  • Posts: 461
  • Joined: Fri Oct 04, 2019 3:32 pm
  • Location: Germany
  • Real Name: Noah Hähnel

Re: Cut out 3d text from 3d object

PostMon May 04, 2020 12:54 pm

You can use a Text3D to substract from a Shape3D plane. Place another plane below, add some nice lighting for the shadows.
Offline

Matthew Lumb

  • Posts: 47
  • Joined: Tue Apr 26, 2016 12:41 pm

Re: Cut out 3d text from 3d object

PostTue May 05, 2020 4:48 pm

Thanks - can you expand a little? Just spent an hour trying to subtract the Text3D from the ImagePlane3D but got nowhere. Don't know if I'm missing a node or there's a option I need to choose on the ImagePlane3D - assumed it'd be Blend Mode but no.

Any tips appreciated.
Offline

UserNoah

  • Posts: 461
  • Joined: Fri Oct 04, 2019 3:32 pm
  • Location: Germany
  • Real Name: Noah Hähnel

Re: Cut out 3d text from 3d object

PostTue May 05, 2020 5:04 pm

I do mean the blend mode. If you set it to substractive it should essentially cut out the plane. Maybe I'm wrong but I'm pretty sure I had done something like this before.
Offline

xunile

  • Posts: 3075
  • Joined: Mon Apr 23, 2018 5:21 am
  • Real Name: Eric Eisenmann

Re: Cut out 3d text from 3d object

PostTue May 05, 2020 5:42 pm

UserNoah wrote:I do mean the blend mode. If you set it to substractive it should essentially cut out the plane. Maybe I'm wrong but I'm pretty sure I had done something like this before.


The Merge3D node has no blend mode, what node did you use to cut out the Text3D from the Shape3D?
Win 10 Home | Intel i7 - 10700f 64 GB 1 TB GB SSD 2 TB SSD
RTX-3060 12 GB | Resolve Studio 18.6.6| Fusion Studio 18.6.6

Win 10 Home | Intel Core I7-7700HQ 32 GB 1 TB NVME SSD 1 TB SATA SSD
GTX-1060-6GB | Resolve 17.4.6
Offline

UserNoah

  • Posts: 461
  • Joined: Fri Oct 04, 2019 3:32 pm
  • Location: Germany
  • Real Name: Noah Hähnel

Re: Cut out 3d text from 3d object

PostTue May 05, 2020 6:19 pm

I meant the blend modes on the 3D objects or the override 3d but I was wrong. The substract doesn't do anything for this, I'm sorry.

I tested two possible solutions, one simply with a texture and the other with AO.Maybe this gets you where you want to:

Code: Select all
{
   Tools = ordered() {
      Shape3D2 = Shape3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input { Value = -0.157742256436494, },
            ["Transform3DOp.Scale.X"] = Input { Value = 1.261, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            ["SurfaceCubeInputs.BlendMode.Nest"] = Input { Value = 1, },
            ["SurfaceCubeInputs.BlendMode.GL.BlendMode"] = Input { Value = FuID { "Subtractive" }, },
            ["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 3, }
         },
         ViewInfo = OperatorInfo { Pos = { 770, 247.5 } },
      },
      Shape3D1 = Shape3D {
         Inputs = {
            ["Transform3DOp.Scale.X"] = Input { Value = 2.008, },
            MaterialInput = Input {
               SourceOp = "ChannelBooleans1",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
            ["SurfacePlaneInputs.SubdivisionWidth"] = Input { Value = 40, },
            ["SurfacePlaneInputs.BlendMode.Nest"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, }
         },
         ViewInfo = OperatorInfo { Pos = { 770, 148.5 } },
      },
      ChannelBooleans1 = ChannelBoolean {
         Inputs = {
            Operation = Input { Value = 10, },
            Background = Input {
               SourceOp = "Text1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 770, 82.5 } },
      },
      Text1 = TextPlus {
         Inputs = {
            GlobalIn = Input { Value = 1, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            StyledText = Input { Value = "Fusion", },
            Font = Input { Value = "Open Sans", },
            Style = Input { Value = "Bold", },
            VerticalJustificationNew = Input { Value = 3, },
            HorizontalJustificationNew = Input { Value = 3, },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 770, -16.5 } },
      },
      Shape3D1_1 = Shape3D {
         CtrlWZoom = false,
         Inputs = {
            ["Transform3DOp.Scale.X"] = Input { Value = 2.008, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
            ["SurfacePlaneInputs.SubdivisionWidth"] = Input { Value = 40, },
            ["SurfacePlaneInputs.BlendMode.Nest"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, }
         },
         ViewInfo = OperatorInfo { Pos = { 935, 544.5 } },
      },
      Renderer3D2 = Renderer3D {
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            GlobalIn = Input { Value = 1, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Override3D1_1",
               Source = "Output",
            },
            ["RendererSoftware.Channels.Nest"] = Input { Value = 1, },
            ["RendererSoftware.Channels.Z"] = Input { Value = 1, },
            ["RendererSoftware.Channels.Normal"] = Input { Value = 1, },
            ["RendererSoftware.Channels.TexCoord0"] = Input { Value = 1, },
            ["RendererOpenGL.Channels.Nest"] = Input { Value = 1, },
            ["RendererOpenGL.Channels.Z"] = Input { Value = 1, },
            ["RendererOpenGL.Channels.Normal"] = Input { Value = 1, },
            ["RendererOpenGL.Channels.TexCoord0"] = Input { Value = 1, },
            ["RendererOpenGL.AntiAliasing.Channels.RGBA.HighQuality.Enable"] = Input { Value = 1, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.RateX"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.RateY"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Supersampling.HighQuality.RateX"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Supersampling.HighQuality.RateY"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
            ["RendererOpenGL.AccumQuality"] = Input { Value = 32, },
         },
         ViewInfo = OperatorInfo { Pos = { 1320, 643.5 } },
         SubInputsData = {
            RendererOpenGL = {
               Version = 1
            }
         }
      },
      Renderer3D1 = Renderer3D {
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            GlobalIn = Input { Value = 1, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            RendererType = Input { Value = FuID { "RendererOpenGL" }, },
            ["RendererOpenGL.AntiAliasing.Channels.RGBA.HighQuality.Enable"] = Input { Value = 1, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.RateX"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.RateY"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Supersampling.HighQuality.RateX"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Supersampling.HighQuality.RateY"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
            ["RendererOpenGL.AccumQuality"] = Input { Value = 32, },
            ["RendererOpenGL.LightingEnabled"] = Input { Value = 1, },
            ["RendererOpenGL.ShadowsEnabled"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 1100, 247.5 } },
         SubInputsData = {
            RendererOpenGL = {
               Version = 1
            }
         }
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "UVMap3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Shape3D2",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "SpotLight1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 990, 247.5 } },
      },
      SpotLight1 = LightSpot {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -0.00185921268754683, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.531178197570681, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 1.12203688328621, },
            ["Transform3DOp.Rotate.X"] = Input { Value = -23.3, },
            ConeAngle = Input { Value = 64.49, },
            PenumbraAngle = Input { Value = 20, },
            Dropoff = Input { Value = 1.5, },
            ["ShadowLightInputs3D.Nest"] = Input { Value = 1, },
            ["ShadowLightInputs3D.ShadowDensity"] = Input { Value = 0.685, },
            ["ShadowLightInputs3D.ShadowMapProxy"] = Input { Value = 0.7921, },
            ["ShadowLightInputs3D.MultiplicativeBias"] = Input { Value = 23.39, },
            ["ShadowLightInputs3D.AdditiveBias"] = Input { Value = 14.88, },
         },
         ViewInfo = OperatorInfo { Pos = { 990, 313.5 } },
      },
      AmbientOcclusion1 = SSAO {
         Inputs = {
            KernelRadius = Input { Value = 3.01, },
            Camera = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            Input = Input {
               SourceOp = "Renderer3D2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1485, 643.5 } },
      },
      Override3D1_1 = Override3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "ReplaceMaterial3D1",
               Source = "Output",
            },
            ["Visibility.DoIgnoreTransparentPixelsInAuxChannels"] = Input { Value = 1, },
            ["Visibility.IgnoreTransparentPixelsInAuxChannels"] = Input { Value = 0, },
            ["BlendMode.GL.BlendMode"] = Input { Value = FuID { "TransMatte" }, },
            ["BlendMode.SW.BlendMode"] = Input { Value = FuID { "TransMatte" }, },
            ["BlendMode.SW.Operator"] = Input { Value = FuID { "In" }, },
            ["Exclusions.LimitByObjectID"] = Input { Value = 1, },
            ["Exclusions.ObjectID"] = Input { Value = 5, },
         },
         ViewInfo = OperatorInfo { Pos = { 1210, 643.5 } },
      },
      ReplaceMaterial3D1 = ReplaceMaterial3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Merge3D2",
               Source = "Output",
            },
            LimitByObjectID = Input { Value = 1, },
            ObjectID = Input { Value = 5, },
            ["MtlStdInputs.Diffuse.Color.Red"] = Input { Value = 0.835, },
            ["MtlStdInputs.Diffuse.Color.Green"] = Input { Value = 0, },
            ["MtlStdInputs.Diffuse.Color.Blue"] = Input { Value = 0, },
            ["MtlStdInputs.Diffuse.Color.Alpha"] = Input { Value = 0, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 4, },
         },
         ViewInfo = OperatorInfo { Pos = { 1100, 643.5 } },
      },
      Camera3D1 = Camera3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input { Value = 3.73398007129749, },
            AoV = Input { Value = 19.2642683071402, },
            ["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 = 4, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 3, },
         },
         ViewInfo = OperatorInfo { Pos = { 880, 841.5 } },
      },
      Override3D2 = Override3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Text3D1",
               Source = "Output",
            },
            ["ObjectID.DoObjectID"] = Input { Value = 1, },
            ["ObjectID.NewObjectID"] = Input { Value = 5, },
         },
         ViewInfo = OperatorInfo { Pos = { 825, 643.5 } },
      },
      Merge3D2 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "Override3D2",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Shape3D1_1",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            SceneInput4 = Input {
               SourceOp = "Shape3D1_1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 935, 643.5 } },
      },
      Text3D1 = Text3D {
         Inputs = {
            ["Transform3DOp.Translate.Y"] = Input { Value = -0.946915236729728, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -0.0215624489493356, },
            Red1 = Input { Value = 0, },
            Green1 = Input { Value = 0, },
            Blue1 = Input { Value = 0, },
            StyledText = Input { Value = "Fusion\n", },
            Font = Input { Value = "Open Sans", },
            Style = Input { Value = "Bold", },
            VerticalTopCenterBottom = Input { Value = 1, },
            VerticalJustification = Input { Value = 3, },
            VerticalJustificationNew = Input { Value = 3, },
            HorizontalJustificationNew = Input { Value = 3, },
            Extrusion = Input { Value = 1, },
            ExtrusionProfile = Input {
               SourceOp = "Text3D1ExtrusionProfile",
               Source = "Value",
            },
            ExtrusionDepth = Input { Value = 0.0457, },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 715, 643.5 } },
      },
      Text3D1ExtrusionProfile = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0, RH = { 0.0196116135138184, 0.098058067569092 }, Flags = { Linear = true } },
               [0.2] = { 1, LH = { 0.180388386486182, 0.901941932430908 }, RH = { 0.3, 1 }, Flags = { Linear = true } },
               [0.8] = { 1, LH = { 0.7, 1 }, RH = { 0.819611613513818, 0.901941932430908 }, Flags = { Linear = true } },
               [1] = { 0, LH = { 0.980388386486182, 0.098058067569092 }, Flags = { Linear = true } }
            }
         },
         SplineColor = { Red = 192, Green = 128, Blue = 64 },
         NameSet = true,
      },
      Shape3D1_1_1 = Shape3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input { Value = -0.31, },
            ["Transform3DOp.Scale.X"] = Input { Value = 2.008, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
            ["SurfacePlaneInputs.SubdivisionWidth"] = Input { Value = 40, },
            ["SurfacePlaneInputs.BlendMode.Nest"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, }
         },
         ViewInfo = OperatorInfo { Pos = { 1045, 544.5 } },
      },
      UVMap3D1 = UVMap {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Shape3D1",
               Source = "Output",
            },
            Orientation = Input { Value = 2, },
            RefTime = Input { Value = 1, },
            ["Size.Y"] = Input { Value = 1.182, },
         },
         ViewInfo = OperatorInfo { Pos = { 990, 148.5 } },
      }
   }
}
Offline

xunile

  • Posts: 3075
  • Joined: Mon Apr 23, 2018 5:21 am
  • Real Name: Eric Eisenmann

Re: Cut out 3d text from 3d object

PostTue May 05, 2020 7:02 pm

This is what I came up with.

Code: Select all
{
   Tools = ordered() {
      Shadow1_1_1 = Shadow {
         Inputs = {
            ShadowOffset = Input { Value = { 0.508, 0.491 }, },
            Softness = Input { Value = 0.01575, },
            Input = Input {
               SourceOp = "Background2_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 412.385, -133.273 } },
      },
      Background2_1 = Background {
         Inputs = {
            EffectMask = Input {
               SourceOp = "Text1_1",
               Source = "Output",
            },
            ApplyMaskInverted = Input { Value = 1, },
            GlobalOut = Input { Value = 948, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            UseFrameFormatSettings = Input { Value = 1, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 0.320276975631714, },
            TopLeftGreen = Input { Value = 0.306825309991837, },
            TopLeftBlue = Input { Value = 0.306825309991837, },
         },
         ViewInfo = OperatorInfo { Pos = { 412.385, -166.273 } },
      },
      Text1_1 = TextPlus {
         Inputs = {
            GlobalOut = Input { Value = 948, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            UseFrameFormatSettings = Input { Value = 1, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            StyledText = Input { Value = "Resolve", },
            Font = Input { Value = "Open Sans", },
            Style = Input { Value = "Bold", },
            Size = Input { Value = 0.2835, },
            VerticalJustificationNew = Input { Value = 3, },
            HorizontalJustificationNew = Input { Value = 3, },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 306.385, -137.255 } },
      },
      Rectangle1_1 = RectangleMask {
         Inputs = {
            Filter = Input { Value = FuID { "Fast Gaussian" }, },
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Width = Input { Value = 1.01080550098232, },
            Height = Input { Value = 0.590909090909091, },
         },
         ViewInfo = OperatorInfo { Pos = { 562, -120.273 } },
      },
      Background1_1 = Background {
         Inputs = {
            EffectMask = Input {
               SourceOp = "Rectangle1_1",
               Source = "Mask",
            },
            GlobalOut = Input { Value = 948, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            UseFrameFormatSettings = Input { Value = 1, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 0.858, },
            TopLeftGreen = Input { Value = 0.821964, },
            TopLeftBlue = Input { Value = 0.821964, },
         },
         ViewInfo = OperatorInfo { Pos = { 562, -87.2727 } },
      },
      Rectangle1 = RectangleMask {
         CtrlWZoom = false,
         Inputs = {
            Filter = Input { Value = FuID { "Fast Gaussian" }, },
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Width = Input { Value = 1.06533223584566, },
            Height = Input { Value = 0.695250182773347, },
         },
         ViewInfo = OperatorInfo { Pos = { 300.667, -73 } },
      },
      Merge2_1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1_1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Shadow1_1_1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
            EffectMask = Input {
               SourceOp = "Rectangle1",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 416, -67.2727 } },
      },
      Transform1 = Transform {
         Inputs = {
            Size = Input { Value = 0.66, },
            Input = Input {
               SourceOp = "Merge2_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 411.333, -32.4545 } },
      }
   }
}
Attachments
2020-05-05 (1).png
2020-05-05 (1).png (515.4 KiB) Viewed 1520 times
Win 10 Home | Intel i7 - 10700f 64 GB 1 TB GB SSD 2 TB SSD
RTX-3060 12 GB | Resolve Studio 18.6.6| Fusion Studio 18.6.6

Win 10 Home | Intel Core I7-7700HQ 32 GB 1 TB NVME SSD 1 TB SATA SSD
GTX-1060-6GB | Resolve 17.4.6
Offline

Matthew Lumb

  • Posts: 47
  • Joined: Tue Apr 26, 2016 12:41 pm

Re: Cut out 3d text from 3d object

PostThu May 07, 2020 10:16 am

Thanks for that - really appreciate it. I'll take a look.

Return to Fusion

Who is online

Users browsing this forum: No registered users and 40 guests