Page 2 of 3

Re: Kick Ass ShaderZ is officially released on Reactor!

Posted: Wed Dec 18, 2019 4:44 am
by AndrewHazelden
Something I had a lot of fun preparing for the KickAss ShaderZ launch was a "Content Browser" window which bypasses the magic wand iconography based "Effects" template browsing view UI you'd see in Fusion v16 by default.


Image


I have big hopes for improving what the Content Browser can do as more things are added to KickAss collection over time. This window is accessed using the "KickAss ShaderZ > Content Browser..." menu item. :)

KAS Content Browser Menu Item.png

Re: Kick Ass ShaderZ is officially released on Reactor!

Posted: Wed Dec 18, 2019 10:07 am
by French_Fry
Great job! Looking forward to testing it out! :buttrock:

Re: Kick Ass ShaderZ is officially released on Reactor!

Posted: Thu Dec 19, 2019 12:00 pm
by MelbFilm
Very cool! Nice work.

Re: Kick Ass ShaderZ is officially released on Reactor!

Posted: Fri Dec 20, 2019 4:11 am
by Marcelo Ballesteros
I think this is great,Thank you! But i can't find in the Reactor, who can help me? Thank you!

Re: Kick Ass ShaderZ is officially released on Reactor!

Posted: Fri Dec 20, 2019 6:12 am
by AndrewHazelden
Hi @Marcelo Ballesteros.

If you don't see a "Shaders" category on the left side of your Reactor window, then you might have to refresh the list of atom packages in Reactor.

The atom packages you have listed in your "Reactor:/Atoms/Reactor/" PathMap folder are likely out of sync with the latest revisions hosted in Reactor GitLab repository, and possibly your "Config:/Reactor.fu" file is not from the latest Reactor v3.14 branch, either. There are several ways to solve this issue and get KickAss ShaderZ installed in only a few clicks. :)

Note: If I had to guess, the root problem is related to the "Reactor.cfg" file based PrevCommitID tag drifting over time.



Step 1. Select the "Reactor > Tools > Reinstall Reactor" menu item.

1 Reinstall Reactor.png

Step 2. Click the "Install and Launch" button in the "Install Reactor" dialog.

2 Install and Launch.png

Step 3. It takes about 30 seconds after you click the "Install Reactor" button for the installation to complete. The Reactor window will re-open and you should now see the "Shaders" Category on the left side of the Reactor window.

3 KickAss Shaders in Reactor.png

Step 4. After you install KickAss ShaderZ using Reactor, you need to quit and then re-launch Fusion once for the custom "KickAss ShaderZ" menu to appear and for the supporting .fuses and .fu files to be loaded.

Good Luck and I hope this solves your issue!

Re: Kick Ass ShaderZ is officially released on Reactor!

Posted: Fri Dec 20, 2019 8:12 am
by Marcelo Ballesteros
@AndrewHazelden.Thank you for your help . Now i found it and installed the package.Thanks!

Re: Kick Ass ShaderZ is officially released on Reactor!

