Page 1 of 1

ImagePlain3D to cast shadow of a PNG+Alpha

PostPosted: Wed Apr 16, 2025 2:22 pm
by AndrewTheGreat
Hi. I'm making a 3D scene, and everything seems perfect but for 2 things:
1) The shadow from a ImagePlain3D node seems to be off the plain as if elevated but it's not:
image_2025-04-16_171823459.png
image_2025-04-16_171823459.png (37.32 KiB) Viewed 1395 times

2) The node casts a rectangular shadow of the node itself and not the shadow of the image I use which has an alpha channel in it.

I know about this workaround with using a software renderer instead of the hardware one but with it the shadow is completely gone:
Screenshot 2025-04-16 172042.png
Screenshot 2025-04-16 172042.png (56.5 KiB) Viewed 1395 times

Screenshot 2025-04-16 172047.png
Screenshot 2025-04-16 172047.png (59.34 KiB) Viewed 1395 times


I won't believe Fusion has no means to fix it. I don't want to use a b\w image placed on the floor and animated instead of the real shadow. Any suggestions?

Re: ImagePlain3D to cast shadow of a PNG+Alpha

PostPosted: Wed Apr 16, 2025 3:57 pm
by Chad Capeland
p 629

Re: ImagePlain3D to cast shadow of a PNG+Alpha

PostPosted: Wed Apr 16, 2025 8:06 pm
by AndrewTheGreat
Chad Capeland wrote:p 629

Ehm, what is it? If it's Davinci 4000+ pages book, then p 629 there is devoted to Source and Timeline Viewers.
If it's The Beginner's guide is about the Project server.
Can you be more precise?

Re: ImagePlain3D to cast shadow of a PNG+Alpha

