Jump to: Board index » General » Fusion

newbie: Shadows, OpenGL and Depth of field

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

Helge Tjelta

  • Posts: 158
  • Joined: Fri Mar 08, 2013 8:07 am
  • Location: Oslo, NORWAY

newbie: Shadows, OpenGL and Depth of field

PostTue Jan 13, 2015 7:46 am

Hi, I'm trying to get a grasp of the fusion thing, and really looking forward for the mac version. Right now am sitting on a PC with a GTX580 nVidida card. (yes it is really old)

Trying to build a blu-print 3D world with some big bridges, a oil platform etc...

I want to have shadows from the bridges and down to the image-plane under it (the blue print surface) and I would like to have a depth of field, so that my focus is only on the front most half of the depth.

So, it looks like I only get 1 out of 2.

With software render (slow), I get shadows but NO Depth of field
With OpenGL render (faster), I get Depth of field but NO shadow (or soft shadows)

Doing a simple test project, plane and sphere, when switching from software render to OpenGL fusion just crash.

So can I get best of both worlds, Fusion says it is GPU accelerated, but is this only in viewport and not render ?

Please enlighten me :)
Offline
User avatar

Thomas Milde

  • Posts: 319
  • Joined: Tue Aug 28, 2012 11:27 am
  • Location: Augsburg, Germany

Re: newbie: Shadows, OpenGL and Depth of field

PostTue Jan 13, 2015 11:45 am

I'm not at my Fusion machine right now, so this is guesswork:

As far as I know the renderer options are just for the viewports. As soon as you add a saver node and have it rendered out to a file/image sequence/whatever you will get all the effects at its best.

As I read your post I understand you just played around with the GUI and didn't render out yet, did you?
Tech:
Win 10 pro, Ryzen 9 5900X, 128 GB, M.2 for media
RTX 3080 ti, Intensity Pro, DVR Studio + Fusion 18.x, Desktop Video 12.x
Offline
User avatar

Helge Tjelta

  • Posts: 158
  • Joined: Fri Mar 08, 2013 8:07 am
  • Location: Oslo, NORWAY

Re: newbie: Shadows, OpenGL and Depth of field

PostTue Jan 13, 2015 1:42 pm

I did save out. But still, the depth of field is only available when you use OpenGL and not software render.

Why, or am I missing something.?
Offline

Joël Gibbs

  • Posts: 97
  • Joined: Wed Nov 12, 2014 9:18 pm
  • Location: Nashville

Re: newbie: Shadows, OpenGL and Depth of field

PostTue Jan 13, 2015 4:20 pm

Basically, it's the way you've described it.
If you render with software render ( gets you the soft shadows), then turn on the zdepth output and use a depth of field node after as a post process. There are several of them out there. Frischluft is the best (imho), but you have to buy it. There is a macro or Fuse by Gringo that works pretty well too. I think you can find it on the archive of vfxpedia.
Hope this helps!
Offline
User avatar

Rony Soussan

  • Posts: 727
  • Joined: Tue Nov 11, 2014 5:33 pm

Re: newbie: Shadows, OpenGL and Depth of field

PostTue Jan 13, 2015 6:38 pm

Note that plugins aren't supported in the free version.

TIP: think of Fusion 3D in the way you would a 3D app when rendering passes.
What I do is render shadow only in software, I get my soft shadows, then render with GL for GL only effects, and comp them back together.

Even in comp, there is a lot of benefit from rendering passes.
Offline
User avatar

Eric Westphal

  • Posts: 214
  • Joined: Thu Nov 20, 2014 1:59 pm

Re: newbie: Shadows, OpenGL and Depth of field

PostWed Jan 14, 2015 8:12 am

Here's a quick example on how to combine
Software Rendering (for soft shadows),
Ambient Occlusion,
and OpenGL Rendering for DepthOfField.