Posted: Sun Dec 22, 2019 8:21 am
by Shem Namo
Would This be useful to add to the collection?
  1. {
  2.     Tools = ordered() {
  3.         HammeredCopperShader = GroupOperator {
  4.             NameSet = true,
  5.             Outputs = {
  6.                 Output1 = InstanceOutput {
  7.                     SourceOp = "Reflect1",
  8.                     Source = "MaterialOutput",
  9.                 }
  10.             },
  11.             ViewInfo = GroupInfo {
  12.                 Pos = { 165, 313.5 },
  13.                 Flags = {
  14.                     AllowPan = false,
  15.                     GridSnap = true,
  16.                     RemoveRouters = true
  17.                 },
  18.                 Size = { 566, 196.3, 283, 22 },
  19.                 Direction = "Horizontal",
  20.                 PipeStyle = "Orthogonal",
  21.                 Scale = 1,
  22.                 Offset = { -220, -335.8 }
  23.             },
  24.             Tools = ordered() {
  25.                 AgedSteelPlateLoader = Loader {
  26.                     Clips = {
  27.                         Clip {
  28.                             ID = "Clip1",
  29.                             Filename = "Macros:/KickAss ShaderZ/Assets/kas_AgedSteelPlate.jpg",
  30.                             FormatID = "JpegFormat",
  31.                             StartFrame = -1,
  32.                             LengthSetManually = true,
  33.                             TrimIn = 0,
  34.                             TrimOut = 0,
  35.                             ExtendFirst = 0,
  36.                             ExtendLast = 0,
  37.                             Loop = 0,
  38.                             AspectMode = 0,
  39.                             Depth = 0,
  40.                             TimeCode = 0,
  41.                             GlobalStart = 0,
  42.                             GlobalEnd = 0
  43.                         }
  44.                     },
  45.                     NameSet = true,
  46.                     Inputs = {
  47.                         ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
  48.                     },
  49.                     ViewInfo = OperatorInfo { Pos = { 330, 346.5 } },
  50.                 },
  51.                 Reflect1 = MtlReflect {
  52.                     Inputs = {
  53.                         BackgroundMaterial = Input {
  54.                             SourceOp = "Blinn1",
  55.                             Source = "MaterialOutput",
  56.                         },
  57.                         ["Reflection.GlancingStrength"] = Input { Value = 1, },
  58.                         ["Reflection.FaceOnStrength"] = Input { Value = 1, },
  59.                         ["Reflection.Intensity.Material"] = Input {
  60.                             SourceOp = "Transform1",
  61.                             Source = "Output",
  62.                         },
  63.                         ["Refraction.RefractiveIndex.RGB"] = Input { Value = 2, },
  64.                         ["Refraction.Tint.Material"] = Input {
  65.                             SourceOp = "Transform1",
  66.                             Source = "Output",
  67.                         },
  68.                         ["Bumpmap.Material"] = Input {
  69.                             SourceOp = "BumpMap4_2",
  70.                             Source = "MaterialOutput",
  71.                         },
  72.                         MaterialID = Input { Value = 4, },
  73.                     },
  74.                     ViewInfo = OperatorInfo { Pos = { 440, 412.5 } },
  75.                 },
  76.                 Blinn1 = MtlBlinn {
  77.                     Inputs = {
  78.                         ["Diffuse.Color.Material"] = Input {
  79.                             SourceOp = "ChannelBooleans1",
  80.                             Source = "Output",
  81.                         },
  82.                         ["Bumpmap.Material"] = Input {
  83.                             SourceOp = "BumpMap4_2",
  84.                             Source = "MaterialOutput",
  85.                         },
  86.                         MaterialID = Input { Value = 1, },
  87.                     },
  88.                     ViewInfo = OperatorInfo { Pos = { 330, 478.5 } },
  89.                 },
  90.                 ChannelBooleans1 = ChannelBoolean {
  91.                     Inputs = {
  92.                         Operation = Input { Value = 3, },
  93.                         Background = Input {
  94.                             SourceOp = "Shader1_1_2_1_3_1_2_3",
  95.                             Source = "Output",
  96.                         },
  97.                         Foreground = Input {
  98.                             SourceOp = "Transform3",
  99.                             Source = "Output",
  100.                         },
  101.                     },
  102.                     ViewInfo = OperatorInfo { Pos = { 330, 445.5 } },
  103.                 },
  104.                 Transform3 = Transform {
  105.                     Inputs = {
  106.                         Center = Input { Value = { 0.399441340782123, 0.5 }, },
  107.                         Size = Input { Value = 1.00573721366506, },
  108.                         Input = Input {
  109.                             SourceOp = "Scale1",
  110.                             Source = "Output",
  111.                         },
  112.                     },
  113.                     ViewInfo = OperatorInfo { Pos = { 330, 412.5 } },
  114.                 },
  115.                 Scale1 = Scale {
  116.                     Inputs = {
  117.                         XSize = Input { Value = 4.145, },
  118.                         PixelAspect = Input { Value = { 1, 1 }, },
  119.                         Input = Input {
  120.                             SourceOp = "AgedSteelPlateLoader",
  121.                             Source = "Output",
  122.                         },
  123.                     },
  124.                     ViewInfo = OperatorInfo { Pos = { 330, 379.5 } },
  125.                 },
  126.                 BumpMap4_2 = BumpMap {
  127.                     Inputs = {
  128.                         Input = Input {
  129.                             SourceOp = "Blur5",
  130.                             Source = "Output",
  131.                         },
  132.                         SourceChannel = Input { Value = FuID { "Alpha" }, },
  133.                         HeightScale = Input { Value = 12, },
  134.                         WrapMode = Input { Value = FuID { "Wrap" }, },
  135.                         MaterialID = Input { Value = 19, },
  136.                     },
  137.                     ViewInfo = OperatorInfo { Pos = { 0, 478.5 } },
  138.                 },
  139.                 Shader1_1_2_1_3_1_2_3 = Shader {
  140.                     Inputs = {
  141.                         Ambient = Input { Value = 0.342, },
  142.                         Specular = Input { Value = 2, },
  143.                         ReflectionType = Input { Value = 2, },
  144.                         EquatorAngle = Input { Value = 247, },
  145.                         PolarHeight = Input { Value = -63.85, },
  146.                         DiffuseCurve = Input {
  147.                             SourceOp = "Shader1_1_2_1_3_1_2_3DiffuseCurve",
  148.                             Source = "Value",
  149.                         },
  150.                         SpecularCurve = Input {
  151.                             SourceOp = "Shader1_1_2_1_3_1_2_3SpecularCurve",
  152.                             Source = "Value",
  153.                         },
  154.                         Input = Input {
  155.                             SourceOp = "ChannelBooleans1_2_1_3_1_2_3",
  156.                             Source = "Output",
  157.                         },
  158.                         EnvironmentReflectionMap = Input {
  159.                             SourceOp = "Transform1",
  160.                             Source = "Output",
  161.                         },
  162.                     },
  163.                     ViewInfo = OperatorInfo { Pos = { 220, 445.5 } },
  164.                 },
  165.                 Transform1 = Transform {
  166.                     Inputs = {
  167.                         Size = Input { Value = 0.231, },
  168.                         Edges = Input { Value = 3, },
  169.                         Input = Input {
  170.                             SourceOp = "ColorCurves1",
  171.                             Source = "Output",
  172.                         },
  173.                     },
  174.                     ViewInfo = OperatorInfo { Pos = { 220, 412.5 } },
  175.                 },
  176.                 ColorCurves1 = ColorCurves {
  177.                     PickColor = true,
  178.                     Inputs = {
  179.                         EditRed = Input { Value = 0, },
  180.                         EditAlpha = Input { Value = 0, },
  181.                         Red = Input {
  182.                             SourceOp = "ColorCurves1Red",
  183.                             Source = "Value",
  184.                         },
  185.                         Green = Input {
  186.                             SourceOp = "ColorCurves1Green",
  187.                             Source = "Value",
  188.                         },
  189.                         Blue = Input {
  190.                             SourceOp = "ColorCurves1Blue",
  191.                             Source = "Value",
  192.                         },
  193.                         Alpha = Input {
  194.                             SourceOp = "ColorCurves1Alpha",
  195.                             Source = "Value",
  196.                         },
  197.                         NumberOfSamplesOnMatchCurve = Input { Value = 64, },
  198.                         IgnoreTransparent = Input { Value = 1, },
  199.                         Input = Input {
  200.                             SourceOp = "Displace1",
  201.                             Source = "Output",
  202.                         },
  203.                     },
  204.                     ViewInfo = OperatorInfo { Pos = { 220, 379.5 } },
  205.                     Tools = {
  206.                         ColorCurves1Red = LUTBezier {
  207.                             KeyColorSplines = {
  208.                                 [0] = {
  209.                                     [0] = { 0, RH = { 0.136647091005454, 0.23847044844506 }, Flags = { Linear = true } },
  210.                                     [0.409941273016362] = { 0.71541134533518, LH = { 0.273307849528474, 0.578777921847292 }, RH = { 0.564335098149315, 0.869805170468134 } },
  211.                                     [1] = { 1, LH = { 0.803313757672121, 0.905137115111727 } }
  212.                                 }
  213.                             },
  214.                             SplineColor = { Red = 255, Green = 52, Blue = 52 },
  215.                             NameSet = true,
  216.                         },
  217.                         ColorCurves1Green = LUTBezier {
  218.                             KeyColorSplines = {
  219.                                 [0] = {
  220.                                     [0] = { 0, RH = { 0.141573053659852, 0.219469653136695 }, Flags = { Linear = true } },
  221.                                     [0.424719160979556] = { 0.658408959410084, LH = { 0.283160267534777, 0.516850065965305 }, RH = { 0.582400792111699, 0.816090590542227 } },
  222.                                     [1] = { 1, LH = { 0.808239720326519, 0.886136319803361 } }
  223.                                 }
  224.                             },
  225.                             SplineColor = { Red = 0, Green = 255, Blue = 0 },
  226.                             NameSet = true,
  227.                         },
  228.                         ColorCurves1Blue = LUTBezier {
  229.                             KeyColorSplines = {
  230.                                 [0] = {
  231.                                     [0] = { 0, RH = { 0.219514539629596, 0.127380707074161 }, Flags = { Linear = true } },
  232.                                     [0.658543618888789] = { 0.382142121222482, LH = { 0.479100601269451, 0.202699103603144 }, RH = { 0.772351028373873, 0.495949530707566 } },
  233.                                     [1] = { 1, LH = { 0.886181206296263, 0.794047373740827 } }
  234.                                 }
  235.                             },
  236.                             SplineColor = { Red = 68, Green = 68, Blue = 255 },
  237.                             NameSet = true,
  238.                         },
  239.                         ColorCurves1Alpha = LUTBezier {
  240.                             KeyColorSplines = {
  241.                                 [0] = {
  242.                                     [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
  243.                                     [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
  244.                                 }
  245.                             },
  246.                             SplineColor = { Red = 204, Green = 204, Blue = 204 },
  247.                             NameSet = true,
  248.                         }
  249.                     },
  250.                 },
  251.                 Reflectionmap = GroupOperator {
  252.                     NameSet = true,
  253.                     Outputs = {
  254.                         Output1 = InstanceOutput {
  255.                             SourceOp = "Displace1",
  256.                             Source = "Output",
  257.                         }
  258.                     },
  259.                     ViewInfo = GroupInfo {
  260.                         Pos = { 220, 346.5 },
  261.                         Flags = {
  262.                             AllowPan = false,
  263.                             GridSnap = true,
  264.                             RemoveRouters = true
  265.                         },
  266.                         Size = { 566, 293.856, 283, 22 },
  267.                         Direction = "Horizontal",
  268.                         PipeStyle = "Orthogonal",
  269.                         Scale = 1,
  270.                         Offset = { -495, -40.2438 }
  271.                     },
  272.                     Tools = ordered() {
  273.                         Displace1 = Displace {
  274.                             Inputs = {
  275.                                 Center = Input { Value = { 0.679941002949852, 0.327225130890052 }, },
  276.                                 Offset = Input { Value = 0.3718, },
  277.                                 RefractionStrength = Input { Value = 2, },
  278.                                 Spread = Input { Value = 3, },
  279.                                 Input = Input {
  280.                                     SourceOp = "Blur1",
  281.                                     Source = "Output",
  282.                                 },
  283.                                 Foreground = Input {
  284.                                     SourceOp = "Blur2",
  285.                                     Source = "Output",
  286.                                 },
  287.                             },
  288.                             ViewInfo = OperatorInfo { Pos = { 715, 280.5 } },
  289.                         },
  290.                         Background1_1_2 = Background {
  291.                             Inputs = {
  292.                                 Width = Input { Value = 3840, },
  293.                                 Height = Input { Value = 2160, },
  294.                                 ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
  295.                                 TopLeftRed = Input { Value = 1, },
  296.                                 TopLeftGreen = Input { Value = 1, },
  297.                                 TopLeftBlue = Input { Value = 1, },
  298.                                 EffectMask = Input {
  299.                                     SourceOp = "Ellipse1_1_2",
  300.                                     Source = "Mask",
  301.                                 }
  302.                             },
  303.                             ViewInfo = OperatorInfo { Pos = { 275, 280.5 } },
  304.                         },
  305.                         Duplicate2_1_2 = Fuse.Duplicate {
  306.                             Inputs = {
  307.                                 Copies = Input { Value = 5, },
  308.                                 Center = Input { Value = { 0.7, 0.5 }, },
  309.                                 RandomSeed = Input { Value = 26024, },
  310.                                 Background = Input {
  311.                                     SourceOp = "Background1_1_2",
  312.                                     Source = "Output",
  313.                                 },
  314.                             },
  315.                             ViewInfo = OperatorInfo { Pos = { 385, 280.5 } },
  316.                         },
  317.                         Blur1 = Blur {
  318.                             Inputs = {
  319.                                 XBlurSize = Input { Value = 36.8, },
  320.                                 Input = Input {
  321.                                     SourceOp = "Merge5",
  322.                                     Source = "Output",
  323.                                 },
  324.                             },
  325.                             ViewInfo = OperatorInfo { Pos = { 605, 280.5 } },
  326.                         },
  327.                         Merge5 = Merge {
  328.                             Inputs = {
  329.                                 Background = Input {
  330.                                     SourceOp = "Merge2",
  331.                                     Source = "Output",
  332.                                 },
  333.                                 Foreground = Input {
  334.                                     SourceOp = "Duplicate2_1_2",
  335.                                     Source = "Output",
  336.                                 },
  337.                                 PerformDepthMerge = Input { Value = 0, },
  338.                             },
  339.                             ViewInfo = OperatorInfo { Pos = { 495, 280.5 } },
  340.                         },
  341.                         FastNoise1 = FastNoise {
  342.                             Inputs = {
  343.                                 Width = Input { Value = 3840, },
  344.                                 Height = Input { Value = 2160, },
  345.                                 ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
  346.                                 Detail = Input { Value = 3.55, },
  347.                                 Contrast = Input { Value = 2.812, },
  348.                                 XScale = Input { Value = 20, },
  349.                             },
  350.                             ViewInfo = OperatorInfo { Pos = { 660, 214.5 } },
  351.                         },
  352.                         Blur2 = Blur {
  353.                             Inputs = {
  354.                                 XBlurSize = Input { Value = 32.9, },
  355.                                 Input = Input {
  356.                                     SourceOp = "FastNoise1",
  357.                                     Source = "Output",
  358.                                 },
  359.                             },
  360.                             ViewInfo = OperatorInfo { Pos = { 660, 247.5 } },
  361.                         },
  362.                         Ellipse1_1_2 = EllipseMask {
  363.                             Inputs = {
  364.                                 MaskWidth = Input { Value = 3840, },
  365.                                 MaskHeight = Input { Value = 2160, },
  366.                                 PixelAspect = Input { Value = { 1, 1 }, },
  367.                                 ClippingMode = Input { Value = FuID { "None" }, },
  368.                                 Center = Input { Value = { 0.1, 0.1 }, },
  369.                                 Width = Input { Value = 0.111764705882353, },
  370.                                 Height = Input { Value = 0.0541666666666667, },
  371.                             },
  372.                             ViewInfo = OperatorInfo { Pos = { 275, 247.5 } },
  373.                         },
  374.                         Background2 = Background {
  375.                             Inputs = {
  376.                                 Width = Input { Value = 3840, },
  377.                                 Height = Input { Value = 2160, },
  378.                                 ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
  379.                             },
  380.                             ViewInfo = OperatorInfo { Pos = { 385, 247.5 } },
  381.                         },
  382.                         Merge2 = Merge {
  383.                             Inputs = {
  384.                                 Background = Input {
  385.                                     SourceOp = "Background2",
  386.                                     Source = "Output",
  387.                                 },
  388.                                 Foreground = Input {
  389.                                     SourceOp = "Merge3",
  390.                                     Source = "Output",
  391.                                 },
  392.                                 PerformDepthMerge = Input { Value = 0, },
  393.                             },
  394.                             ViewInfo = OperatorInfo { Pos = { 495, 247.5 } },
  395.                         },
  396.                         Duplicate2_1_1 = Fuse.Duplicate {
  397.                             Inputs = {
  398.                                 Copies = Input { Value = 5, },
  399.                                 Center = Input { Value = { 0.7, 0.5 }, },
  400.                                 RandomSeed = Input { Value = 26024, },
  401.                                 Background = Input {
  402.                                     SourceOp = "Background1_1_1",
  403.                                     Source = "Output",
  404.                                 },
  405.                             },
  406.                             ViewInfo = OperatorInfo { Pos = { 550, 115.5 } },
  407.                         },
  408.                         Background1_1_1 = Background {
  409.                             Inputs = {
  410.                                 Width = Input { Value = 3840, },
  411.                                 Height = Input { Value = 2160, },
  412.                                 ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
  413.                                 TopLeftRed = Input { Value = 0.290196078431373, },
  414.                                 TopLeftGreen = Input { Value = 0.290196078431373, },
  415.                                 TopLeftBlue = Input { Value = 0.290196078431373, },
  416.                                 EffectMask = Input {
  417.                                     SourceOp = "Ellipse1_1_1",
  418.                                     Source = "Mask",
  419.                                 }
  420.                             },
  421.                             ViewInfo = OperatorInfo { Pos = { 550, 82.5 } },
  422.                         },
  423.                         Duplicate2_1 = Fuse.Duplicate {
  424.                             Inputs = {
  425.                                 Copies = Input { Value = 5, },
  426.                                 Center = Input { Value = { 0.7, 0.5 }, },
  427.                                 RandomSeed = Input { Value = 26024, },
  428.                                 Background = Input {
  429.                                     SourceOp = "Background1_1",
  430.                                     Source = "Output",
  431.                                 },
  432.                             },
  433.                             ViewInfo = OperatorInfo { Pos = { 385, 214.5 } },
  434.                         },
  435.                         Background1_1 = Background {
  436.                             Inputs = {
  437.                                 Width = Input { Value = 3840, },
  438.                                 Height = Input { Value = 2160, },
  439.                                 ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
  440.                                 TopLeftRed = Input { Value = 0.290196078431373, },
  441.                                 TopLeftGreen = Input { Value = 0.290196078431373, },
  442.                                 TopLeftBlue = Input { Value = 0.290196078431373, },
  443.                                 EffectMask = Input {
  444.                                     SourceOp = "Ellipse1_1",
  445.                                     Source = "Mask",
  446.                                 }
  447.                             },
  448.                             ViewInfo = OperatorInfo { Pos = { 275, 214.5 } },
  449.                         },
  450.                         Merge3 = Merge {
  451.                             Inputs = {
  452.                                 Background = Input {
  453.                                     SourceOp = "Merge4",
  454.                                     Source = "Output",
  455.                                 },
  456.                                 Foreground = Input {
  457.                                     SourceOp = "Duplicate2_1",
  458.                                     Source = "Output",
  459.                                 },
  460.                                 PerformDepthMerge = Input { Value = 0, },
  461.                             },
  462.                             ViewInfo = OperatorInfo { Pos = { 495, 214.5 } },
  463.                         },
  464.                         Merge4 = Merge {
  465.                             Inputs = {
  466.                                 Background = Input {
  467.                                     SourceOp = "Duplicate2",
  468.                                     Source = "Output",
  469.                                 },
  470.                                 Foreground = Input {
  471.                                     SourceOp = "Duplicate2_1_1",
  472.                                     Source = "Output",
  473.                                 },
  474.                                 PerformDepthMerge = Input { Value = 0, },
  475.                             },
  476.                             ViewInfo = OperatorInfo { Pos = { 495, 181.5 } },
  477.                         },
  478.                         Ellipse1_1_1 = EllipseMask {
  479.                             Inputs = {
  480.                                 MaskWidth = Input { Value = 3840, },
  481.                                 MaskHeight = Input { Value = 2160, },
  482.                                 PixelAspect = Input { Value = { 1, 1 }, },
  483.                                 ClippingMode = Input { Value = FuID { "None" }, },
  484.                                 Center = Input { Value = { 0.1, 0.796296296296296 }, },
  485.                                 Width = Input { Value = 0.111764705882353, },
  486.                                 Height = Input { Value = 0.0541666666666667, },
  487.                             },
  488.                             ViewInfo = OperatorInfo { Pos = { 495, 49.5 } },
  489.                         },
  490.                         Ellipse1_1 = EllipseMask {
  491.                             Inputs = {
  492.                                 MaskWidth = Input { Value = 3840, },
  493.                                 MaskHeight = Input { Value = 2160, },
  494.                                 PixelAspect = Input { Value = { 1, 1 }, },
  495.                                 ClippingMode = Input { Value = FuID { "None" }, },
  496.                                 Center = Input { Value = { 0.1, 0.218518518518519 }, },
  497.                                 Width = Input { Value = 0.111764705882353, },
  498.                                 Height = Input { Value = 0.0541666666666667, },
  499.                             },
  500.                             ViewInfo = OperatorInfo { Pos = { 275, 181.5 } },
  501.                         },
  502.                         Background1 = Background {
  503.                             Inputs = {
  504.                                 Width = Input { Value = 3840, },
  505.                                 Height = Input { Value = 2160, },
  506.                                 ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
  507.                                 TopLeftRed = Input { Value = 1, },
  508.                                 TopLeftGreen = Input { Value = 1, },
  509.                                 TopLeftBlue = Input { Value = 1, },
  510.                                 EffectMask = Input {
  511.                                     SourceOp = "Ellipse1",
  512.                                     Source = "Mask",
  513.                                 }
  514.                             },
  515.                             ViewInfo = OperatorInfo { Pos = { 330, 148.5 } },
  516.                         },
  517.                         Duplicate2 = Fuse.Duplicate {
  518.                             Inputs = {
  519.                                 Copies = Input { Value = 5, },
  520.                                 Center = Input { Value = { 0.7, 0.5 }, },
  521.                                 RandomSeed = Input { Value = 26024, },
  522.                                 Background = Input {
  523.                                     SourceOp = "Background1",
  524.                                     Source = "Output",
  525.                                 },
  526.                             },
  527.                             ViewInfo = OperatorInfo { Pos = { 440, 148.5 } },
  528.                         },
  529.                         Ellipse1 = EllipseMask {
  530.                             Inputs = {
  531.                                 MaskWidth = Input { Value = 3840, },
  532.                                 MaskHeight = Input { Value = 2160, },
  533.                                 PixelAspect = Input { Value = { 1, 1 }, },
  534.                                 ClippingMode = Input { Value = FuID { "None" }, },
  535.                                 Center = Input { Value = { 0.1, 0.5 }, },
  536.                                 Width = Input { Value = 0.111764705882353, },
  537.                                 Height = Input { Value = 0.191176470588235, },
  538.                             },
  539.                             ViewInfo = OperatorInfo { Pos = { 330, 115.5 } },
  540.                         }
  541.                     },
  542.                 },
  543.                 ChannelBooleans1_2_1_3_1_2_3 = ChannelBoolean {
  544.                     CurrentSettings = 2,
  545.                     CustomData = {
  546.                         Settings = {
  547.                             [1] = {
  548.                                 Tools = ordered() {
  549.                                     ChannelBooleans1 = ChannelBoolean { Inputs = { ToZNormal = Input { Value = 7 }, ToYNormal = Input { Value = 6 }, EnableExtraChannels = Input { Value = 1 }, ToXNormal = Input { Value = 5 }, Background = Input { SourceOp = "CreateBumpMap1", Source = "Output" } }, CtrlWZoom = false, ViewInfo = OperatorInfo { Pos = { 165, -16.5 } }, CustomData = {
  550.                                         } }
  551.                                 }
  552.                             },
  553.                         }
  554.                     },
  555.                     Inputs = {
  556.                         ToRed = Input { Value = 15, },
  557.                         ToGreen = Input { Value = 15, },
  558.                         ToBlue = Input { Value = 15, },
  559.                         EnableExtraChannels = Input { Value = 1, },
  560.                         ToXNormal = Input { Value = 5, },
  561.                         ToYNormal = Input { Value = 6, },
  562.                         ToZNormal = Input { Value = 7, },
  563.                         Background = Input {
  564.                             SourceOp = "CreateBumpMap1",
  565.                             Source = "Output",
  566.                         },
  567.                     },
  568.                     ViewInfo = OperatorInfo { Pos = { 110, 445.5 } },
  569.                 },
  570.                 CreateBumpMap1 = CreateBumpMap {
  571.                     Inputs = {
  572.                         FilterSize = Input { Value = FuID { "5" }, },
  573.                         Input = Input {
  574.                             SourceOp = "Blur5",
  575.                             Source = "Output",
  576.                         },
  577.                         ClampNormalZ = Input { Value = 1, },
  578.                         HeightScale = Input { Value = 5.13, },
  579.                     },
  580.                     ViewInfo = OperatorInfo { Pos = { 0, 445.5 } },
  581.                 },
  582.                 Blur5 = Blur {
  583.                     Inputs = {
  584.                         XBlurSize = Input { Value = 3, },
  585.                         Input = Input {
  586.                             SourceOp = "Transform4",
  587.                             Source = "Output",
  588.                         },
  589.                     },
  590.                     ViewInfo = OperatorInfo { Pos = { 0, 412.5 } },
  591.                 },
  592.                 Pattern = GroupOperator {
  593.                     NameSet = true,
  594.                     Outputs = {
  595.                         Output1 = InstanceOutput {
  596.                             SourceOp = "Transform4",
  597.                             Source = "Output",
  598.                         }
  599.                     },
  600.                     ViewInfo = GroupInfo {
  601.                         Pos = { 0, 379.5 },
  602.                         Flags = {
  603.                             AllowPan = false,
  604.                             GridSnap = true,
  605.                             RemoveRouters = true
  606.                         },
  607.                         Size = { 566, 97.3, 283, 22 },
  608.                         Direction = "Horizontal",
  609.                         PipeStyle = "Orthogonal",
  610.                         Scale = 1,
  611.                         Offset = { 275, -269.8 }
  612.                     },
  613.                     Tools = ordered() {
  614.                         Transform4 = Transform {
  615.                             Inputs = {
  616.                                 Size = Input { Value = 0.052, },
  617.                                 Aspect = Input { Value = 0.9492, },
  618.                                 Edges = Input { Value = 3, },
  619.                                 Input = Input {
  620.                                     SourceOp = "Crop1",
  621.                                     Source = "Output",
  622.                                 },
  623.                             },
  624.                             ViewInfo = OperatorInfo { Pos = { -55, 313.5 } },
  625.                         },
  626.                         Crop1 = Crop {
  627.                             Inputs = {
  628.                                 XOffset = Input { Value = 308, },
  629.                                 XSize = Input { Value = 1436, },
  630.                                 YSize = Input { Value = 2046, },
  631.                                 Input = Input {
  632.                                     SourceOp = "Duplicate1",
  633.                                     Source = "Output",
  634.                                 },
  635.                             },
  636.                             ViewInfo = OperatorInfo { Pos = { -165, 313.5 } },
  637.                         },
  638.                         Duplicate1 = Fuse.Duplicate {
  639.                             Inputs = {
  640.                                 Copies = Input { Value = 5, },
  641.                                 Center = Input { Value = { 0.5, 0.66015625 }, },
  642.                                 RandomSeed = Input { Value = 26024, },
  643.                                 Background = Input {
  644.                                     SourceOp = "Merge1",
  645.                                     Source = "Output",
  646.                                 },
  647.                             },
  648.                             ViewInfo = OperatorInfo { Pos = { -275, 313.5 } },
  649.                         },
  650.                         Merge1 = Merge {
  651.                             Inputs = {
  652.                                 Background = Input {
  653.                                     SourceOp = "Transform2",
  654.                                     Source = "Output",
  655.                                 },
  656.                                 Foreground = Input {
  657.                                     SourceOp = "Background4",
  658.                                     Source = "Output",
  659.                                 },
  660.                                 PerformDepthMerge = Input { Value = 0, },
  661.                             },
  662.                             ViewInfo = OperatorInfo { Pos = { -385, 313.5 } },
  663.                         },
  664.                         Transform2 = Transform {
  665.                             Inputs = {
  666.                                 FlipHoriz = Input { Value = 1, },
  667.                                 Input = Input {
  668.                                     SourceOp = "Background4",
  669.                                     Source = "Output",
  670.                                 },
  671.                             },
  672.                             ViewInfo = OperatorInfo { Pos = { -385, 280.5 } },
  673.                         },
  674.                         Background4 = Background {
  675.                             Inputs = {
  676.                                 Width = Input { Value = 2048, },
  677.                                 Height = Input { Value = 2048, },
  678.                                 Depth = Input { Value = 4, },
  679.                                 TopLeftRed = Input { Value = 1, },
  680.                                 TopLeftGreen = Input { Value = 1, },
  681.                                 TopLeftBlue = Input { Value = 1, },
  682.                                 EffectMask = Input {
  683.                                     SourceOp = "Rectangle1",
  684.                                     Source = "Mask",
  685.                                 }
  686.                             },
  687.                             ViewInfo = OperatorInfo { Pos = { -495, 313.5 } },
  688.                         },
  689.                         Rectangle1 = RectangleMask {
  690.                             Inputs = {
  691.                                 MaskWidth = Input { Value = 3840, },
  692.                                 MaskHeight = Input { Value = 2160, },
  693.                                 PixelAspect = Input { Value = { 1, 1 }, },
  694.                                 ClippingMode = Input { Value = FuID { "None" }, },
  695.                                 Center = Input { Value = { 0.328443327002763, 0.174033149171271 }, },
  696.                                 Height = Input { Value = 0.0201090962662439, },
  697.                                 Angle = Input { Value = 44.4913536371728, },
  698.                             },
  699.                             ViewInfo = OperatorInfo { Pos = { -495, 280.5 } },
  700.                         }
  701.                     },
  702.                 }
  703.             },
  704.         },
  705.         Shader1_1_2_1_3_1_2_3DiffuseCurve = LUTBezier {
  706.             KeyColorSplines = {
  707.                 [0] = {
  708.                     [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
  709.                     [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
  710.                 }
  711.             },
  712.             SplineColor = { Red = 255, Green = 128, Blue = 0 },
  713.             CtrlWShown = false,
  714.             NameSet = true,
  715.         },
  716.         Shader1_1_2_1_3_1_2_3SpecularCurve = LUTBezier {
  717.             KeyColorSplines = {
  718.                 [0] = {
  719.                     [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
  720.                     [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
  721.                 }
  722.             },
  723.             SplineColor = { Red = 255, Green = 255, Blue = 255 },
  724.             CtrlWShown = false,
  725.             NameSet = true,
  726.         },
  727.         Shape3D1 = Shape3D {
  728.             CtrlWZoom = false,
  729.             Inputs = {
  730.                 Shape = Input { Value = FuID { "SurfaceSphereInputs" }, },
  731.                 MaterialInput = Input {
  732.                     SourceOp = "Reflect1",
  733.                     Source = "MaterialOutput",
  734.                 },
  735.                 ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
  736.                 ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
  737.                 ["SurfaceSphereInputs.SubdivisionLevelBase"] = Input { Value = 100, },
  738.                 ["SurfaceSphereInputs.SubdivisionLevelHeight"] = Input { Value = 100, },
  739.                 ["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 2, }
  740.             },
  741.             ViewInfo = OperatorInfo { Pos = { 275, 313.5 } },
  742.         }
  743.     },
  744.     ActiveTool = "Shape3D1"
  745. }

Re: Kick Ass ShaderZ is officially released on Reactor!

Posted: Mon Dec 23, 2019 6:13 am
by Dunn
Wow @andromeda_girl & @AndrewHazelden :o ! This is totally amazing !
Love the content browser interface 8-)
Great work guys !

;)

Re: Kick Ass ShaderZ is officially released on Reactor!

Posted: Mon Dec 23, 2019 7:15 am
by AndrewHazelden
Dunn wrote:Love the content browser interface
Thanks. BTW your pioneering "Shape Gallery" efforts from 2017 were influential to me Dunn. So you're partially at fault for the Content Browser. :)

I'm thinking about a script to auto-create and refresh a .fu text file on disk for the menu structure based upon scanning folder contents so the menus would track the shader collection content with less effort.

I'm working on adding a next/previous page navigation controller to the Content Browser. I also need to implement MultiPath(), mp:Map(), and mp:ReadDir() code to scan the shader collection so it would be a more dynamic UI that auto-generates the UI Layout when opened each time.

Code: [Select all] [Expand/Collapse] [Download] (MultipathScanning.lua)
  1. -- Define your macros source folder location
  2. shaderzFolder = app:MapPath('Reactor:/Deploy/Macros/KickAss ShaderZ')
  3.  
  4. -- ShaderZ file extension
  5. fileExt ='setting'
  6.  
  7. -- Expand the virtual PathMap segments and parse the output into a list of files
  8. mp = MultiPath('ShaderZ:')
  9.  
  10. -- Create a Lua table that holds a (fake) virtual PathMap table for the Reactor Macros folder
  11. mp:Map({['ShaderZ:'] = shaderzFolder})
  12.  
  13. files = mp:ReadDir("*", true, true) -- (string pattern, boolean recursive, boolean flat hierarchy)
  14. dump(files)

Re: Kick Ass ShaderZ is officially released on Reactor!

Posted: Mon Dec 23, 2019 3:44 pm
by Dunn
Oh yeah. Thanks man :oops:
I did use the Stack UI function for the layout and i do remember to road to that one was hair pulling :P

Anyways, really looking forward to the next functions you will be add in.

Well, i had to dig out my old version. Sorry for the mess :P
Shape_Gallery.zip
... we might have to move this to the UI post.

Enjoy ;-)

Re: Kick Ass ShaderZ is officially released on Reactor!

Posted: Tue Dec 24, 2019 2:00 am
by JPDoc
Great stuff guys! Blackmagic owes you both beacoup de beer . . .

Re: Kick Ass ShaderZ is officially released on Reactor!

Posted: Tue Dec 24, 2019 6:03 am
by andromeda_girl
thanks.
I'm willing to pass on that free beer...
I feel that BMD owes the entire Fusion community a proper and up to date feature-set that is representative of what VFX artists actually need:
-deep functionality
-VDB import capability
-PBR shader access
-more robust 3D rendering options
-updated Open GL workspace
-updated volume fog tool that permits volumetric lighting
-hand-in-hand cooperative encouragement with 3rd party developers through timely and professional SDK releases

it's easy to categorize the above as fancy items that are not dealbreakers for a lot of artists but Fusion not having them has a lot to do with why it is not taken seriously.

Re: Kick Ass ShaderZ is officially released on Reactor!

Posted: Sun Dec 29, 2019 6:56 pm
by Ed Farnsworth
Thank you, Andrew. I was quite lost on installing this until your explanation.

Re: Kick Ass ShaderZ is officially released on Reactor!

Posted: Sun Dec 29, 2019 7:10 pm
by AndrewHazelden
Hi @Ed Farnsworth.

It's nice to hear from you! I'm pleased to know that the tip was of use. I constantly try to make things easier for Reactor users so they have as positive a user experience as possible. :)

Re: Kick Ass ShaderZ is officially released on Reactor!

Posted: Mon Dec 30, 2019 11:37 am
by SecondMan
@andromeda_girl - much as I love the project and the initial release and all the extras and goodies, I have to ask - what was the thinking behind making this a top level menu in Fusion?

On install I expected to find this in the Tools -> 3D menu, where I can find other shaders and 3D building blocks...