PostPosted: Wed Apr 16, 2025 8:08 pm
by Sander de Regt
It's on page 629 of the Fusion manual, not the Resolve one.
(this is the Fusion forum, so I presume that's where Chad looked first)

Re: ImagePlain3D to cast shadow of a PNG+Alpha

PostPosted: Wed Apr 16, 2025 8:14 pm
by AndrewTheGreat
Sander de Regt wrote:It's on page 629 of the Fusion manual, not the Resolve one.
(this is the Fusion forum, so I presume that's where Chad looked first)


I don't get it... Can someone just explain, or is this forum for something else?
image_2025-04-16_231451932.png
image_2025-04-16_231451932.png (93.24 KiB) Viewed 1294 times

Re: ImagePlain3D to cast shadow of a PNG+Alpha

PostPosted: Wed Apr 16, 2025 8:23 pm
by Sander de Regt
The forum is definitely for questions like these, but if the information is in the manual, there's not much point for someone else to go to the manual and copy/paste the info from the manual in the forum.
You can just read it in the manual for yourself. So the suggestion to take a look in the manual is valid one in that sense. And in my Fusion install this is indeed the explanation for all things shadow in the renderer3D. In my manual your page 629 is 633 so if you scroll up a couple of pages, you will most likelye find the info you're looking for.

Re: ImagePlain3D to cast shadow of a PNG+Alpha

PostPosted: Wed Apr 16, 2025 9:04 pm
by KrunoSmithy
Since only software renderer engine can cast shadows with transparent textures, and that is a bummer since its slow to render on CPU only and it doesn't support DOF etc, like Hardware renderer which is GPU. Often, especially with simpler scenes a method used is separate pass for shadow with CPU and GPU for the rest of it. That is a set up I use when its not too complicated composition. So you can use that as well.

I hope Blackmagic gives us USD shadow support for animated objects, but maybe in the next release. Manual while normally useful for many things, when it comes to this specific situation, its not all the helpeful. It is good to read it and use as refernce. But sometimes you have to find workarounds for specific needs.

PS. if you conver a simple object like cat SVG to shape system and put it in 3D with Extrude 3D node, than hardware render should also be able to cast shadows since it works fine with native 3D objects, but not with alpha in textures.

sshot-1116.jpg
sshot-1116.jpg (175.58 KiB) Viewed 1271 times


sshot-1117.jpg
sshot-1117.jpg (179.23 KiB) Viewed 1271 times


Code: Select all
{
   Tools = ordered() {
      Shape3D2 = Shape3D {
         CtrlWZoom = false,
         Inputs = {
            ["SurfacePlaneInputs.Visibility.CullBackFace"] = Input {
               Value = Number {
                  Value = 1
               },
            },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input {
               Value = Number {
                  Value = 6
               },
            },
            ["SurfacePlaneInputs.Visibility.Nest"] = Input {
               Value = Number {
                  Value = 1
               },
            },
            ["Transform3DOp.Translate.Y"] = Input { Value = -0.5, },
            Shape = Input { Value = FuID { "SurfaceCubeInputs" }, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 5, },
            ["SurfaceSphereInputs.SubdivisionLevelBase"] = Input { Value = 60, },
            ["SurfaceSphereInputs.SubdivisionLevelHeight"] = Input { Value = 60, },
            ["SurfaceSphereInputs.Visibility.Nest"] = Input { Value = 1, },
            ["SurfaceSphereInputs.Visibility.CullBackFace"] = Input { Value = 1, },
            ["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            ["SurfaceCubeInputs.SizeLock"] = Input { Value = 0, },
            ["SurfaceCubeInputs.Depth"] = Input { Value = 5, },
            ["SurfaceCubeInputs.SubdivisionWidth"] = Input { Value = 1, },
            ["SurfaceCubeInputs.SubdivisionHeight"] = Input { Value = 1, },
            ["SurfaceCubeInputs.SubdivisionDepth"] = Input { Value = 1, },
            ["SurfaceCubeInputs.Visibility.Nest"] = Input { Value = 1, },
            ["SurfaceCubeInputs.BlendMode.Nest"] = Input { Value = 1, },
            ["SurfaceCubeInputs.BlendMode.SW.BlendMode"] = Input { Value = FuID { "Replace" }, },
            ["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 2, }
         },
         ViewInfo = OperatorInfo { Pos = { -417.266, -151.827 } },
      },
      Cat = GroupOperator {
         NameSet = true,
         Inputs = ordered() {
            Red = InstanceInput {
               SourceOp = "Background2",
               Source = "TopLeftRed",
            },
            Green = InstanceInput {
               SourceOp = "Background2",
               Source = "TopLeftGreen",
            },
            Blue = InstanceInput {
               SourceOp = "Background2",
               Source = "TopLeftBlue",
            },
            Alpha = InstanceInput {
               SourceOp = "Background2",
               Source = "TopLeftAlpha",
            },
            UseFrameFormatSettings = InstanceInput {
               SourceOp = "Background2",
               Source = "UseFrameFormatSettings",
            },
            Width = InstanceInput {
               SourceOp = "Background2",
               Source = "Width",
            },
            Height = InstanceInput {
               SourceOp = "Background2",
               Source = "Height",
            },
            Depth = InstanceInput {
               SourceOp = "Background2",
               Source = "Depth",
            }
         },
         Outputs = {
            Output1 = InstanceOutput {
               SourceOp = "Merge1",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo {
            Pos = { -670.094, -35.0151 },
            Flags = {
               AllowPan = false,
               ForceMask = true,
               ConnectedSnap = true,
               AutoSnap = true,
               RemoveRouters = true
            },
            Size = { 286.667, 147.803, 118, 24.2424 },
            Direction = "Horizontal",
            PipeStyle = "Direct",
            Scale = 1,
            Offset = { 0, 0 }
         },
         Tools = ordered() {
            ff = PolylineMask {
               DrawMode = "ModifyOnly",
               DrawMode2 = "InsertAndModify",
               Inputs = {
                  JoinStyle = Input { Value = 2, },
                  MiterLimit = Input { Value = 4, },
                  CapStyle = Input { Value = 0, },
                  MaskWidth = Input { Value = 320, },
                  MaskHeight = Input { Value = 240, },
                  PixelAspect = Input { Value = { 1, 1 }, },
                  Polyline = Input {
                     Value = Polyline {
                        Closed = true,
                        Points = {
                           { X = -0.180447284345048, Y = 0.298753993610224, LX = -0.00297124600638971, LY = -0.00512779552715653, RX = 0.0216932907348243, RY = 0.0309584664536741 },
                           { X = -0.104792332268371, Y = 0.382555910543131, LX = -0.0263418530351438, LY = -0.02685303514377, RX = -0.00150159744408945, RY = -0.0103674121405751 },
                           { X = -0.107571884984026, Y = 0.35129392971246, LX = 0.00123003194888183, LY = 0.0103993610223642, RX = -0.00113418530351439, RY = -0.0110223642172524 },
                           { X = -0.109041533546326, Y = 0.31814696485623, LX = 0.00119808306709268, LY = 0.0110063897763578, RX = 0.0242332268370608, RY = 0.0160223642172523 },
                           { X = -0.0361821086261981, Y = 0.366022364217252, LX = -0.0249201277955272, LY = -0.015, RX = -0.00503194888178915, RY = -0.0160702875399361 },
                           { X = -0.0504472843450479, Y = 0.317571884984026, LX = 0.00455271565495202, LY = 0.0161980830670927, RX = -0.00126198083067097, RY = -0.00624600638977635 },
                           { X = -0.0540894568690096, Y = 0.298753993610224, LX = -0.000623003194888172, LY = 0.00650159744408946, RX = 0.00177316293929713, RY = -0.0047444089456869 },
                           { X = -0.0443130990415336, Y = 0.287875399361022, LX = -0.00327476038338659, LY = 0.00359424920127799, RX = 0.0066773162939297, RY = -0.00725239616613416 },
                           { X = -0.0265814696485623, Y = 0.264233226837061, LX = -0.00434504792332274, LY = 0.00896166134185306, RX = 0.00485623003194879, RY = -0.00910543130990416 },
                           { X = -0.0187859424920128, Y = 0.234632587859425, LX = -0.000846645367412191, LY = 0.0102076677316294, RX = 0.000734824281150126, RY = -0.00923322683706068 },
                           { X = -0.0101277955271565, Y = 0.208482428115016, LX = -0.00498402555910543, LY = 0.00781150159744409, RX = 0.00338658146964849, RY = -0.00501597444089458 },
                           { X = 0.000255591054313165, Y = 0.1935303514377, LX = -0.00166134185303524, LY = 0.0060702875399361, RX = 0.00130990415335452, RY = -0.00630990415335464 },
                           { X = -0.00482428115015976, Y = 0.176134185303514, LX = 0.00316293929712458, LY = 0.00519169329073482, RX = -0.0072843450479233, RY = -0.0116773162939297 },
                           { X = -0.0335782747603834, Y = 0.146597444089457, LX = 0.0120447284345048, LY = 0.00693290734824281, RX = -0.0163418530351438, RY = -0.00907348242811501 },
                           { X = -0.0858945686900958, Y = 0.141837060702875, LX = 0.0169009584664536, LY = 0.00667731629392976, RX = -0.0100638977635783, RY = -0.00378594249201275 },
                           { X = -0.101916932907348, Y = 0.11667731629393, LX = -0.000686900958466408, LY = 0.0106869009584665, RX = 0.000654952076677373, RY = -0.0144728434504792 },
                           { X = -0.0857667731629393, Y = 0.0772843450479233, LX = -0.00928115015974446, LY = 0.0110063897763578, RX = 0.00870607028753989, RY = -0.0106389776357827 },
                           { X = -0.0542651757188499, Y = 0.0511661341853035, LX = -0.011517571884984, LY = 0.00736421725239622, RX = 0.00236421725239622, RY = -0.00142172523961659 },
                           { X = -0.0466932907348243, Y = 0.0478274760383387, LX = -0.00282747603833866, LY = 0.000319488817891345, RX = -0.00129392971246006, RY = -0.000878594249201337 },
                           { X = -0.0505431309904154, Y = 0.0452076677316294, LX = 0.00126198083067086, LY = 0.000894568690095854, RX = 0.00242811501597445, RY = -0.00177316293929713 },
                           { X = -0.0426837060702876, Y = 0.0440255591054313, LX = -0.0025718849840255, LY = 0.000942492012779517, RX = 0.0523801916932908, RY = -0.0258626198083067 },
                           { X = 0.095591054313099, Y = -0.0622843450479234, LX = -0.0364376996805112, LY = 0.0462300319488819, RX = 0.0428594249201278, RY = -0.0536581469648562 },
                           { X = 0.158562300319489, Y = -0.253993610223642, LX = 0.00314696485623001, LY = 0.0686900958466454, RX = 0, RY = -0.0091373801916933 },
                           { X = 0.157076677316294, Y = -0.281325878594249, LX = -0.00108626198083062, LY = 0.00915335463258793, RX = 0.0182587859424921, RY = 0.0139616613418531 },
                           { X = 0.198130990415335, Y = -0.227012779552716, LX = -0.00923322683706074, LY = -0.0209105431309904, RX = 0.0111341853035144, RY = 0.0257667731629392 },
                           { X = 0.21111821086262, Y = -0.144792332268371, LX = 0.00190095846645366, LY = -0.0278594249201278, RX = -0.00193290734824292, RY = 0.0313258785942492 },
                           { X = 0.188162939297125, Y = -0.0542012779552715, LX = 0.0118051118210862, LY = -0.0288977635782748, RX = -0.0145367412140576, RY = 0.0361022364217253 },
                           { X = 0.149664536741214, Y = 0.0560862619808307, LX = 0.00731629392971245, LY = -0.0384664536741215, RX = -0.00487220447284353, RY = 0.0252236421725239 },
                           { X = 0.153019169329073, Y = 0.132492012779553, LX = -0.00857827476038331, LY = -0.0244728434504792, RX = 0.00744408945686903, RY = 0.0217571884984025 },
                           { X = 0.196741214057508, Y = 0.183865814696486, LX = -0.0208626198083067, LY = -0.0101597444089456, RX = 0.0194249201277955, RY = 0.00995207667731635 },
                           { X = 0.260111821086262, Y = 0.18779552715655, LX = -0.0205750798722045, LY = 0.00677316293929714, RX = 0.01758785942492, RY = -0.00584664536741208 },
                           { X = 0.301102236421725, Y = 0.152476038338658, LX = -0.00838658146964855, LY = 0.0165015974440895, RX = 0.00675718849840268, RY = -0.0139776357827476 },
                           { X = 0.307635782747604, Y = 0.107012779552716, LX = 0.00325878594249207, LY = 0.0153354632587859, RX = -0.00423322683706062, RY = -0.0211341853035144 },
                           { X = 0.268498402555911, Y = 0.0587220447284345, LX = 0.0198242811501598, LY = 0.00846645367412141, RX = -0.0122843450479233, RY = -0.00519169329073482 },
                           { X = 0.229872204472843, Y = 0.0577316293929712, LX = 0.0126357827476039, LY = -0.00309904153354629, RX = 0.0170766773162939, RY = 0.00396166134185311 },
                           { X = 0.272060702875399, Y = 0.0869808306709265, LX = -0.00904153354632586, LY = -0.0152715654952076, RX = 0.00789137380191696, RY = 0.0129552715654953 },
                           { X = 0.272827476038339, Y = 0.130143769968051, LX = 0.00645367412140563, LY = -0.0134025559105431, RX = -0.00908945686900964, RY = 0.0186102236421725 },
                           { X = 0.220159744408946, Y = 0.149856230031949, LX = 0.0190734824281149, LY = 0.00781150159744404, RX = -0.0142651757188499, RY = -0.00546325878594256 },
                           { X = 0.191565495207668, Y = 0.116725239616613, LX = 0.00394568690095842, LY = 0.0145367412140575, RX = -0.00600638977635781, RY = -0.0215015974440894 },
                           { X = 0.194392971246006, Y = 0.0512140575079872, LX = -0.00600638977635781, LY = 0.0211661341853035, RX = 0.00904153354632586, RY = -0.0323482428115016 },
                           { X = 0.230846645367412, Y = -0.0424281150159744, LX = -0.0122523961661342, LY = 0.0311661341853036, RX = 0.0135303514376998, RY = -0.0338977635782747 },
                           { X = 0.256501597444089, Y = -0.148626198083067, LX = -0.00140575079872207, LY = 0.0366932907348243, RX = 0.00118210862619816, RY = -0.010591054313099 },
                           { X = 0.256389776357827, Y = -0.180479233226837, LX = 0.000942492012779517, LY = 0.0106230031948882, RX = -0.00389776357827476, RY = -0.0786261980830671 },
                           { X = 0.125958466453674, Y = -0.361006389776358, LX = 0.0729552715654951, LY = 0.0289137380191693, RX = -0.0504952076677316, RY = -0.0202715654952076 },
                           { X = -0.0336102236421726, Y = -0.382140575079872, LX = 0.0536900958466454, LY = -0.0007827476038339, RX = -0.022332268370607, RY = 3.19488817891456e-05 },
                           { X = -0.100607028753994, Y = -0.38055910543131, LX = 0.0223642172523961, LY = 0.00035143769968049, RX = -0.0124920127795528, RY = -3.19488817891456e-05 },
                           { X = -0.137507987220447, Y = -0.373865814696485, LX = 0.0112779552715655, LY = -0.00589456869009597, RX = -0.00418530351437696, RY = 0.00222044728434501 },
                           { X = -0.145990415335463, Y = -0.362747603833866, LX = 7.98722044728084e-05, LY = -0.00507987220447281, RX = -0.000734824281150182, RY = 0.00765175718849853 },
                           { X = -0.13870607028754, Y = -0.342172523961661, LX = -0.00316293929712458, LY = -0.00650159744408929, RX = 0.000654952076677318, RY = -0.00119808306709257 },
                           { X = -0.136757188498403, Y = -0.345830670926518, LX = -0.000638977635782745, LY = 0.00123003194888172, RX = -0.000292864749733779, RY = 0.00181576144834927 },
                           { Linear = true, X = -0.137635782747604, Y = -0.34038338658147, LX = 0.000292864749733779, LY = -0.00181576144834927, RX = 0.00132587859424921, RY = -0.000820021299254514 },
                           { Linear = true, X = -0.133658146964856, Y = -0.342843450479233, LX = -0.00132587859424921, LY = 0.000820021299254403, RX = -0.000990415335463291, RY = 0.000910543130990482 },
                           { X = -0.136565495207668, Y = -0.340111821086262, LX = 0.000958466453674145, LY = -0.000910543130990482, RX = 0.0042811501597444, RY = 0.00319488817891378 },
                           { X = -0.122747603833866, Y = -0.33202875399361, LX = -0.00523961661341854, LY = -0.00146964856230025, RX = 0.00985623003194891, RY = 0.00333865814696488 },
                           { X = -0.0922044728434505, Y = -0.329840255591054, LX = -0.0101757188498403, LY = -0.000654952076677207, RX = -0.0215814696485623, RY = 0.0224600638977637 },
                           { X = -0.133466453674121, Y = -0.247779552715655, LX = 0.00541533546325884, LY = -0.0306230031948881, RX = -0.00198083067092647, RY = 0.00851437699680524 },
                           { X = -0.137428115015974, Y = -0.221916932907348, LX = 0.00196485623003195, LY = -0.00848242811501598, RX = -0.00476038338658147, RY = -0.0326198083067092 },
                           { X = -0.154424920127796, Y = -0.319392971246006, LX = 0.00777955271565489, LY = 0.0320926517571886, RX = -0.00402555910543134, RY = -0.014552715654952 },
                           { X = -0.169408945686901, Y = -0.362188498402556, LX = 0.00698083067092653, LY = 0.0134664536741216, RX = -0.00578274760383379, RY = -0.00817891373801916 },
                           { X = -0.194025559105431, Y = -0.378067092651757, LX = 0.00912140575079873, LY = 0.00337060702875402, RX = -0.0160862619808306, RY = -0.00514376996805122 },
                           { X = -0.243514376996805, Y = -0.375575079872205, LX = 0.0155750798722045, LY = -0.0062939297124599, RX = -0.00512779552715659, RY = 0.00215654952076683 },
                           { X = -0.255862619808307, Y = -0.364552715654952, LX = 0.00153354632587854, LY = -0.00579872204472842, RX = -0.00175718849840256, RY = 0.0126517571884985 },
                           { X = -0.23723642172524, Y = -0.33426517571885, LX = -0.0126198083067093, LY = -0.00353035143769975, RX = 0.00488817891373805, RY = 0.00164536741214061 },
                           { X = -0.222140575079872, Y = -0.333370607028754, LX = -0.005, LY = -0.000559105431309659, RX = 0.00381789137380195, RY = 0.00116613418530365 },
                           { X = -0.219121405750799, Y = -0.32444089456869, LX = -0.000239616613418536, LY = -0.00298722044728439, RX = 0.000766773162939272, RY = 0.0267731629392972 },
                           { X = -0.224792332268371, Y = -0.244520766773163, LX = 0.00380191693290738, LY = -0.0264536741214058, RX = -0.00297124600638976, RY = 0.0192012779552716 },
                           { X = -0.237460063897764, Y = -0.187683706070288, LX = 0.0057507987220447, LY = -0.0185623003194888, RX = -0.00720447284345049, RY = 0.0229712460063898 },
                           { X = -0.267843450479233, Y = -0.122492012779553, LX = 0.0120127795527156, LY = -0.0207667731629393, RX = -0.00881789137380196, RY = 0.0150798722044728 },
                           { X = -0.291821086261981, Y = -0.0759105431309903, LX = 0.00675718849840262, LY = -0.0161182108626199, RX = -0.0133386581469648, RY = 0.031405750798722 },
                           { X = -0.308690095846645, Y = 0.0240095846645367, LX = -0.00164536741214055, LY = -0.0339936102236421, RX = 0.0056070287539936, RY = 0.081038338658147 },
                           { X = -0.226389776357827, Y = 0.249984025559105, LX = -0.0476198083067093, LY = -0.0657827476038339, RX = 0.00993610223642172, RY = 0.0133865814696486 },
                           { X = -0.193466453674121, Y = 0.287683706070288, LX = -0.0133865814696486, LY = -0.0102396166134185, RX = 0.00444089456869012, RY = 0.00356230031948879 }
                        }
                     },
                  },
                  Polyline2 = Input {
                     Value = Polyline {
                     },
                     Disabled = true,
                  }
               },
               ViewInfo = OperatorInfo { Pos = { -56.3333, 13.7121 } },
            },
            Background1 = Background {
               Inputs = {
                  GlobalOut = Input { Value = 120, },
                  Width = InstanceInput {
                     SourceOp = "Background2",
                     Source = "Width",
                  },
                  Height = InstanceInput {
                     SourceOp = "Background2",
                     Source = "Height",
                  },
                  UseFrameFormatSettings = InstanceInput {
                     SourceOp = "Background2",
                     Source = "UseFrameFormatSettings",
                  },
                  Depth = InstanceInput {
                     SourceOp = "Background2",
                     Source = "Depth",
                  },
                  EffectMask = Input {
                     SourceOp = "ff",
                     Source = "Mask",
                  }
               },
               ViewInfo = OperatorInfo { Pos = { -40.3333, 81.2576 } },
            },
            Background2 = Background {
               CtrlWShown = false,
               Inputs = {
                  GlobalOut = Input { Value = 120, },
                  Width = Input { Value = 1670, },
                  Height = Input { Value = 1670, },
                  TopLeftAlpha = Input { Value = 0, }
               },
               ViewInfo = OperatorInfo { Pos = { 55, 8.25758 } },
            },
            Merge1 = Merge {
               HoldOutput = true,
               CtrlWShown = false,
               Inputs = {
                  Background = Input {
                     SourceOp = "Background2",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "Background1",
                     Source = "Output",
                  },
                  Width = InstanceInput {
                     SourceOp = "Background2",
                     Source = "Width",
                  },
                  Height = InstanceInput {
                     SourceOp = "Background2",
                     Source = "Height",
                  },
                  UseFrameFormatSettings = InstanceInput {
                     SourceOp = "Background2",
                     Source = "UseFrameFormatSettings",
                  }
               },
               ViewInfo = OperatorInfo { Pos = { 55, 41.2576 } },
            }
         },
         UserControls = ordered() {
            Color = ControlPage {
               CTID_DIB_ID = "Icons.Tools.Tabs.Color"
            },
            BackgroundNest = BeginNest {
               LINKS_Name = "Background",
               ICS_ControlPage = "Color",
            },
            Red = InstanceInput {
               SourceOp = "Background2",
               INP_Default = 0,
               ICS_ControlPage = "Color",
               Source = "TopLeftRed",
            },
            Green = InstanceInput {
               SourceOp = "Background2",
               INP_Default = 0,
               ICS_ControlPage = "Color",
               Source = "TopLeftGreen",
            },
            Blue = InstanceInput {
               SourceOp = "Background2",
               INP_Default = 0,
               ICS_ControlPage = "Color",
               Source = "TopLeftBlue",
            },
            Alpha = InstanceInput {
               SourceOp = "Background2",
               INP_Default = 0,
               ICS_ControlPage = "Color",
               Source = "TopLeftAlpha",
            },
            EndBackgroundNest = EndNest {
            },
            Image = ControlPage {
               CTID_DIB_ID = "Icons.Tools.Tabs.Image"
            },
            ImageNest = BeginNest {
               LINKS_Name = "Image",
               ICS_ControlPage = "Image",
            },
            UseFrameFormatSettings = InstanceInput {
               SourceOp = "Background2",
               ICS_ControlPage = "Image",
               Source = "UseFrameFormatSettings",
            },
            Width = InstanceInput {
               SourceOp = "Background2",
               ICS_ControlPage = "Image",
               Source = "Width",
               INP_Default = 835,
            },
            Height = InstanceInput {
               SourceOp = "Background2",
               ICS_ControlPage = "Image",
               Source = "Height",
               INP_Default = 835,
            },
            Depth = InstanceInput {
               SourceOp = "Background2",
               ICS_ControlPage = "Image",
               Source = "Depth",
            },
            EndImageNest = EndNest {
            }
         }
      },
      ImagePlane3D3 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.382, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -0.741737004576531, },
            ["SurfacePlaneInputs.SubdivisionWidth"] = Input { Value = 1, },
            ["SurfacePlaneInputs.Visibility.Nest"] = Input { Value = 1, },
            ["SurfacePlaneInputs.Lighting.Nest"] = Input { Value = 1, },
            ["SurfacePlaneInputs.BlendMode.Nest"] = Input { Value = 1, },
            ["SurfacePlaneInputs.BlendMode.SW.BlendMode"] = Input { Value = FuID { "Normal" }, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 5, },
            MaterialInput = Input {
               SourceOp = "Merge1",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 4, }
         },
         ViewInfo = OperatorInfo { Pos = { -528.104, -35.0151 } },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            PassThroughLights = Input { Value = 1, },
            SceneInput1 = Input {
               SourceOp = "ImagePlane3D3",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Merge3D3",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "Shape3D2",
               Source = "Output",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 69.3333, -35.0151 } },
      },
      Camera3D1 = Camera3D {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input {
               SourceOp = "Camera3D1XOffset",
               Source = "Value",
            },
            ["Transform3DOp.Translate.Y"] = Input {
               SourceOp = "Camera3D1YOffset",
               Source = "Value",
            },
            ["Transform3DOp.Translate.Z"] = Input { Value = 5, },
            ["Transform3DOp.UseTarget"] = Input { Value = 1, },
            ["Transform3DOp.Target.Y"] = Input { Value = 0.39, },
            AoV = Input { Value = 19.2642683071402, },
            ["Stereo.Mode"] = Input { Value = FuID { "OffAxis" }, },
            FilmBack = Input { Value = 1, },
            FilmGate = Input { Value = FuID { "BMD_URSA_4K_16x9" }, },
            ApertureW = Input { Value = 0.831496062992126, },
            ApertureH = Input { Value = 0.467716535433071, },
            ControlVis = Input { Value = 1, },
            PlaneOfFocusVis = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, }
         },
         ViewInfo = OperatorInfo { Pos = { 91.3333, -209.367 } },
      },
      Camera3D1XOffset = BezierSpline {
         SplineColor = { Red = 250, Green = 132, Blue = 49 },
         NameSet = true,
         KeyFrames = {
            [0] = { -0.5, RH = { 40, -0.5 } },
            [120] = { 1, LH = { 80, 1 } }
         }
      },
      Camera3D1YOffset = BezierSpline {
         SplineColor = { Red = 252, Green = 57, Blue = 47 },
         CtrlWZoom = false,
         NameSet = true,
         KeyFrames = {
            [0] = { 0.6, RH = { 40, 0.6 } },
            [120] = { 1, LH = { 80, 1 } }
         }
      },
      Merge3D3 = Merge3D {
         Inputs = {
            PassThroughLights = Input { Value = 1, },
            SceneInput1 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "SpotLight1_1",
               Source = "Output",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 91.3333, -134.799 } },
      },
      Locator3D1 = Locator3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            Target = Input {
               SourceOp = "SpotLight1_1",
               Source = "Output",
            },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            UseFrameFormatSettings = Input { Value = 1, }
         },
         ViewInfo = OperatorInfo { Pos = { 213.789, -35.0151 } },
      },
      Override3D1 = Override3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "ImagePlane3D3",
               Source = "Output",
            },
            ["Visibility.DoIsUnseenByCameras"] = Input { Value = 1, }
         },
         ViewInfo = OperatorInfo { Pos = { -119.448, 13.8395 } },
      },
      SpotLight1_1 = LightSpot {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -2.5, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 3.5, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -10, },
            ["Transform3DOp.UseTarget"] = Input { Value = 1, },
            ["ShadowLightInputs3D.Nest"] = Input { Value = 1, },
            ["ShadowLightInputs3D.ShadowsEnabled"] = Input { Value = 1, },
            ["ShadowLightInputs3D.ShadowMapSize"] = Input { Value = 2048, },
            ["ShadowLightInputs3D.MultiplicativeBias"] = Input { Value = 2.36, },
            ["ShadowLightInputs3D.AdditiveBias"] = Input { Value = 3.78, },
            ["ShadowLightInputs3D.SoftnessType"] = Input { Value = FuID { "Variable" }, }
         },
         ViewInfo = OperatorInfo { Pos = { 265.644, -134.799 } },
      },
      Renderer3D1_1 = Renderer3D {
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            ["RendererSoftware.ShadowsEnabled"] = Input {
               Value = Number {
                  Value = 1
               },
            },
            ["RendererSoftware.Channels.Nest"] = Input {
               Value = Number {
                  Value = 1
               },
            },
            ["RendererSoftware.LightingEnabled"] = Input {
               Value = Number {
                  Value = 1
               },
            },
            GlobalOut = Input { Value = 120, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            UseFrameFormatSettings = Input { Value = 1, },
            Depth = Input { Value = 1, },
            AutoCropDataWindow = Input { Value = 1, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Locator3D1",
               Source = "Output",
            },
            OutputType = Input { Disabled = true, },
            RendererType = Input { Value = FuID { "RendererOpenGL" }, },
            ["RendererOpenGL.Channels.Nest"] = Input { Value = 1, },
            ["RendererOpenGL.AntiAliasing.Channels.RGBA.HighQuality.Enable"] = Input { Value = 1, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.Rate"] = 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.Rate"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
            ["RendererOpenGL.AccumulationEffects"] = Input { Value = 1, },
            ["RendererOpenGL.AccumQuality"] = Input { Value = 32, },
            ["RendererOpenGL.DoFBlur"] = Input { Value = 0.1, },
            ["RendererOpenGL.LightingEnabled"] = Input { Value = 1, },
            ["RendererOpenGL.MaximumTextureDepth"] = Input { Value = 3, }
         },
         ViewInfo = OperatorInfo { Pos = { 405.681, -34.1581 } },
         SubInputsData = {
            RendererOpenGL = {
               Version = 1
            }
         }
      },
      Renderer3D1_2 = Renderer3D {
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            GlobalOut = Input { Value = 120, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            UseFrameFormatSettings = Input { Value = 1, },
            Depth = Input { Value = 1, },
            AutoCropDataWindow = Input { Value = 1, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Merge3D4",
               Source = "Output",
            },
            CameraSelector = Input { Value = FuID { "Camera3D1" }, },
            OutputType = Input { Disabled = true, },
            ["RendererOpenGL.Channels.Nest"] = Input { Value = 1, },
            ["RendererOpenGL.AntiAliasing.Channels.RGBA.HighQuality.Enable"] = Input { Value = 1, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.Rate"] = 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.Rate"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
            ["RendererOpenGL.AccumulationEffects"] = Input { Value = 1, },
            ["RendererOpenGL.AccumQuality"] = Input { Value = 32, },
            ["RendererOpenGL.DoFBlur"] = Input { Value = 0.1, },
            ["RendererOpenGL.LightingEnabled"] = Input { Value = 1, },
            ["RendererOpenGL.ShadowsEnabled"] = Input { Value = 1, },
            ["RendererOpenGL.MaximumTextureDepth"] = Input { Value = 3, },
            ["RendererSoftware.Channels.Nest"] = Input { Value = 1, },
            ["RendererSoftware.LightingEnabled"] = Input { Value = 1, },
            ["RendererSoftware.ShadowsEnabled"] = Input { Value = 1, }
         },
         ViewInfo = OperatorInfo { Pos = { 311.219, 63.5291 } },
         SubInputsData = {
            RendererOpenGL = {
               Version = 1
            }
         }
      },
      Merge3D4 = Merge3D {
         Inputs = {
            PassThroughLights = Input { Value = 1, },
            SceneInput1 = Input {
               SourceOp = "Merge3D2",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Merge3D3",
               Source = "Output",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 91.3333, 63.5291 } },
      },
      ReplaceMaterial3D1 = ReplaceMaterial3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Shape3D2",
               Source = "Output",
            },
            ["ReplaceMode.Nest"] = Input { Value = 1, },
            ["MtlStdInputs.ReceivesLighting"] = Input { Value = 0, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, }
         },
         ViewInfo = OperatorInfo { Pos = { -359.439, 63.5291 } },
      },
      Merge3D2 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "ReplaceMaterial3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Override3D1",
               Source = "Output",
            }
         },
         ViewInfo = OperatorInfo { Pos = { -119.448, 63.5291 } },
      },
      Merge2 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Renderer3D1_1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Renderer3D1_2",
               Source = "Output",
            },
            Center = Input { Value = { 0.5, 0.501 }, },
            ApplyMode = Input { Value = FuID { "Multiply" }, },
            PerformDepthMerge = Input { Value = 0, },
            EffectMask = Input {
               SourceOp = "Renderer3D1_1",
               Source = "Output",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 642.779, -34.1581 } },
      },
      Merge3 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background4",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Merge2",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, }
         },
         ViewInfo = OperatorInfo { Pos = { 837.62, -34.1581 } },
      },
      Background4 = Background {
         Inputs = {
            GlobalOut = Input { Value = 120, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            Depth = Input { Value = 3, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Type = Input { Value = FuID { "Gradient" }, },
            TopLeftRed = Input { Value = 0.333333333333333, },
            GradientType = Input { Value = FuID { "Radial" }, },
            Start = Input {
               SourceOp = "Locator3D1",
               Source = "PositionLeft",
            },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0.666666666666667, 0.666666666666667, 0.666666666666667, 1 },
                     [1] = { 0, 0, 0, 1 }
                  }
               },
            }
         },
         ViewInfo = OperatorInfo { Pos = { 837.62, 17.5521 } },
      }
   }
}

Re: ImagePlain3D to cast shadow of a PNG+Alpha

PostPosted: Wed Apr 16, 2025 9:50 pm
by AndrewTheGreat
Thanks a lot, KrunoSmithy, you've been much of help, I'm gonna try that out

Re: ImagePlain3D to cast shadow of a PNG+Alpha

PostPosted: Fri Apr 18, 2025 12:37 am
by birdseye
This VFXstudy tutorial shows you how to get what you want.