Code: Select all
{
   Tools = ordered() {
      CamProject = Camera3D {
         NameSet = true,
         SourceOp = "Camera3D1",
         Inputs = {
            SceneInput = Input { },
            ["Transform3DOp.Translation"] = Input { },
            ["Transform3DOp.Rotation"] = Input { },
            ["Transform3DOp.PivotNest"] = Input { },
            ["Transform3DOp.ScaleNest"] = Input { },
            ["Transform3DOp.TargetNest"] = Input { },
            ["Stereo.Nest"] = Input { },
            ["Stereo.RightCamera"] = Input { },
            FilmBack = Input { },
            ControlVis = Input { },
            ["SurfacePlaneInputs.Visibility.Nest"] = Input { },
            ["SurfacePlaneInputs.Lighting.Nest"] = Input { },
            ["SurfacePlaneInputs.Matte.Nest"] = Input { },
            ["SurfacePlaneInputs.BlendMode.Nest"] = Input { },
            ["SurfacePlaneInputs.Controls.Nest"] = Input { },
            ["SurfacePlaneInputs.ObjectID.Nest"] = Input { },
            ImageInput = Input {
               SourceOp = "ChannelBooleans1",
               Source = "Output",
            },
            ["MtlStdInputs.Diffuse.Nest"] = Input { },
            ["MtlStdInputs.Specular.Nest"] = Input { },
            ["MtlStdInputs.Transmittance.Nest"] = Input { },
            ["MtlStdInputs.MaterialIDNest"] = Input { },
            StartEndRenderScripts = Input { },
         },
         ViewInfo = OperatorInfo { Pos = { 1210, 379.5, }, },
      },
      Shape3D2 = Shape3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input { Value = -2.2222222, },
            ["Transform3DOp.Rotate.X"] = Input { Value = -90, },
            ["Transform3DOp.Scale.X"] = Input { Value = 8, },
            ["MtlStdInputs.Diffuse.Color.Green"] = Input { Value = 0.460368824629927, },
            ["MtlStdInputs.Diffuse.Color.Blue"] = Input { Value = 0.092941261242936, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 3, },
         },
         ViewInfo = OperatorInfo { Pos = { 440, 280.5, }, },
      },
      Shape3D1 = Shape3D {
         Inputs = {
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.5, },
            Shape = Input { Value = FuID { "SurfaceCubeInputs", }, },
            ["MtlStdInputs.Diffuse.Color.Green"] = Input { Value = 0.672660007345676, },
            ["MtlStdInputs.Diffuse.Color.Blue"] = Input { Value = 0.197116308409355, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            ["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 440, 247.5, }, },
      },
      SpotLight1 = LightSpot {
         CtrlWZoom = false,
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -4.24015115854973, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 2.69826641180316, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 2.45481303034547, },
            ["Transform3DOp.UseTarget"] = Input { Value = 1, },
            Intensity = Input { Value = 30, },
            DecayType = Input { Value = 2, },
            ["ShadowLightInputs3D.Nest"] = Input { Value = 1, },
            ["ShadowLightInputs3D.MultiplicativeBias"] = Input { Value = 1, },
            ["ShadowLightInputs3D.AdditiveBias"] = Input { Value = 5, },
            ["ShadowLightInputs3D.SoftnessType"] = Input { Value = FuID { "Variable", }, },
         },
         ViewInfo = OperatorInfo { Pos = { 385, 181.5, }, },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "Shape3D2",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Shape3D1",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "SpotLight1",
               Source = "Output",
            },
            SceneInput4 = Input {
               SourceOp = "PointLight1",
               Source = "Output",
            },
            SceneInput5 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            SceneInput6 = Input {
               SourceOp = "Text3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 550, 280.5, }, },
      },
      Renderer3D2 = Renderer3D {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            SceneInput = Input {
               SourceOp = "Merge3D2",
               Source = "Output",
            },
            CameraSelector = Input { Value = FuID { "Camera3D1", }, },
            RendererType = Input { Value = FuID { "RendererOpenGL", }, },
            ["RendererOpenGL.AccumulationEffects"] = Input { Value = 1, },
            ["RendererOpenGL.EnableAccumEffects"] = Input { Value = 1, },
            ["RendererOpenGL.AccumQuality"] = Input { Value = 12, },
            ["RendererOpenGL.DoFBlur"] = Input { Value = 0.05, },
         },
         ViewInfo = OperatorInfo { Pos = { 1485, 445.5, }, },
      },
      ChannelBooleans1 = ChannelBoolean {
         Inputs = {
            Operation = Input { Value = 6, },
            Background = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "SSAO1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1045, 280.5, }, },
      },
      Renderer3D1 = Renderer3D {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            Depth = Input { Value = 3, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            ["RendererSoftware.Channels.Nest"] = Input { Value = 1, },
            ["RendererSoftware.Channels.Z"] = Input { Value = 1, },
            ["RendererSoftware.Channels.Normal"] = Input { Value = 1, },
            ["RendererSoftware.LightingEnabled"] = Input { Value = 1, },
            ["RendererSoftware.ShadowsEnabled"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 715, 280.5, }, },
      },
      Camera3D1 = Camera3D {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = 0.9050256, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.993418467648674, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 1.20213317080126, },
            ["Transform3DOp.Rotate.X"] = Input { Value = -33.4000015258789, },
            ["Transform3DOp.Rotate.Y"] = Input { Value = 19.3999977111816, },
            FLength = Input { Value = 18.2123442718302, },
            PlaneOfFocus = Input { Value = 1.2690476, },
            ["Stereo.Mode"] = Input { Value = FuID { "OffAxis", }, },
            ControlVis = Input { Value = 1, },
            PlaneOfFocusVis = Input { Value = 1, },
            ImagePlaneEnabled = Input { Value = 0, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 4, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 3, },
            ProjectionEnabled = Input { Value = 1, },
            ProjectionFitMethod = Input { Value = FuID { "Height", }, },
            ProjectionMode = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 385, 379.5, }, },
      },
      Text3D1 = Text3D {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = 1, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -0.5252525, },
            ["Transform3DOp.Rotate.Y"] = Input { Value = -65.4545455, },
            Font = Input { Value = "Arial", },
            StyledText = Input { Value = "focus", },
            Style = Input { Value = "Bold", },
            Extrusion = Input { Value = 1, },
            ExtrusionProfile = Input {
               SourceOp = "Text3D1ExtrusionProfile",
               Source = "Value",
            },
            ExtrusionDepth = Input { Value = 0.12, },
            BevelDepth = Input { Value = 0.01, },
            BevelWidth = Input { Value = 0.01, },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = "",
               },
            },
            ShadingGradient1 = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1, },
                     [1] = { 1, 1, 1, 1, },
                  },
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 330, 313.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,
      },
      SSAO1 = SSAO {
         Inputs = {
            KernelRadius = Input { Value = 0.1, },
            Camera = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            Input = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 935, 214.5, }, },
      },
      ReplaceMaterial3D1 = ReplaceMaterial3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            MaterialInput = Input {
               SourceOp = "Catcher1",
               Source = "MaterialOutput",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 4, },
         },
         ViewInfo = OperatorInfo { Pos = { 1210, 445.5, }, },
      },
      Merge3D2 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "ReplaceMaterial3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "CamProject",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1320, 445.5, }, },
      },
      Catcher1 = TexCatcher {
         Inputs = {
            MaterialID = Input { Value = 5, },
         },
         ViewInfo = OperatorInfo { Pos = { 1210, 511.5, }, },
      },
      PointLight1 = LightPoint {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = 2.02197119267344, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 2.82692209103679, },
            Intensity = Input { Value = 3, },
            DecayType = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 440, 148.5, }, },
      },
   },
}


Enjoy.

Eric.
my hovercraft is full of eels.
Offline

Ulrik Karlsson

  • Posts: 24
  • Joined: Mon Jan 12, 2015 6:53 am

Re: newbie: Shadows, OpenGL and Depth of field

PostThu Feb 12, 2015 6:13 pm

I would like to see your example Eric but I don't know how to view that code it in Fusion?
Offline
User avatar

Pieter Van Houte

  • Posts: 642
  • Joined: Wed Nov 05, 2014 1:04 am

Re: newbie: Shadows, OpenGL and Depth of field

PostThu Feb 12, 2015 6:20 pm

Copy/paste it from the post into a Fusion flow view.
Support We Suck Less on Patreon -> https://www.patreon.com/wesuckless

https://www.steakunderwater.com/wesuckless
Offline

Ulrik Karlsson

  • Posts: 24
  • Joined: Mon Jan 12, 2015 6:53 am

Re: newbie: Shadows, OpenGL and Depth of field

PostMon Feb 16, 2015 12:02 pm

Thanks!

Return to Fusion

Who is online

Users browsing this forum: jsghost777, ManiRatnam and 24 guests