Welcome to WSL!

New to the forum? Please read this and this.

Kick Ass ShaderZ is officially released on Reactor!

Show us your bits!

Moderator: Dunn

User avatar
AndrewHazelden
Fusionator
Posts: 1679
Joined: Fri Apr 03, 2015 3:20 pm
Answers: 9
Location: West Dover, Nova Scotia, Canada
Been thanked: 1 time
Contact:

Re: Kick Ass ShaderZ is officially released on Reactor!

#16

Post 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
You do not have the required permissions to view the files attached to this post.

User avatar
French_Fry
Fusionista
Posts: 359
Joined: Tue Aug 05, 2014 8:04 am
Location: Nashville, TN
Contact:

Re: Kick Ass ShaderZ is officially released on Reactor!

#17

Post by French_Fry »

Great job! Looking forward to testing it out! :buttrock:

User avatar
MelbFilm
Fusioneer
Posts: 108
Joined: Thu Oct 13, 2016 2:38 pm

Re: Kick Ass ShaderZ is officially released on Reactor!

#18

Post by MelbFilm »

Very cool! Nice work.

User avatar
Marcelo Ballesteros
Posts: 3
Joined: Fri Dec 20, 2019 3:47 am
Real name: Marcelo Ballesteros

Re: Kick Ass ShaderZ is officially released on Reactor!

#19

Post by Marcelo Ballesteros »

I think this is great,Thank you! But i can't find in the Reactor, who can help me? Thank you!

User avatar
AndrewHazelden
Fusionator
Posts: 1679
Joined: Fri Apr 03, 2015 3:20 pm
Answers: 9
Location: West Dover, Nova Scotia, Canada
Been thanked: 1 time
Contact:

Re: Kick Ass ShaderZ is officially released on Reactor!

#20

Post 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!
You do not have the required permissions to view the files attached to this post.

User avatar
Marcelo Ballesteros
Posts: 3
Joined: Fri Dec 20, 2019 3:47 am
Real name: Marcelo Ballesteros

Re: Kick Ass ShaderZ is officially released on Reactor!

#21

Post by Marcelo Ballesteros »

@AndrewHazelden.Thank you for your help . Now i found it and installed the package.Thanks!

User avatar
Shem Namo
Fusionista
Posts: 658
Joined: Sun Oct 06, 2019 9:15 pm
Answers: 1
Location: North Israel
Real name: David Kohen
Been thanked: 2 times

Re: Kick Ass ShaderZ is officially released on Reactor!

#22

Post 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. }

User avatar
Dunn
Moderator
Posts: 495
Joined: Mon Aug 04, 2014 4:27 am
Location: Hamburg, Germany
Contact:

Re: Kick Ass ShaderZ is officially released on Reactor!

#23

Post by Dunn »

Wow @andromeda_girl & @AndrewHazelden :o ! This is totally amazing !
Love the content browser interface 8-)
Great work guys !

;)

User avatar
AndrewHazelden
Fusionator
Posts: 1679
Joined: Fri Apr 03, 2015 3:20 pm
Answers: 9
Location: West Dover, Nova Scotia, Canada
Been thanked: 1 time
Contact:

Re: Kick Ass ShaderZ is officially released on Reactor!

#24

Post 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)

User avatar
Dunn
Moderator
Posts: 495
Joined: Mon Aug 04, 2014 4:27 am
Location: Hamburg, Germany
Contact:

Re: Kick Ass ShaderZ is officially released on Reactor!

#25

Post 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 ;-)
You do not have the required permissions to view the files attached to this post.

JPDoc
Fusionista
Posts: 279
Joined: Tue Sep 02, 2014 8:26 am
Answers: 1

Re: Kick Ass ShaderZ is officially released on Reactor!

#26

Post by JPDoc »

Great stuff guys! Blackmagic owes you both beacoup de beer . . .

User avatar
andromeda_girl
Fusionista
Posts: 543
Joined: Sun Feb 21, 2016 6:25 am

Re: Kick Ass ShaderZ is officially released on Reactor!

#27

Post 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.

Ed Farnsworth
Posts: 14
Joined: Sat Jan 14, 2017 9:15 am

Re: Kick Ass ShaderZ is officially released on Reactor!

#28

Post by Ed Farnsworth »

Thank you, Andrew. I was quite lost on installing this until your explanation.

User avatar
AndrewHazelden
Fusionator
Posts: 1679
Joined: Fri Apr 03, 2015 3:20 pm
Answers: 9
Location: West Dover, Nova Scotia, Canada
Been thanked: 1 time
Contact:

Re: Kick Ass ShaderZ is officially released on Reactor!

#29

Post 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. :)

User avatar
SecondMan
Site Admin
Posts: 4825
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 31
Location: Vancouver, Canada
Been thanked: 33 times
Contact:

Re: Kick Ass ShaderZ is officially released on Reactor!

#30

Post 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...