From bbdb1dc1affeea14c89d79f6210a9eeb451ab167 Mon Sep 17 00:00:00 2001 From: Chris Rydalch <crydalch@gmail.com> Date: Mon, 17 Apr 2023 11:26:43 -0500 Subject: [PATCH 01/14] Adds Random Float and Random Color nodes Adds Random Float and Random Color nodes, to simplify generating randomized signals in a material. --- libraries/stdlib/stdlib_defs.mtlx | 93 +++++++++++++ libraries/stdlib/stdlib_ng.mtlx | 210 ++++++++++++++++++++++++++++++ 2 files changed, 303 insertions(+) diff --git a/libraries/stdlib/stdlib_defs.mtlx b/libraries/stdlib/stdlib_defs.mtlx index 6922ab3317..9b888a7b6c 100644 --- a/libraries/stdlib/stdlib_defs.mtlx +++ b/libraries/stdlib/stdlib_defs.mtlx @@ -1024,6 +1024,99 @@ <output name="out" type="float" /> </nodedef> + <!-- + Node: <randomfloat> + Produces a randomized float, based on an 'input' signal and 'seed' value. + --> + <nodedef name="ND_randomfloat_float" node="randomfloat" nodegroup="procedural"> + <input name="in" type="float" uiname="Input" value="0.0" /> + <input name="seed" type="float" uiname="Seed" value="0.0" /> + <output name="out" type="float" /> + </nodedef> + <nodedef name="ND_randomfloat_integer" node="randomfloat" nodegroup="procedural"> + <input name="in" type="integer" uiname="Input" value="0" /> + <input name="seed" type="float" uiname="Seed" value="0.0" /> + <output name="out" type="float" /> + </nodedef> + <nodedef name="ND_randomfloat_color3" node="randomfloat" nodegroup="procedural"> + <input name="in" type="color3" uiname="Input" value="0" /> + <input name="seed" type="float" uiname="Seed" value="0.0" /> + <output name="out" type="float" /> + </nodedef> + <nodedef name="ND_randomfloat_vector3" node="randomfloat" nodegroup="procedural"> + <input name="in" type="vector3" uiname="Input" value="0" /> + <input name="seed" type="float" uiname="Seed" value="0.0" /> + <output name="out" type="float" /> + </nodedef> + <nodedef name="ND_randomfloat_vector2" node="randomfloat" nodegroup="procedural"> + <input name="in" type="vector2" uiname="Input" value="0" /> + <input name="seed" type="float" uiname="Seed" value="0.0" /> + <output name="out" type="float" /> + </nodedef> + + <!-- + Node: <randomcolor> + Produces a randomized color, based on an input signal and seed value. The input + is only used to generate the randomized color, even if the input signature is a + color or vector3. The output is an RGB color. + --> + <nodedef name="ND_randomcolor_float" node="randomcolor" nodegroup="procedural3d"> + <input name="in" type="float" uiname="Input" uisoftmin="0.0" uisoftmax="10.0" value="0" /> + <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> + <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> + <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="seed" type="float" uiname="Seed" value="0" /> + <output name="out" type="color3" /> + </nodedef> + <nodedef name="ND_randomcolor_integer" node="randomcolor" nodegroup="procedural3d"> + <input name="in" type="integer" uiname="Input" uisoftmin="0" uisoftmax="10" value="0" /> + <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> + <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> + <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="seed" type="float" uiname="Seed" value="0" /> + <output name="out" type="color3" /> + </nodedef> + <nodedef name="ND_randomcolor_color3" node="randomcolor" nodegroup="procedural3d"> + <input name="in" type="color3" uiname="Input" uisoftmin="0" uisoftmax="10" value="0" /> + <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> + <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> + <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="seed" type="float" uiname="Seed" value="0" /> + <output name="out" type="color3" /> + </nodedef> + <nodedef name="ND_randomcolor_vector3" node="randomcolor" nodegroup="procedural3d"> + <input name="in" type="vector3" uiname="Input" uisoftmin="0" uisoftmax="10" value="0" /> + <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> + <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> + <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="seed" type="float" uiname="Seed" value="0" /> + <output name="out" type="color3" /> + </nodedef> + <nodedef name="ND_randomcolor_vector2" node="randomcolor" nodegroup="procedural3d"> + <input name="in" type="vector2" uiname="Input" uisoftmin="0" uisoftmax="10" value="0" /> + <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> + <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> + <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="seed" type="float" uiname="Seed" value="0" /> + <output name="out" type="color3" /> + </nodedef> + + <!-- ======================================================================== --> <!-- Geometric nodes --> <!-- ======================================================================== --> diff --git a/libraries/stdlib/stdlib_ng.mtlx b/libraries/stdlib/stdlib_ng.mtlx index 8d4046f8ae..39dc4d3c2d 100644 --- a/libraries/stdlib/stdlib_ng.mtlx +++ b/libraries/stdlib/stdlib_ng.mtlx @@ -1160,6 +1160,216 @@ <output name="out" type="float" nodename="N_range" /> </nodegraph> + <!-- + Node: <randomfloat> + Produces a randomized float, based on an 'input' signal and 'seed' value. + --> + <nodegraph name="NG_randomfloat_float" nodedef="ND_randomfloat_float"> + <cellnoise2d name="N_cellnoise_1" type="float"> + <input name="texcoord" type="vector2" nodename="N_combine2" /> + </cellnoise2d> + <combine2 name="N_combine2" type="vector2"> + <input name="in1" type="float" nodename="N_subtract1" /> + <input name="in2" type="float" nodename="N_offset_seed" /> + </combine2> + <subtract name="N_subtract1" type="float"> + <input name="in1" type="float" interfacename="in" /> + <input name="in2" type="float" nodename="N_offset_seed" /> + </subtract> + <multiply name="N_offset_seed" type="float"> + <input name="in1" type="float" interfacename="seed" value="0" /> + <input name="in2" type="float" value="43758.5" /> + </multiply> + <output name="out" type="float" nodename="N_cellnoise_1" /> + </nodegraph> + <nodegraph name="NG_randomfloat_integer" nodedef="ND_randomfloat_integer"> + <convert name="N_convert1" type="float"> + <input name="in" type="integer" interfacename="in" /> + </convert> + <randomfloat name="N_randomfloat1" type="float"> + <input name="in" type="float" nodename="N_convert1" /> + <input name="seed" type="float" interfacename="seed" /> + </randomfloat> + <output name="out" type="float" nodename="N_randomfloat1" /> + </nodegraph> + <nodegraph name="NG_randomfloat_color3" nodedef="ND_randomfloat_color3"> + <convert name="N_convert1" type="vector3"> + <input name="in" type="color3" interfacename="in" /> + </convert> + <magnitude name="N_magnitude1" type="float"> + <input name="in" type="vector3" nodename="N_convert1" /> + </magnitude> + <randomfloat name="N_randomfloat1" type="float"> + <input name="in" type="float" nodename="N_magnitude1" /> + <input name="seed" type="float" interfacename="seed" /> + </randomfloat> + <output name="out" type="float" nodename="N_randomfloat1" /> + </nodegraph> + <nodegraph name="NG_randomfloat_vector3" nodedef="ND_randomfloat_vector3"> + <magnitude name="N_magnitude1" type="float"> + <input name="in" type="vector3" interfacename="in" /> + </magnitude> + <randomfloat name="N_randomfloat1" type="float"> + <input name="in" type="float" nodename="N_magnitude1" /> + <input name="seed" type="float" interfacename="seed" /> + </randomfloat> + <output name="out" type="float" nodename="N_randomfloat1" /> + </nodegraph> + <nodegraph name="NG_randomfloat_vector2" nodedef="ND_randomfloat_vector2"> + <magnitude name="N_magnitude1" type="float"> + <input name="in" type="vector2" interfacename="in" /> + </magnitude> + <randomfloat name="N_randomfloat1" type="float"> + <input name="in" type="float" nodename="N_magnitude1" /> + <input name="seed" type="float" interfacename="seed" /> + </randomfloat> + <output name="out" type="float" nodename="N_randomfloat1" /> + </nodegraph> + + <!-- + Node: <randomcolor> + Produces a randomized color, based on an input signal and seed value. + --> + <nodegraph name="NG_randomcolor_float" nodedef="ND_randomcolor_float"> + <randomfloat name="N_rand_hue" type="float"> + <input name="in" type="float" interfacename="in" value="0" /> + <input name="seed" type="float" nodename="N_seed_hue" value="0" /> + </randomfloat> + <randomfloat name="N_rand_saturation" type="float"> + <input name="in" type="float" interfacename="in" value="0" /> + <input name="seed" type="float" nodename="N_seed_saturation" /> + </randomfloat> + <randomfloat name="N_rand_gamma" type="float"> + <input name="in" type="float" interfacename="in" value="0" /> + <input name="seed" type="float" nodename="N_seed_gamma" /> + </randomfloat> + <range name="N_range_hue" type="float"> + <input name="in" type="float" nodename="N_rand_hue" value="0" /> + <input name="outlow" type="float" interfacename="huelow" value="0" /> + <input name="outhigh" type="float" interfacename="huehigh" value="1" /> + <input name="inlow" type="float" value="0" /> + <input name="inhigh" type="float" value="1" /> + <input name="gamma" type="float" value="1" /> + <input name="doclamp" type="boolean" value="false" /> + </range> + <range name="N_range_saturation" type="float"> + <input name="in" type="float" nodename="N_rand_saturation" value="0" /> + <input name="outlow" type="float" interfacename="saturationlow" value="0" /> + <input name="outhigh" type="float" interfacename="saturationhigh" value="1" /> + <input name="inlow" type="float" value="0" /> + <input name="inhigh" type="float" value="1" /> + <input name="gamma" type="float" value="1" /> + <input name="doclamp" type="boolean" value="false" /> + </range> + <range name="N_range_gamma" type="float"> + <input name="in" type="float" nodename="N_rand_gamma" /> + <input name="outlow" type="float" interfacename="gammalow" /> + <input name="outhigh" type="float" interfacename="gammahigh" /> + <input name="inlow" type="float" value="0" /> + <input name="inhigh" type="float" value="1" /> + <input name="gamma" type="float" value="1" /> + <input name="doclamp" type="boolean" value="false" /> + </range> + <add name="N_seed_hue" type="float"> + <input name="in1" type="float" interfacename="seed" /> + <input name="in2" type="float" value="0" /> + </add> + <add name="N_seed_saturation" type="float"> + <input name="in1" type="float" interfacename="seed" /> + <input name="in2" type="float" value="0" /> + </add> + <add name="N_seed_gamma" type="float"> + <input name="in1" type="float" interfacename="seed" /> + <input name="in2" type="float" value="0" /> + </add> + <combine3 name="N_combine_HSV" type="color3"> + <input name="in1" type="float" nodename="N_range_hue" /> + <input name="in2" type="float" nodename="N_range_saturation" /> + <input name="in3" type="float" value="1" /> + </combine3> + <range name="N_gamma" type="color3"> + <input name="in" type="color3" nodename="N_HSV_to_RGB" /> + <input name="gamma" type="float" nodename="N_range_gamma" /> + <input name="inlow" type="float" value="0" /> + <input name="inhigh" type="float" value="1" /> + <input name="outlow" type="float" value="0" /> + <input name="outhigh" type="float" value="1" /> + <input name="doclamp" type="boolean" value="false" /> + </range> + <hsvtorgb name="N_HSV_to_RGB" type="color3"> + <input name="in" type="color3" nodename="N_combine_HSV" /> + </hsvtorgb> + <output name="out" type="color3" nodename="N_gamma" /> + </nodegraph> + <nodegraph name="NG_randomcolor_integer" nodedef="ND_randomcolor_integer"> + <convert name="N_convert1" type="float"> + <input name="in" type="integer" interfacename="in" /> + </convert> + <randomcolor name="N_randomcolor1" type="color3"> + <input name="in" type="float" nodename="N_convert1" /> + <input name="huelow" type="float" interfacename="huelow" /> + <input name="huehigh" type="float" interfacename="huehigh" /> + <input name="saturationlow" type="float" interfacename="saturationlow" /> + <input name="saturationhigh" type="float" interfacename="saturationhigh" /> + <input name="gammalow" type="float" interfacename="gammalow" /> + <input name="gammahigh" type="float" interfacename="gammahigh" /> + <input name="seed" type="float" interfacename="seed" /> + </randomcolor> + <output name="out" type="color3" nodename="N_randomcolor1" /> + </nodegraph> + <nodegraph name="NG_randomcolor_color3" nodedef="ND_randomcolor_color3"> + <convert name="N_convert1" type="vector3"> + <input name="in" type="color3" interfacename="in" /> + </convert> + <magnitude name="N_magnitude1" type="float"> + <input name="in" type="vector3" nodename="N_convert1" /> + </magnitude> + <randomcolor name="N_randomcolor1" type="color3"> + <input name="in" type="float" nodename="N_magnitude1" /> + <input name="huelow" type="float" interfacename="huelow" /> + <input name="huehigh" type="float" interfacename="huehigh" /> + <input name="saturationlow" type="float" interfacename="saturationlow" /> + <input name="saturationhigh" type="float" interfacename="saturationhigh" /> + <input name="gammalow" type="float" interfacename="gammalow" /> + <input name="gammahigh" type="float" interfacename="gammahigh" /> + <input name="seed" type="float" interfacename="seed" /> + </randomcolor> + <output name="out" type="color3" nodename="N_randomcolor1" /> + </nodegraph> + <nodegraph name="NG_randomcolor_vector3" nodedef="ND_randomcolor_vector3"> + <magnitude name="N_magnitude1" type="float"> + <input name="in" type="vector3" interfacename="in" /> + </magnitude> + <randomcolor name="N_randomcolor1" type="color3"> + <input name="in" type="float" nodename="N_magnitude1" /> + <input name="huelow" type="float" interfacename="huelow" /> + <input name="huehigh" type="float" interfacename="huehigh" /> + <input name="saturationlow" type="float" interfacename="saturationlow" /> + <input name="saturationhigh" type="float" interfacename="saturationhigh" /> + <input name="gammalow" type="float" interfacename="gammalow" /> + <input name="gammahigh" type="float" interfacename="gammahigh" /> + <input name="seed" type="float" interfacename="seed" /> + </randomcolor> + <output name="out" type="color3" nodename="N_randomcolor1" /> + </nodegraph> + <nodegraph name="NG_randomcolor_vector2" nodedef="ND_randomcolor_vector2"> + <magnitude name="N_magnitude1" type="float"> + <input name="in" type="vector2" interfacename="in" /> + </magnitude> + <randomcolor name="N_randomcolor1" type="color3"> + <input name="in" type="float" nodename="N_magnitude1" /> + <input name="huelow" type="float" interfacename="huelow" /> + <input name="huehigh" type="float" interfacename="huehigh" /> + <input name="saturationlow" type="float" interfacename="saturationlow" /> + <input name="saturationhigh" type="float" interfacename="saturationhigh" /> + <input name="gammalow" type="float" interfacename="gammalow" /> + <input name="gammahigh" type="float" interfacename="gammahigh" /> + <input name="seed" type="float" interfacename="seed" /> + </randomcolor> + <output name="out" type="color3" nodename="N_randomcolor1" /> + </nodegraph> + + <!-- ======================================================================== --> <!-- Geometric nodes --> <!-- ======================================================================== --> From e051d13cfc6e12a93bb9f24270c47b88a4cd0ed4 Mon Sep 17 00:00:00 2001 From: Chris Rydalch <crydalch@gmail.com> Date: Mon, 17 Apr 2023 18:51:38 -0500 Subject: [PATCH 02/14] Fixed the default values to match the input type signatures. --- libraries/stdlib/stdlib_defs.mtlx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libraries/stdlib/stdlib_defs.mtlx b/libraries/stdlib/stdlib_defs.mtlx index 9b888a7b6c..f110ea22d2 100644 --- a/libraries/stdlib/stdlib_defs.mtlx +++ b/libraries/stdlib/stdlib_defs.mtlx @@ -1039,17 +1039,17 @@ <output name="out" type="float" /> </nodedef> <nodedef name="ND_randomfloat_color3" node="randomfloat" nodegroup="procedural"> - <input name="in" type="color3" uiname="Input" value="0" /> + <input name="in" type="color3" uiname="Input" value="0.0, 0.0, 0.0" /> <input name="seed" type="float" uiname="Seed" value="0.0" /> <output name="out" type="float" /> </nodedef> <nodedef name="ND_randomfloat_vector3" node="randomfloat" nodegroup="procedural"> - <input name="in" type="vector3" uiname="Input" value="0" /> + <input name="in" type="vector3" uiname="Input" value="0.0, 0.0, 0.0" /> <input name="seed" type="float" uiname="Seed" value="0.0" /> <output name="out" type="float" /> </nodedef> <nodedef name="ND_randomfloat_vector2" node="randomfloat" nodegroup="procedural"> - <input name="in" type="vector2" uiname="Input" value="0" /> + <input name="in" type="vector2" uiname="Input" value="0.0, 0.0" /> <input name="seed" type="float" uiname="Seed" value="0.0" /> <output name="out" type="float" /> </nodedef> @@ -1061,7 +1061,7 @@ color or vector3. The output is an RGB color. --> <nodedef name="ND_randomcolor_float" node="randomcolor" nodegroup="procedural3d"> - <input name="in" type="float" uiname="Input" uisoftmin="0.0" uisoftmax="10.0" value="0" /> + <input name="in" type="float" uiname="Input" uisoftmin="0.0" uisoftmax="10.0" value="0.0" /> <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> @@ -1083,7 +1083,7 @@ <output name="out" type="color3" /> </nodedef> <nodedef name="ND_randomcolor_color3" node="randomcolor" nodegroup="procedural3d"> - <input name="in" type="color3" uiname="Input" uisoftmin="0" uisoftmax="10" value="0" /> + <input name="in" type="color3" uiname="Input" uisoftmin="0" uisoftmax="10" value="0.0, 0.0, 0.0" /> <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> @@ -1094,7 +1094,7 @@ <output name="out" type="color3" /> </nodedef> <nodedef name="ND_randomcolor_vector3" node="randomcolor" nodegroup="procedural3d"> - <input name="in" type="vector3" uiname="Input" uisoftmin="0" uisoftmax="10" value="0" /> + <input name="in" type="vector3" uiname="Input" uisoftmin="0" uisoftmax="10" value="0.0, 0.0, 0.0" /> <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> @@ -1105,7 +1105,7 @@ <output name="out" type="color3" /> </nodedef> <nodedef name="ND_randomcolor_vector2" node="randomcolor" nodegroup="procedural3d"> - <input name="in" type="vector2" uiname="Input" uisoftmin="0" uisoftmax="10" value="0" /> + <input name="in" type="vector2" uiname="Input" uisoftmin="0" uisoftmax="10" value="0.0, 0.0" /> <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> From e57d49c0d6ec482053292d0498e6353dce8aebc6 Mon Sep 17 00:00:00 2001 From: Chris Rydalch <crydalch@gmail.com> Date: Fri, 12 May 2023 14:01:49 -0500 Subject: [PATCH 03/14] Added color4 signature to randomcolor --- libraries/stdlib/stdlib_defs.mtlx | 67 ++++++++++++- libraries/stdlib/stdlib_ng.mtlx | 157 +++++++++++++++++++++++++++++- 2 files changed, 214 insertions(+), 10 deletions(-) diff --git a/libraries/stdlib/stdlib_defs.mtlx b/libraries/stdlib/stdlib_defs.mtlx index f110ea22d2..5e48c73fe7 100644 --- a/libraries/stdlib/stdlib_defs.mtlx +++ b/libraries/stdlib/stdlib_defs.mtlx @@ -1060,7 +1060,7 @@ is only used to generate the randomized color, even if the input signature is a color or vector3. The output is an RGB color. --> - <nodedef name="ND_randomcolor_float" node="randomcolor" nodegroup="procedural3d"> + <nodedef name="ND_randomcolor_float_color3" node="randomcolor" nodegroup="procedural3d"> <input name="in" type="float" uiname="Input" uisoftmin="0.0" uisoftmax="10.0" value="0.0" /> <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> @@ -1071,7 +1071,7 @@ <input name="seed" type="float" uiname="Seed" value="0" /> <output name="out" type="color3" /> </nodedef> - <nodedef name="ND_randomcolor_integer" node="randomcolor" nodegroup="procedural3d"> + <nodedef name="ND_randomcolor_integer_color3" node="randomcolor" nodegroup="procedural3d"> <input name="in" type="integer" uiname="Input" uisoftmin="0" uisoftmax="10" value="0" /> <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> @@ -1082,7 +1082,7 @@ <input name="seed" type="float" uiname="Seed" value="0" /> <output name="out" type="color3" /> </nodedef> - <nodedef name="ND_randomcolor_color3" node="randomcolor" nodegroup="procedural3d"> + <nodedef name="ND_randomcolor_color3_color3" node="randomcolor" nodegroup="procedural3d"> <input name="in" type="color3" uiname="Input" uisoftmin="0" uisoftmax="10" value="0.0, 0.0, 0.0" /> <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> @@ -1093,7 +1093,7 @@ <input name="seed" type="float" uiname="Seed" value="0" /> <output name="out" type="color3" /> </nodedef> - <nodedef name="ND_randomcolor_vector3" node="randomcolor" nodegroup="procedural3d"> + <nodedef name="ND_randomcolor_vector3_color3" node="randomcolor" nodegroup="procedural3d"> <input name="in" type="vector3" uiname="Input" uisoftmin="0" uisoftmax="10" value="0.0, 0.0, 0.0" /> <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> @@ -1104,7 +1104,64 @@ <input name="seed" type="float" uiname="Seed" value="0" /> <output name="out" type="color3" /> </nodedef> - <nodedef name="ND_randomcolor_vector2" node="randomcolor" nodegroup="procedural3d"> + <nodedef name="ND_randomcolor_vector2_color3" node="randomcolor" nodegroup="procedural3d"> + <input name="in" type="vector2" uiname="Input" uisoftmin="0" uisoftmax="10" value="0.0, 0.0" /> + <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> + <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> + <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="seed" type="float" uiname="Seed" value="0" /> + <output name="out" type="color3" /> + </nodedef> + + + <nodedef name="ND_randomcolor_float_color4" node="randomcolor" nodegroup="procedural3d"> + <input name="in" type="float" uiname="Input" uisoftmin="0.0" uisoftmax="10.0" value="0.0" /> + <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> + <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> + <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="seed" type="float" uiname="Seed" value="0" /> + <output name="out" type="color3" /> + </nodedef> + <nodedef name="ND_randomcolor_integer_color4" node="randomcolor" nodegroup="procedural3d"> + <input name="in" type="integer" uiname="Input" uisoftmin="0" uisoftmax="10" value="0" /> + <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> + <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> + <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="seed" type="float" uiname="Seed" value="0" /> + <output name="out" type="color3" /> + </nodedef> + <nodedef name="ND_randomcolor_color3_color4" node="randomcolor" nodegroup="procedural3d"> + <input name="in" type="color3" uiname="Input" uisoftmin="0" uisoftmax="10" value="0.0, 0.0, 0.0" /> + <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> + <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> + <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="seed" type="float" uiname="Seed" value="0" /> + <output name="out" type="color3" /> + </nodedef> + <nodedef name="ND_randomcolor_vector3_color4" node="randomcolor" nodegroup="procedural3d"> + <input name="in" type="vector3" uiname="Input" uisoftmin="0" uisoftmax="10" value="0.0, 0.0, 0.0" /> + <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> + <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> + <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> + <input name="seed" type="float" uiname="Seed" value="0" /> + <output name="out" type="color3" /> + </nodedef> + <nodedef name="ND_randomcolor_vector2_color4" node="randomcolor" nodegroup="procedural3d"> <input name="in" type="vector2" uiname="Input" uisoftmin="0" uisoftmax="10" value="0.0, 0.0" /> <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> diff --git a/libraries/stdlib/stdlib_ng.mtlx b/libraries/stdlib/stdlib_ng.mtlx index 39dc4d3c2d..03cd34da94 100644 --- a/libraries/stdlib/stdlib_ng.mtlx +++ b/libraries/stdlib/stdlib_ng.mtlx @@ -1230,7 +1230,7 @@ Node: <randomcolor> Produces a randomized color, based on an input signal and seed value. --> - <nodegraph name="NG_randomcolor_float" nodedef="ND_randomcolor_float"> + <nodegraph name="NG_randomcolor_float_color3" nodedef="ND_randomcolor_float"> <randomfloat name="N_rand_hue" type="float"> <input name="in" type="float" interfacename="in" value="0" /> <input name="seed" type="float" nodename="N_seed_hue" value="0" /> @@ -1301,7 +1301,7 @@ </hsvtorgb> <output name="out" type="color3" nodename="N_gamma" /> </nodegraph> - <nodegraph name="NG_randomcolor_integer" nodedef="ND_randomcolor_integer"> + <nodegraph name="NG_randomcolor_integer_color3" nodedef="ND_randomcolor_integer"> <convert name="N_convert1" type="float"> <input name="in" type="integer" interfacename="in" /> </convert> @@ -1317,7 +1317,7 @@ </randomcolor> <output name="out" type="color3" nodename="N_randomcolor1" /> </nodegraph> - <nodegraph name="NG_randomcolor_color3" nodedef="ND_randomcolor_color3"> + <nodegraph name="NG_randomcolor_color3_color3" nodedef="ND_randomcolor_color3"> <convert name="N_convert1" type="vector3"> <input name="in" type="color3" interfacename="in" /> </convert> @@ -1336,7 +1336,7 @@ </randomcolor> <output name="out" type="color3" nodename="N_randomcolor1" /> </nodegraph> - <nodegraph name="NG_randomcolor_vector3" nodedef="ND_randomcolor_vector3"> + <nodegraph name="NG_randomcolor_vector3_color3" nodedef="ND_randomcolor_vector3"> <magnitude name="N_magnitude1" type="float"> <input name="in" type="vector3" interfacename="in" /> </magnitude> @@ -1352,7 +1352,7 @@ </randomcolor> <output name="out" type="color3" nodename="N_randomcolor1" /> </nodegraph> - <nodegraph name="NG_randomcolor_vector2" nodedef="ND_randomcolor_vector2"> + <nodegraph name="NG_randomcolor_vector2_color3" nodedef="ND_randomcolor_vector2"> <magnitude name="N_magnitude1" type="float"> <input name="in" type="vector2" interfacename="in" /> </magnitude> @@ -1369,6 +1369,153 @@ <output name="out" type="color3" nodename="N_randomcolor1" /> </nodegraph> +<nodegraph name="NG_randomcolor_float_color4" nodedef="ND_randomcolor_float_color4"> + <randomcolor name="N_randomcolor1" type="color3"> + <input name="in" type="float" interfacename="in" /> + <input name="huelow" type="float" interfacename="huelow" /> + <input name="huehigh" type="float" interfacename="huehigh" /> + <input name="saturationlow" type="float" interfacename="saturationlow" /> + <input name="saturationhigh" type="float" interfacename="saturationhigh" /> + <input name="gammalow" type="float" interfacename="gammalow" /> + <input name="gammahigh" type="float" interfacename="gammahigh" /> + <input name="seed" type="float" interfacename="seed" /> + </randomcolor> + <randomfloat name="N_randomfloat1" type="float"> + <input name="in" type="float" interfacename="in" /> + <input name="seed" type="float" interfacename="seed" /> + </randomfloat> + <separate3 name="N_splitColor" type="multioutput"> + <input name="in" type="color3" nodename="N_randomfloat1" /> + </separate3> + <combine3 name="N_combine_color" type="color4"> + <input name="in1" type="float" nodename="N_splitColor" output="outr" /> + <input name="in2" type="float" nodename="N_splitColor" output="outg" /> + <input name="in3" type="float" nodename="N_splitColor" output="outb" /> + <input name="in4" type="float" nodename="N_randomfloat1" /> + </combine3> + <output name="out" type="color4" nodename="N_combine_color" /> +</nodegraph> +<nodegraph name="NG_randomcolor_integer_color4" nodedef="ND_randomcolor_integer_color4"> + <convert name="N_convert1" type="float"> + <input name="in" type="integer" interfacename="in" /> + </convert> + <randomcolor name="N_randomcolor1" type="color3"> + <input name="in" type="float" nodename="N_convert1" /> + <input name="huelow" type="float" interfacename="huelow" /> + <input name="huehigh" type="float" interfacename="huehigh" /> + <input name="saturationlow" type="float" interfacename="saturationlow" /> + <input name="saturationhigh" type="float" interfacename="saturationhigh" /> + <input name="gammalow" type="float" interfacename="gammalow" /> + <input name="gammahigh" type="float" interfacename="gammahigh" /> + <input name="seed" type="float" interfacename="seed" /> + </randomcolor> + <randomfloat name="N_randomfloat1" type="float"> + <input name="in" type="float" interfacename="in" /> + <input name="seed" type="float" interfacename="seed" /> + </randomfloat> + <separate3 name="N_splitColor" type="multioutput"> + <input name="in" type="color3" nodename="N_randomfloat1" /> + </separate3> + <combine3 name="N_combine_color" type="color4"> + <input name="in1" type="float" nodename="N_splitColor" output="outr" /> + <input name="in2" type="float" nodename="N_splitColor" output="outg" /> + <input name="in3" type="float" nodename="N_splitColor" output="outb" /> + <input name="in4" type="float" nodename="N_randomfloat1" /> + </combine3> + <output name="out" type="color4" nodename="N_combine_color" /> + </nodegraph> + <nodegraph name="NG_randomcolor_color3_color4" nodedef="ND_randomcolor_color3_color4"> + <convert name="N_convert1" type="vector3"> + <input name="in" type="color3" interfacename="in" /> + </convert> + <magnitude name="N_magnitude1" type="float"> + <input name="in" type="vector3" nodename="N_convert1" /> + </magnitude> + <randomcolor name="N_randomcolor1" type="color3"> + <input name="in" type="float" nodename="N_magnitude1" /> + <input name="huelow" type="float" interfacename="huelow" /> + <input name="huehigh" type="float" interfacename="huehigh" /> + <input name="saturationlow" type="float" interfacename="saturationlow" /> + <input name="saturationhigh" type="float" interfacename="saturationhigh" /> + <input name="gammalow" type="float" interfacename="gammalow" /> + <input name="gammahigh" type="float" interfacename="gammahigh" /> + <input name="seed" type="float" interfacename="seed" /> + </randomcolor> + <randomfloat name="N_randomfloat1" type="float"> + <input name="in" type="float" interfacename="in" /> + <input name="seed" type="float" interfacename="seed" /> + </randomfloat> + <separate3 name="N_splitColor" type="multioutput"> + <input name="in" type="color3" nodename="N_randomfloat1" /> + </separate3> + <combine3 name="N_combine_color" type="color4"> + <input name="in1" type="float" nodename="N_splitColor" output="outr" /> + <input name="in2" type="float" nodename="N_splitColor" output="outg" /> + <input name="in3" type="float" nodename="N_splitColor" output="outb" /> + <input name="in4" type="float" nodename="N_randomfloat1" /> + </combine3> + <output name="out" type="color4" nodename="N_combine_color" /> + </nodegraph> + <nodegraph name="NG_randomcolor_vector3_color4" nodedef="ND_randomcolor_vector3_color4"> + <magnitude name="N_magnitude1" type="float"> + <input name="in" type="vector3" interfacename="in" /> + </magnitude> + <randomcolor name="N_randomcolor1" type="color3"> + <input name="in" type="float" nodename="N_magnitude1" /> + <input name="huelow" type="float" interfacename="huelow" /> + <input name="huehigh" type="float" interfacename="huehigh" /> + <input name="saturationlow" type="float" interfacename="saturationlow" /> + <input name="saturationhigh" type="float" interfacename="saturationhigh" /> + <input name="gammalow" type="float" interfacename="gammalow" /> + <input name="gammahigh" type="float" interfacename="gammahigh" /> + <input name="seed" type="float" interfacename="seed" /> + </randomcolor> + <randomfloat name="N_randomfloat1" type="float"> + <input name="in" type="float" interfacename="in" /> + <input name="seed" type="float" interfacename="seed" /> + </randomfloat> + <separate3 name="N_splitColor" type="multioutput"> + <input name="in" type="color3" nodename="N_randomfloat1" /> + </separate3> + <combine3 name="N_combine_color" type="color4"> + <input name="in1" type="float" nodename="N_splitColor" output="outr" /> + <input name="in2" type="float" nodename="N_splitColor" output="outg" /> + <input name="in3" type="float" nodename="N_splitColor" output="outb" /> + <input name="in4" type="float" nodename="N_randomfloat1" /> + </combine3> + <output name="out" type="color4" nodename="N_combine_color" /> + </nodegraph> + <nodegraph name="NG_randomcolor_vector2_color4" nodedef="ND_randomcolor_vector2_color4"> + <magnitude name="N_magnitude1" type="float"> + <input name="in" type="vector2" interfacename="in" /> + </magnitude> + <randomcolor name="N_randomcolor1" type="color3"> + <input name="in" type="float" nodename="N_magnitude1" /> + <input name="huelow" type="float" interfacename="huelow" /> + <input name="huehigh" type="float" interfacename="huehigh" /> + <input name="saturationlow" type="float" interfacename="saturationlow" /> + <input name="saturationhigh" type="float" interfacename="saturationhigh" /> + <input name="gammalow" type="float" interfacename="gammalow" /> + <input name="gammahigh" type="float" interfacename="gammahigh" /> + <input name="seed" type="float" interfacename="seed" /> + </randomcolor> + <randomfloat name="N_randomfloat1" type="float"> + <input name="in" type="float" interfacename="in" /> + <input name="seed" type="float" interfacename="seed" /> + </randomfloat> + <separate3 name="N_splitColor" type="multioutput"> + <input name="in" type="color3" nodename="N_randomfloat1" /> + </separate3> + <combine3 name="N_combine_color" type="color4"> + <input name="in1" type="float" nodename="N_splitColor" output="outr" /> + <input name="in2" type="float" nodename="N_splitColor" output="outg" /> + <input name="in3" type="float" nodename="N_splitColor" output="outb" /> + <input name="in4" type="float" nodename="N_randomfloat1" /> + </combine3> + <output name="out" type="color4" nodename="N_combine_color" /> + </nodegraph> + + <!-- ======================================================================== --> <!-- Geometric nodes --> From 3a1d0aac8911f87a0593f5427e6321d18247fb8a Mon Sep 17 00:00:00 2001 From: Chris Rydalch <crydalch@gmail.com> Date: Fri, 12 May 2023 17:30:38 -0500 Subject: [PATCH 04/14] Add randomvector, min/max inputs to randomfloat, and fixed randomcolor. --- libraries/stdlib/stdlib_defs.mtlx | 145 ++++++++- libraries/stdlib/stdlib_ng.mtlx | 479 +++++++++++++++++++++++++++--- 2 files changed, 572 insertions(+), 52 deletions(-) diff --git a/libraries/stdlib/stdlib_defs.mtlx b/libraries/stdlib/stdlib_defs.mtlx index 5e48c73fe7..638bd36c9f 100644 --- a/libraries/stdlib/stdlib_defs.mtlx +++ b/libraries/stdlib/stdlib_defs.mtlx @@ -1029,31 +1029,170 @@ Produces a randomized float, based on an 'input' signal and 'seed' value. --> <nodedef name="ND_randomfloat_float" node="randomfloat" nodegroup="procedural"> - <input name="in" type="float" uiname="Input" value="0.0" /> - <input name="seed" type="float" uiname="Seed" value="0.0" /> + <input name="in" type="float" uiname="Input" value="0.0" doc="Initial randomization seed." /> + <input name="min" type="float" uiname="Minimum" value="0.0" doc="The minimum output value." /> + <input name="max" type="float" uiname="Maximum" value="1.0" doc="The maximum output value." /> + <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> <output name="out" type="float" /> </nodedef> <nodedef name="ND_randomfloat_integer" node="randomfloat" nodegroup="procedural"> <input name="in" type="integer" uiname="Input" value="0" /> + <input name="min" type="float" uiname="Minimum" value="0.0" /> + <input name="max" type="float" uiname="Maximum" value="1.0" /> <input name="seed" type="float" uiname="Seed" value="0.0" /> <output name="out" type="float" /> </nodedef> <nodedef name="ND_randomfloat_color3" node="randomfloat" nodegroup="procedural"> <input name="in" type="color3" uiname="Input" value="0.0, 0.0, 0.0" /> + <input name="min" type="float" uiname="Minimum" value="0.0" /> + <input name="max" type="float" uiname="Maximum" value="1.0" /> <input name="seed" type="float" uiname="Seed" value="0.0" /> <output name="out" type="float" /> </nodedef> <nodedef name="ND_randomfloat_vector3" node="randomfloat" nodegroup="procedural"> <input name="in" type="vector3" uiname="Input" value="0.0, 0.0, 0.0" /> + <input name="min" type="float" uiname="Minimum" value="0.0" /> + <input name="max" type="float" uiname="Maximum" value="1.0" /> <input name="seed" type="float" uiname="Seed" value="0.0" /> <output name="out" type="float" /> </nodedef> <nodedef name="ND_randomfloat_vector2" node="randomfloat" nodegroup="procedural"> <input name="in" type="vector2" uiname="Input" value="0.0, 0.0" /> + <input name="min" type="float" uiname="Minimum" value="0.0" /> + <input name="max" type="float" uiname="Maximum" value="1.0" /> <input name="seed" type="float" uiname="Seed" value="0.0" /> <output name="out" type="float" /> </nodedef> + <!-- + Node: <randomvector> + Produces a randomized vector2, vector3, or vector4, based on an 'input' signal and 'seed' value. + --> + <nodedef name="ND_randomvector_float_vector2" node="randomvector" nodegroup="procedural"> + <input name="in" type="float" uiname="Input" value="0.0" doc="Initial randomization seed." /> + <input name="min" type="vector2" uiname="Minimum" value="0.0, 0.0" doc="The minimum output value." /> + <input name="max" type="vector2" uiname="Maximum" value="1.0, 1.0" doc="The maximum output value." /> + <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> + <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> + <output name="out" type="vector2" /> + </nodedef> + <nodedef name="ND_randomvector_integer_vector2" node="randomvector" nodegroup="procedural"> + <input name="in" type="integer" uiname="Input" value="0" doc="Initial randomization seed." /> + <input name="min" type="vector2" uiname="Minimum" value="0.0, 0.0" doc="The minimum output value." /> + <input name="max" type="vector2" uiname="Maximum" value="1.0, 1.0" doc="The maximum output value." /> + <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> + <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> + <output name="out" type="vector2" /> + </nodedef> + <nodedef name="ND_randomvector_vector2_vector2" node="randomvector" nodegroup="procedural"> + <input name="in" type="vector2" uiname="Input" value="0.0, 0.0" doc="Initial randomization seed." /> + <input name="min" type="vector2" uiname="Minimum" value="0.0, 0.0" doc="The minimum output value." /> + <input name="max" type="vector2" uiname="Maximum" value="1.0, 1.0" doc="The maximum output value." /> + <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> + <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> + <output name="out" type="vector2" /> + </nodedef> + <nodedef name="ND_randomvector_vector3_vector2" node="randomvector" nodegroup="procedural"> + <input name="in" type="vector3" uiname="Input" value="0.0, 0.0, 0.0" doc="Initial randomization seed." /> + <input name="min" type="vector2" uiname="Minimum" value="0.0, 0.0" doc="The minimum output value." /> + <input name="max" type="vector2" uiname="Maximum" value="1.0, 1.0" doc="The maximum output value." /> + <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> + <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> + <output name="out" type="vector2" /> + </nodedef> + <nodedef name="ND_randomvector_vector4_vector2" node="randomvector" nodegroup="procedural"> + <input name="in" type="vector4" uiname="Input" value="0.0, 0.0, 0.0, 0.0" doc="Initial randomization seed." /> + <input name="min" type="vector2" uiname="Minimum" value="0.0, 0.0" doc="The minimum output value." /> + <input name="max" type="vector2" uiname="Maximum" value="1.0, 1.0" doc="The maximum output value." /> + <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> + <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> + <output name="out" type="vector2" /> + </nodedef> + + + <nodedef name="ND_randomvector_float_vector3" node="randomvector" nodegroup="procedural"> + <input name="in" type="float" uiname="Input" value="0.0" doc="Initial randomization seed." /> + <input name="min" type="vector3" uiname="Minimum" value="0.0, 0.0, 0.0" doc="The minimum output value." /> + <input name="max" type="vector3" uiname="Maximum" value="1.0, 1.0, 1.0" doc="The maximum output value." /> + <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> + <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> + <output name="out" type="vector3" /> + </nodedef> + <nodedef name="ND_randomvector_integer_vector3" node="randomvector" nodegroup="procedural"> + <input name="in" type="integer" uiname="Input" value="0" doc="Initial randomization seed." /> + <input name="min" type="vector3" uiname="Minimum" value="0.0, 0.0, 0.0" doc="The minimum output value." /> + <input name="max" type="vector3" uiname="Maximum" value="1.0, 1.0, 1.0" doc="The maximum output value." /> + <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> + <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> + <output name="out" type="vector3" /> + </nodedef> + <nodedef name="ND_randomvector_vector2_vector3" node="randomvector" nodegroup="procedural"> + <input name="in" type="vector2" uiname="Input" value="0.0, 0.0" doc="Initial randomization seed." /> + <input name="min" type="vector3" uiname="Minimum" value="0.0, 0.0, 0.0" doc="The minimum output value." /> + <input name="max" type="vector3" uiname="Maximum" value="1.0, 1.0, 1.0" doc="The maximum output value." /> + <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> + <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> + <output name="out" type="vector3" /> + </nodedef> + <nodedef name="ND_randomvector_vector3_vector3" node="randomvector" nodegroup="procedural"> + <input name="in" type="vector3" uiname="Input" value="0.0, 0.0, 0.0" doc="Initial randomization seed." /> + <input name="min" type="vector3" uiname="Minimum" value="0.0, 0.0, 0.0" doc="The minimum output value." /> + <input name="max" type="vector3" uiname="Maximum" value="1.0, 1.0, 1.0" doc="The maximum output value." /> + <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> + <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> + <output name="out" type="vector3" /> + </nodedef> + <nodedef name="ND_randomvector_vector4_vector3" node="randomvector" nodegroup="procedural"> + <input name="in" type="vector4" uiname="Minimum" value="0.0, 0.0, 0.0, 0.0" doc="The minimum output value." /> + <input name="min" type="vector3" uiname="Minimum" value="0.0, 0.0, 0.0" doc="The minimum output value." /> + <input name="max" type="vector3" uiname="Maximum" value="1.0, 1.0, 1.0" doc="The maximum output value." /> + <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> + <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> + <output name="out" type="vector3" /> + </nodedef> + + <nodedef name="ND_randomvector_float_vector4" node="randomvector" nodegroup="procedural"> + <input name="in" type="float" uiname="Input" value="0.0" doc="Initial randomization seed." /> + <input name="min" type="vector4" uiname="Minimum" value="0.0, 0.0, 0.0, 0.0" doc="The minimum output value." /> + <input name="max" type="vector4" uiname="Maximum" value="1.0, 1.0, 1.0, 1.0" doc="The maximum output value." /> + <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> + <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> + <output name="out" type="vector4" /> + </nodedef> + <nodedef name="ND_randomvector_integer_vector4" node="randomvector" nodegroup="procedural"> + <input name="in" type="integer" uiname="Input" value="0" doc="Initial randomization seed." /> + <input name="min" type="vector4" uiname="Minimum" value="0.0, 0.0, 0.0, 0.0" doc="The minimum output value." /> + <input name="max" type="vector4" uiname="Maximum" value="1.0, 1.0, 1.0, 1.0" doc="The maximum output value." /> + <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> + <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> + <output name="out" type="vector4" /> + </nodedef> + <nodedef name="ND_randomvector_vector2_vector4" node="randomvector" nodegroup="procedural"> + <input name="in" type="vector2" uiname="Input" value="0.0, 0.0" doc="Initial randomization seed." /> + <input name="min" type="vector4" uiname="Minimum" value="0.0, 0.0, 0.0, 0.0" doc="The minimum output value." /> + <input name="max" type="vector4" uiname="Maximum" value="1.0, 1.0, 1.0, 1.0" doc="The maximum output value." /> + <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> + <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> + <output name="out" type="vector4" /> + </nodedef> + <nodedef name="ND_randomvector_vector3_vector4" node="randomvector" nodegroup="procedural"> + <input name="in" type="vector3" uiname="Input" value="0.0, 0.0, 0.0" doc="Initial randomization seed." /> + <input name="min" type="vector4" uiname="Minimum" value="0.0, 0.0, 0.0, 0.0" doc="The minimum output value." /> + <input name="max" type="vector4" uiname="Maximum" value="1.0, 1.0, 1.0, 1.0" doc="The maximum output value." /> + <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> + <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> + <output name="out" type="vector4" /> + </nodedef> + <nodedef name="ND_randomvector_vector4_vector4" node="randomvector" nodegroup="procedural"> + <input name="in" type="vector4" uiname="Input" value="0.0, 0.0, 0.0, 0.0" doc="Initial randomization seed." /> + <input name="min" type="vector4" uiname="Minimum" value="0.0, 0.0, 0.0, 0.0" doc="The minimum output value." /> + <input name="max" type="vector4" uiname="Maximum" value="1.0, 1.0, 1.0, 1.0" doc="The maximum output value." /> + <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> + <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> + <output name="out" type="vector4" /> + </nodedef> + + <!-- Node: <randomcolor> Produces a randomized color, based on an input signal and seed value. The input @@ -1115,8 +1254,6 @@ <input name="seed" type="float" uiname="Seed" value="0" /> <output name="out" type="color3" /> </nodedef> - - <nodedef name="ND_randomcolor_float_color4" node="randomcolor" nodegroup="procedural3d"> <input name="in" type="float" uiname="Input" uisoftmin="0.0" uisoftmax="10.0" value="0.0" /> <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> diff --git a/libraries/stdlib/stdlib_ng.mtlx b/libraries/stdlib/stdlib_ng.mtlx index 03cd34da94..bd7c515931 100644 --- a/libraries/stdlib/stdlib_ng.mtlx +++ b/libraries/stdlib/stdlib_ng.mtlx @@ -1180,6 +1180,14 @@ <input name="in1" type="float" interfacename="seed" value="0" /> <input name="in2" type="float" value="43758.5" /> </multiply> + <range name="N_remapRange" type="float"> + <input name="in" type="float" nodename="N_cellnoise_1" /> + <input name="inlow" type="float" value="0" /> + <input name="inhigh" type="float" value="1" /> + <input name="outlow" type="float" interfacename="min" /> + <input name="outhigh" type="float" interfacename="max" /> + <input name="doclamp" type="boolean" value="true" /> + </range> <output name="out" type="float" nodename="N_cellnoise_1" /> </nodegraph> <nodegraph name="NG_randomfloat_integer" nodedef="ND_randomfloat_integer"> @@ -1226,36 +1234,412 @@ <output name="out" type="float" nodename="N_randomfloat1" /> </nodegraph> + + <!-- + Node: <randomvector> + Produces a randomized vector2, vector3, or vector4, based on an 'input' signal and 'seed' value. + --> + <nodegraph name="NG_randomvector_vector4_vector4" nodedef="ND_randomvector_vector4_vector4"> + <range name="N_range" type="vector4"> + <input name="in" type="vector4" nodename="N_makeVector" /> + <input name="outlow" type="vector4" interfacename="min" /> + <input name="outhigh" type="vector4" interfacename="max" /> + <input name="doclamp" type="boolean" value="true" /> + </range> + <combine4 name="N_makeVector" type="vector4"> + <input name="in1" type="float" nodename="N_randX" /> + <input name="in2" type="float" nodename="N_randY" /> + <input name="in3" type="float" nodename="N_randZ" /> + <input name="in4" type="float" nodename="N_randW" /> + </combine4> + <randomfloat name="N_randX" type="float"> + <input name="in" type="float" nodename="N_addSeed" /> + <input name="seed" type="float" value="1.3712" /> + </randomfloat> + <add name="N_addSeed" type="float"> + <input name="in1" type="float" nodename="N_inputMagnitude" /> + <input name="in2" type="float" interfacename="seed" /> + </add> + <magnitude name="N_inputMagnitude" type="float"> + <input name="in" type="vector4" interfacename="in" /> + </magnitude> + <randomfloat name="N_randY" type="float"> + <input name="in" type="float" nodename="N_addSeed" /> + <input name="seed" type="float" value="29.544" /> + </randomfloat> + <randomfloat name="N_randZ" type="float"> + <input name="in" type="float" nodename="N_addSeed" /> + <input name="seed" type="float" value="78.046" /> + </randomfloat> + <randomfloat name="N_randW" type="float"> + <input name="in" type="float" nodename="N_addSeed" /> + <input name="seed" type="float" value="524.97" /> + </randomfloat> + <normalize name="N_normalize" type="vector4"> + <input name="in" type="vector4" nodename="N_range" /> + </normalize> + <convert name="N_convertNormalizeParm" type="float"> + <input name="in" type="boolean" interfacename="normalize" /> + </convert> + <switch name="N_normalizeOutput" type="vector4"> + <input name="in1" type="vector4" nodename="N_range" /> + <input name="in2" type="vector4" nodename="N_normalize" /> + <input name="which" type="float" nodename="N_convertNormalizeParm" /> + </switch> + <output name="out" type="vector4" nodename="N_normalizeOutput" /> + </nodegraph> + <nodegraph name="NG_randomvector_vector3_vector4" nodedef="ND_randomvector_vector3_vector4"> + <convert name="N_convert1" type="vector4"> + <input name="in" type="vector3" interfacename="in" /> + </convert> + <randomvector name="N_randomvector1" type="vector4"> + <input name="in" type="vector4" nodename="N_convert1" /> + <input name="min" type="vector4" interfacename="min" /> + <input name="max" type="vector4" interfacename="max" /> + <input name="seed" type="float" interfacename="seed" /> + <input name="normalize" type="boolean" interfacename="normalize" /> + </randomvector> + <output name="out" type="vector4" nodename="N_randomvector1" /> + </nodegraph> + <nodegraph name="NG_randomvector_vector2_vector4" nodedef="ND_randomvector_vector2_vector4"> + <swizzle name="N_convert1" type="vector4"> + <input name="in" type="vector2" interfacename="in" /> + <input name="channels" type="string" value="xyxy" /> + </swizzle> + <randomvector name="N_randomvector1" type="vector4"> + <input name="in" type="vector4" nodename="N_convert1" /> + <input name="min" type="vector4" interfacename="min" /> + <input name="max" type="vector4" interfacename="max" /> + <input name="seed" type="float" interfacename="seed" /> + <input name="normalize" type="boolean" interfacename="normalize" /> + </randomvector> + <output name="out" type="vector4" nodename="N_randomvector1" /> + </nodegraph> + <nodegraph name="NG_randomvector_float_vector4" nodedef="ND_randomvector_float_vector4"> + <convert name="N_convert1" type="vector4"> + <input name="in" type="float" interfacename="in" /> + </convert> + <randomvector name="N_randomvector1" type="vector4"> + <input name="in" type="vector4" nodename="N_convert1" /> + <input name="min" type="vector4" interfacename="min" /> + <input name="max" type="vector4" interfacename="max" /> + <input name="seed" type="float" interfacename="seed" /> + <input name="normalize" type="boolean" interfacename="normalize" /> + </randomvector> + <output name="out" type="vector4" nodename="N_randomvector1" /> + </nodegraph> + <nodegraph name="NG_randomvector_integer_vector4" nodedef="ND_randomvector_integer_vector4"> + <convert name="N_convert1" type="float"> + <input name="in" type="integer" interfacename="in" /> + </convert> + <convert name="N_convert2" type="vector4"> + <input name="in" type="float" nodename="N_convert1" /> + </convert> + <randomvector name="N_randomvector1" type="vector4"> + <input name="in" type="vector4" nodename="N_convert2" /> + <input name="min" type="vector4" interfacename="min" /> + <input name="max" type="vector4" interfacename="max" /> + <input name="seed" type="float" interfacename="seed" /> + <input name="normalize" type="boolean" interfacename="normalize" /> + </randomvector> + <output name="out" type="vector4" nodename="N_randomvector1" /> + </nodegraph> + + + + + <nodegraph name="NG_randomvector_vector4_vector3" nodedef="ND_randomvector_vector4_vector3"> + <swizzle name="N_swizzeMin" type="vector4"> + <input name="in" type="vector3" interfacename="min" /> + <input name="channels" type="string" value="xyzx" /> + </swizzle> + <swizzle name="N_swizzeMax" type="vector4"> + <input name="in" type="vector3" interfacename="max" /> + <input name="channels" type="string" value="xyzx" /> + </swizzle> + <randomvector name="N_randomvector1" type="vector4"> + <input name="in" type="vector4" interfacename="in" /> + <input name="min" type="vector4" nodename="N_swizzeMin" /> + <input name="max" type="vector4" nodename="N_swizzeMax" /> + <input name="seed" type="float" interfacename="seed" /> + <input name="normalize" type="boolean" interfacename="normalize" /> + </randomvector> + <convert name="N_convert1" type="vector3"> + <input name="in" type="vector4" nodename="N_randomvector1" /> + </convert> + <output name="out" type="vector3" nodename="N_convert1" /> + </nodegraph> + <nodegraph name="NG_randomvector_vector3_vector3" nodedef="ND_randomvector_vector3_vector3"> + <swizzle name="N_swizzeMin" type="vector4"> + <input name="in" type="vector3" interfacename="min" /> + <input name="channels" type="string" value="xyzx" /> + </swizzle> + <swizzle name="N_swizzeMax" type="vector4"> + <input name="in" type="vector3" interfacename="max" /> + <input name="channels" type="string" value="xyzx" /> + </swizzle> + <convert name="N_convert1" type="vector4"> + <input name="in" type="vector3" interfacename="in" /> + </convert> + <randomvector name="N_randomvector1" type="vector4"> + <input name="in" type="vector4" nodename="N_convert1" /> + <input name="min" type="vector4" nodename="N_swizzeMin" /> + <input name="max" type="vector4" nodename="N_swizzeMax" /> + <input name="seed" type="float" interfacename="seed" /> + <input name="normalize" type="boolean" interfacename="normalize" /> + </randomvector> + <convert name="N_convert2" type="vector3"> + <input name="in" type="vector4" nodename="N_randomvector1" /> + </convert> + <output name="out" type="vector3" nodename="N_convert2" /> + </nodegraph> + <nodegraph name="NG_randomvector_vector2_vector3" nodedef="ND_randomvector_vector2_vector3"> + <swizzle name="N_swizzeMin" type="vector4"> + <input name="in" type="vector3" interfacename="min" /> + <input name="channels" type="string" value="xyzx" /> + </swizzle> + <swizzle name="N_swizzeMax" type="vector4"> + <input name="in" type="vector3" interfacename="max" /> + <input name="channels" type="string" value="xyzx" /> + </swizzle> + <swizzle name="N_convert1" type="vector4"> + <input name="in" type="vector2" interfacename="in" /> + <input name="channels" type="string" value="xyxy" /> + </swizzle> + <randomvector name="N_randomvector1" type="vector4"> + <input name="in" type="vector4" nodename="N_convert1" /> + <input name="min" type="vector4" nodename="N_swizzeMin" /> + <input name="max" type="vector4" nodename="N_swizzeMax" /> + <input name="seed" type="float" interfacename="seed" /> + <input name="normalize" type="boolean" interfacename="normalize" /> + </randomvector> + <convert name="N_convert2" type="vector3"> + <input name="in" type="vector4" nodename="N_randomvector1" /> + </convert> + <output name="out" type="vector3" nodename="N_convert2" /> + </nodegraph> + <nodegraph name="NG_randomvector_float_vector3" nodedef="ND_randomvector_float_vector3"> + <swizzle name="N_swizzeMin" type="vector4"> + <input name="in" type="vector3" interfacename="min" /> + <input name="channels" type="string" value="xyzx" /> + </swizzle> + <swizzle name="N_swizzeMax" type="vector4"> + <input name="in" type="vector3" interfacename="max" /> + <input name="channels" type="string" value="xyzx" /> + </swizzle> + <convert name="N_convert1" type="vector4"> + <input name="in" type="float" interfacename="in" /> + </convert> + <randomvector name="N_randomvector1" type="vector4"> + <input name="in" type="vector4" nodename="N_convert1" /> + <input name="min" type="vector4" nodename="N_swizzeMin" /> + <input name="max" type="vector4" nodename="N_swizzeMax" /> + <input name="seed" type="float" interfacename="seed" /> + <input name="normalize" type="boolean" interfacename="normalize" /> + </randomvector> + <convert name="N_convert2" type="vector3"> + <input name="in" type="vector4" nodename="N_randomvector1" /> + </convert> + <output name="out" type="vector3" nodename="N_convert2" /> + </nodegraph> + <nodegraph name="NG_randomvector_integer_vector3" nodedef="ND_randomvector_integer_vector3"> + <swizzle name="N_swizzeMin" type="vector4"> + <input name="in" type="vector3" interfacename="min" /> + <input name="channels" type="string" value="xyzx" /> + </swizzle> + <swizzle name="N_swizzeMax" type="vector4"> + <input name="in" type="vector3" interfacename="max" /> + <input name="channels" type="string" value="xyzx" /> + </swizzle> + <convert name="N_convert1" type="float"> + <input name="in" type="integer" interfacename="in" /> + </convert> + <convert name="N_convert2" type="vector4"> + <input name="in" type="float" nodename="N_convert1" /> + </convert> + <randomvector name="N_randomvector1" type="vector4"> + <input name="in" type="vector4" nodename="N_convert2" /> + <input name="min" type="vector4" nodename="N_swizzeMin" /> + <input name="max" type="vector4" nodename="N_swizzeMax" /> + <input name="seed" type="float" interfacename="seed" /> + <input name="normalize" type="boolean" interfacename="normalize" /> + </randomvector> + <convert name="N_convert3" type="vector3"> + <input name="in" type="vector4" nodename="N_randomvector1" /> + </convert> + <output name="out" type="vector3" nodename="N_convert3" /> + </nodegraph> + + + + <nodegraph name="NG_randomvector_vector4_vector2" nodedef="ND_randomvector_vector4_vector2"> + <swizzle name="N_swizzeMin" type="vector4"> + <input name="in" type="vector2" interfacename="min" /> + <input name="channels" type="string" value="xyxy" /> + </swizzle> + <swizzle name="N_swizzeMax" type="vector4"> + <input name="in" type="vector2" interfacename="max" /> + <input name="channels" type="string" value="xyxy" /> + </swizzle> + <randomvector name="N_randomvector1" type="vector4"> + <input name="in" type="vector4" interfacename="in" /> + <input name="min" type="vector4" nodename="N_swizzeMin" /> + <input name="max" type="vector4" nodename="N_swizzeMax" /> + <input name="seed" type="float" interfacename="seed" /> + <input name="normalize" type="boolean" interfacename="normalize" /> + </randomvector> + <convert name="N_convert1" type="vector3"> + <input name="in" type="vector4" nodename="N_randomvector1" /> + </convert> + <convert name="N_convert5" type="vector2"> + <input name="in" type="vector3" nodename="N_convert1" /> + </convert> + <output name="out" type="vector2" nodename="N_convert5" /> + </nodegraph> + <nodegraph name="NG_randomvector_vector3_vector2" nodedef="ND_randomvector_vector3_vector2"> + <swizzle name="N_swizzeMin" type="vector4"> + <input name="in" type="vector2" interfacename="min" /> + <input name="channels" type="string" value="xyxy" /> + </swizzle> + <swizzle name="N_swizzeMax" type="vector4"> + <input name="in" type="vector2" interfacename="max" /> + <input name="channels" type="string" value="xyxy" /> + </swizzle> + <convert name="N_convert1" type="vector4"> + <input name="in" type="vector3" interfacename="in" /> + </convert> + <randomvector name="N_randomvector1" type="vector4"> + <input name="in" type="vector4" nodename="N_convert1" /> + <input name="min" type="vector4" nodename="N_swizzeMin" /> + <input name="max" type="vector4" nodename="N_swizzeMax" /> + <input name="seed" type="float" interfacename="seed" /> + <input name="normalize" type="boolean" interfacename="normalize" /> + </randomvector> + <convert name="N_convert2" type="vector3"> + <input name="in" type="vector4" nodename="N_randomvector1" /> + </convert> + <convert name="N_convert5" type="vector2"> + <input name="in" type="vector3" nodename="N_convert2" /> + </convert> + <output name="out" type="vector2" nodename="N_convert5" /> + </nodegraph> + <nodegraph name="NG_randomvector_vector2_vector2" nodedef="ND_randomvector_vector2_vector2"> + <swizzle name="N_swizzeMin" type="vector4"> + <input name="in" type="vector2" interfacename="min" /> + <input name="channels" type="string" value="xyxy" /> + </swizzle> + <swizzle name="N_swizzeMax" type="vector4"> + <input name="in" type="vector2" interfacename="max" /> + <input name="channels" type="string" value="xyxy" /> + </swizzle> + <swizzle name="N_convert1" type="vector4"> + <input name="in" type="vector2" interfacename="in" /> + <input name="channels" type="string" value="xyxy" /> + </swizzle> + <randomvector name="N_randomvector1" type="vector4"> + <input name="in" type="vector4" nodename="N_convert1" /> + <input name="min" type="vector4" nodename="N_swizzeMin" /> + <input name="max" type="vector4" nodename="N_swizzeMax" /> + <input name="seed" type="float" interfacename="seed" /> + <input name="normalize" type="boolean" interfacename="normalize" /> + </randomvector> + <convert name="N_convert2" type="vector3"> + <input name="in" type="vector4" nodename="N_randomvector1" /> + </convert> + <convert name="N_convert5" type="vector2"> + <input name="in" type="vector3" nodename="N_convert2" /> + </convert> + <output name="out" type="vector2" nodename="N_convert5" /> + </nodegraph> + <nodegraph name="NG_randomvector_float_vector2" nodedef="ND_randomvector_float_vector2"> + <swizzle name="N_swizzeMin" type="vector4"> + <input name="in" type="vector2" interfacename="min" /> + <input name="channels" type="string" value="xyxy" /> + </swizzle> + <swizzle name="N_swizzeMax" type="vector4"> + <input name="in" type="vector2" interfacename="max" /> + <input name="channels" type="string" value="xyxy" /> + </swizzle> + <convert name="N_convert1" type="vector4"> + <input name="in" type="float" interfacename="in" /> + </convert> + <randomvector name="N_randomvector1" type="vector4"> + <input name="in" type="vector4" nodename="N_convert1" /> + <input name="min" type="vector4" nodename="N_swizzeMin" /> + <input name="max" type="vector4" nodename="N_swizzeMax" /> + <input name="seed" type="float" interfacename="seed" /> + <input name="normalize" type="boolean" interfacename="normalize" /> + </randomvector> + <convert name="N_convert2" type="vector3"> + <input name="in" type="vector4" nodename="N_randomvector1" /> + </convert> + <convert name="N_convert5" type="vector2"> + <input name="in" type="vector3" nodename="N_convert2" /> + </convert> + <output name="out" type="vector2" nodename="N_convert5" /> + </nodegraph> + <nodegraph name="NG_randomvector_integer_vector2" nodedef="ND_randomvector_integer_vector2"> + <swizzle name="N_swizzeMin" type="vector4"> + <input name="in" type="vector2" interfacename="min" /> + <input name="channels" type="string" value="xyxy" /> + </swizzle> + <swizzle name="N_swizzeMax" type="vector4"> + <input name="in" type="vector2" interfacename="max" /> + <input name="channels" type="string" value="xyxy" /> + </swizzle> + <convert name="N_convert1" type="float"> + <input name="in" type="integer" interfacename="in" /> + </convert> + <convert name="N_convert2" type="vector4"> + <input name="in" type="float" nodename="N_convert1" /> + </convert> + <randomvector name="N_randomvector1" type="vector4"> + <input name="in" type="vector4" nodename="N_convert2" /> + <input name="min" type="vector4" nodename="N_swizzeMin" /> + <input name="max" type="vector4" nodename="N_swizzeMax" /> + <input name="seed" type="float" interfacename="seed" /> + <input name="normalize" type="boolean" interfacename="normalize" /> + </randomvector> + <convert name="N_convert3" type="vector3"> + <input name="in" type="vector4" nodename="N_randomvector1" /> + </convert> + <convert name="N_convert5" type="vector2"> + <input name="in" type="vector3" nodename="N_convert3" /> + </convert> + <output name="out" type="vector2" nodename="N_convert5" /> + </nodegraph> + + <!-- Node: <randomcolor> Produces a randomized color, based on an input signal and seed value. --> - <nodegraph name="NG_randomcolor_float_color3" nodedef="ND_randomcolor_float"> + <nodegraph name="NG_randomcolor_float_color3" nodedef="ND_randomcolor_float_color3"> <randomfloat name="N_rand_hue" type="float"> - <input name="in" type="float" interfacename="in" value="0" /> - <input name="seed" type="float" nodename="N_seed_hue" value="0" /> + <input name="in" type="float" interfacename="in" /> + <input name="seed" type="float" nodename="N_seed_hue" /> </randomfloat> <randomfloat name="N_rand_saturation" type="float"> - <input name="in" type="float" interfacename="in" value="0" /> + <input name="in" type="float" interfacename="in" /> <input name="seed" type="float" nodename="N_seed_saturation" /> </randomfloat> <randomfloat name="N_rand_gamma" type="float"> - <input name="in" type="float" interfacename="in" value="0" /> + <input name="in" type="float" interfacename="in" /> <input name="seed" type="float" nodename="N_seed_gamma" /> </randomfloat> <range name="N_range_hue" type="float"> - <input name="in" type="float" nodename="N_rand_hue" value="0" /> - <input name="outlow" type="float" interfacename="huelow" value="0" /> - <input name="outhigh" type="float" interfacename="huehigh" value="1" /> + <input name="in" type="float" nodename="N_rand_hue" /> + <input name="outlow" type="float" interfacename="huelow" /> + <input name="outhigh" type="float" interfacename="huehigh" /> <input name="inlow" type="float" value="0" /> <input name="inhigh" type="float" value="1" /> <input name="gamma" type="float" value="1" /> <input name="doclamp" type="boolean" value="false" /> </range> <range name="N_range_saturation" type="float"> - <input name="in" type="float" nodename="N_rand_saturation" value="0" /> - <input name="outlow" type="float" interfacename="saturationlow" value="0" /> - <input name="outhigh" type="float" interfacename="saturationhigh" value="1" /> + <input name="in" type="float" nodename="N_rand_saturation" /> + <input name="outlow" type="float" interfacename="saturationlow" /> + <input name="outhigh" type="float" interfacename="saturationhigh" /> <input name="inlow" type="float" value="0" /> <input name="inhigh" type="float" value="1" /> <input name="gamma" type="float" value="1" /> @@ -1301,7 +1685,7 @@ </hsvtorgb> <output name="out" type="color3" nodename="N_gamma" /> </nodegraph> - <nodegraph name="NG_randomcolor_integer_color3" nodedef="ND_randomcolor_integer"> + <nodegraph name="NG_randomcolor_integer_color3" nodedef="ND_randomcolor_integer_color3"> <convert name="N_convert1" type="float"> <input name="in" type="integer" interfacename="in" /> </convert> @@ -1317,7 +1701,7 @@ </randomcolor> <output name="out" type="color3" nodename="N_randomcolor1" /> </nodegraph> - <nodegraph name="NG_randomcolor_color3_color3" nodedef="ND_randomcolor_color3"> + <nodegraph name="NG_randomcolor_color3_color3" nodedef="ND_randomcolor_color3_color3"> <convert name="N_convert1" type="vector3"> <input name="in" type="color3" interfacename="in" /> </convert> @@ -1336,7 +1720,7 @@ </randomcolor> <output name="out" type="color3" nodename="N_randomcolor1" /> </nodegraph> - <nodegraph name="NG_randomcolor_vector3_color3" nodedef="ND_randomcolor_vector3"> + <nodegraph name="NG_randomcolor_vector3_color3" nodedef="ND_randomcolor_vector3_color3"> <magnitude name="N_magnitude1" type="float"> <input name="in" type="vector3" interfacename="in" /> </magnitude> @@ -1352,7 +1736,7 @@ </randomcolor> <output name="out" type="color3" nodename="N_randomcolor1" /> </nodegraph> - <nodegraph name="NG_randomcolor_vector2_color3" nodedef="ND_randomcolor_vector2"> + <nodegraph name="NG_randomcolor_vector2_color3" nodedef="ND_randomcolor_vector2_color3"> <magnitude name="N_magnitude1" type="float"> <input name="in" type="vector2" interfacename="in" /> </magnitude> @@ -1368,8 +1752,7 @@ </randomcolor> <output name="out" type="color3" nodename="N_randomcolor1" /> </nodegraph> - -<nodegraph name="NG_randomcolor_float_color4" nodedef="ND_randomcolor_float_color4"> + <nodegraph name="NG_randomcolor_float_color4" nodedef="ND_randomcolor_float_color4"> <randomcolor name="N_randomcolor1" type="color3"> <input name="in" type="float" interfacename="in" /> <input name="huelow" type="float" interfacename="huelow" /> @@ -1380,22 +1763,22 @@ <input name="gammahigh" type="float" interfacename="gammahigh" /> <input name="seed" type="float" interfacename="seed" /> </randomcolor> - <randomfloat name="N_randomfloat1" type="float"> + <randomfloat name="N_randomfloat2" type="float"> <input name="in" type="float" interfacename="in" /> <input name="seed" type="float" interfacename="seed" /> </randomfloat> <separate3 name="N_splitColor" type="multioutput"> - <input name="in" type="color3" nodename="N_randomfloat1" /> + <input name="in" type="color3" nodename="N_randomcolor1" /> </separate3> - <combine3 name="N_combine_color" type="color4"> + <combine4 name="N_combine_color" type="color4"> <input name="in1" type="float" nodename="N_splitColor" output="outr" /> <input name="in2" type="float" nodename="N_splitColor" output="outg" /> <input name="in3" type="float" nodename="N_splitColor" output="outb" /> - <input name="in4" type="float" nodename="N_randomfloat1" /> - </combine3> + <input name="in4" type="float" nodename="N_randomfloat2" /> + </combine4> <output name="out" type="color4" nodename="N_combine_color" /> -</nodegraph> -<nodegraph name="NG_randomcolor_integer_color4" nodedef="ND_randomcolor_integer_color4"> + </nodegraph> + <nodegraph name="NG_randomcolor_integer_color4" nodedef="ND_randomcolor_integer_color4"> <convert name="N_convert1" type="float"> <input name="in" type="integer" interfacename="in" /> </convert> @@ -1409,19 +1792,19 @@ <input name="gammahigh" type="float" interfacename="gammahigh" /> <input name="seed" type="float" interfacename="seed" /> </randomcolor> - <randomfloat name="N_randomfloat1" type="float"> - <input name="in" type="float" interfacename="in" /> + <randomfloat name="N_randomfloat2" type="float"> + <input name="in" type="float" nodename="N_convert1" /> <input name="seed" type="float" interfacename="seed" /> </randomfloat> <separate3 name="N_splitColor" type="multioutput"> - <input name="in" type="color3" nodename="N_randomfloat1" /> + <input name="in" type="color3" nodename="N_randomcolor1" /> </separate3> - <combine3 name="N_combine_color" type="color4"> + <combine4 name="N_combine_color" type="color4"> <input name="in1" type="float" nodename="N_splitColor" output="outr" /> <input name="in2" type="float" nodename="N_splitColor" output="outg" /> <input name="in3" type="float" nodename="N_splitColor" output="outb" /> - <input name="in4" type="float" nodename="N_randomfloat1" /> - </combine3> + <input name="in4" type="float" nodename="N_randomfloat2" /> + </combine4> <output name="out" type="color4" nodename="N_combine_color" /> </nodegraph> <nodegraph name="NG_randomcolor_color3_color4" nodedef="ND_randomcolor_color3_color4"> @@ -1441,19 +1824,19 @@ <input name="gammahigh" type="float" interfacename="gammahigh" /> <input name="seed" type="float" interfacename="seed" /> </randomcolor> - <randomfloat name="N_randomfloat1" type="float"> - <input name="in" type="float" interfacename="in" /> + <randomfloat name="N_randomfloat2" type="float"> + <input name="in" type="float" nodename="N_magnitude1" /> <input name="seed" type="float" interfacename="seed" /> </randomfloat> <separate3 name="N_splitColor" type="multioutput"> - <input name="in" type="color3" nodename="N_randomfloat1" /> + <input name="in" type="color3" nodename="N_randomcolor1" /> </separate3> - <combine3 name="N_combine_color" type="color4"> + <combine4 name="N_combine_color" type="color4"> <input name="in1" type="float" nodename="N_splitColor" output="outr" /> <input name="in2" type="float" nodename="N_splitColor" output="outg" /> <input name="in3" type="float" nodename="N_splitColor" output="outb" /> - <input name="in4" type="float" nodename="N_randomfloat1" /> - </combine3> + <input name="in4" type="float" nodename="N_randomfloat2" /> + </combine4> <output name="out" type="color4" nodename="N_combine_color" /> </nodegraph> <nodegraph name="NG_randomcolor_vector3_color4" nodedef="ND_randomcolor_vector3_color4"> @@ -1470,19 +1853,19 @@ <input name="gammahigh" type="float" interfacename="gammahigh" /> <input name="seed" type="float" interfacename="seed" /> </randomcolor> - <randomfloat name="N_randomfloat1" type="float"> - <input name="in" type="float" interfacename="in" /> + <randomfloat name="N_randomfloat2" type="float"> + <input name="in" type="vector3" interfacename="in" /> <input name="seed" type="float" interfacename="seed" /> </randomfloat> <separate3 name="N_splitColor" type="multioutput"> - <input name="in" type="color3" nodename="N_randomfloat1" /> + <input name="in" type="color3" nodename="N_randomcolor1" /> </separate3> - <combine3 name="N_combine_color" type="color4"> + <combine4 name="N_combine_color" type="color4"> <input name="in1" type="float" nodename="N_splitColor" output="outr" /> <input name="in2" type="float" nodename="N_splitColor" output="outg" /> <input name="in3" type="float" nodename="N_splitColor" output="outb" /> - <input name="in4" type="float" nodename="N_randomfloat1" /> - </combine3> + <input name="in4" type="float" nodename="N_randomfloat2" /> + </combine4> <output name="out" type="color4" nodename="N_combine_color" /> </nodegraph> <nodegraph name="NG_randomcolor_vector2_color4" nodedef="ND_randomcolor_vector2_color4"> @@ -1499,19 +1882,19 @@ <input name="gammahigh" type="float" interfacename="gammahigh" /> <input name="seed" type="float" interfacename="seed" /> </randomcolor> - <randomfloat name="N_randomfloat1" type="float"> - <input name="in" type="float" interfacename="in" /> + <randomfloat name="N_randomfloat2" type="float"> + <input name="in" type="vector2" interfacename="in" /> <input name="seed" type="float" interfacename="seed" /> </randomfloat> <separate3 name="N_splitColor" type="multioutput"> - <input name="in" type="color3" nodename="N_randomfloat1" /> + <input name="in" type="color3" nodename="N_randomcolor1" /> </separate3> - <combine3 name="N_combine_color" type="color4"> + <combine4 name="N_combine_color" type="color4"> <input name="in1" type="float" nodename="N_splitColor" output="outr" /> <input name="in2" type="float" nodename="N_splitColor" output="outg" /> <input name="in3" type="float" nodename="N_splitColor" output="outb" /> - <input name="in4" type="float" nodename="N_randomfloat1" /> - </combine3> + <input name="in4" type="float" nodename="N_randomfloat2" /> + </combine4> <output name="out" type="color4" nodename="N_combine_color" /> </nodegraph> From 53ed58b2c4fcfe062392edb6a1d57055a7ce0e51 Mon Sep 17 00:00:00 2001 From: Chris Rydalch <crydalch@gmail.com> Date: Mon, 22 May 2023 14:12:00 -0500 Subject: [PATCH 05/14] Fixed color4 signatures with color3 output types. --- libraries/stdlib/stdlib_defs.mtlx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libraries/stdlib/stdlib_defs.mtlx b/libraries/stdlib/stdlib_defs.mtlx index f4d14f6411..aebad8778e 100644 --- a/libraries/stdlib/stdlib_defs.mtlx +++ b/libraries/stdlib/stdlib_defs.mtlx @@ -1261,7 +1261,7 @@ <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> <input name="seed" type="float" uiname="Seed" value="0" /> - <output name="out" type="color3" /> + <output name="out" type="color4" /> </nodedef> <nodedef name="ND_randomcolor_integer_color4" node="randomcolor" nodegroup="procedural3d"> <input name="in" type="integer" uiname="Input" uisoftmin="0" uisoftmax="10" value="0" /> @@ -1272,7 +1272,7 @@ <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> <input name="seed" type="float" uiname="Seed" value="0" /> - <output name="out" type="color3" /> + <output name="out" type="color4" /> </nodedef> <nodedef name="ND_randomcolor_color3_color4" node="randomcolor" nodegroup="procedural3d"> <input name="in" type="color3" uiname="Input" uisoftmin="0" uisoftmax="10" value="0.0, 0.0, 0.0" /> @@ -1283,7 +1283,7 @@ <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> <input name="seed" type="float" uiname="Seed" value="0" /> - <output name="out" type="color3" /> + <output name="out" type="color4" /> </nodedef> <nodedef name="ND_randomcolor_vector3_color4" node="randomcolor" nodegroup="procedural3d"> <input name="in" type="vector3" uiname="Input" uisoftmin="0" uisoftmax="10" value="0.0, 0.0, 0.0" /> @@ -1294,7 +1294,7 @@ <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> <input name="seed" type="float" uiname="Seed" value="0" /> - <output name="out" type="color3" /> + <output name="out" type="color4" /> </nodedef> <nodedef name="ND_randomcolor_vector2_color4" node="randomcolor" nodegroup="procedural3d"> <input name="in" type="vector2" uiname="Input" uisoftmin="0" uisoftmax="10" value="0.0, 0.0" /> @@ -1305,7 +1305,7 @@ <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> <input name="seed" type="float" uiname="Seed" value="0" /> - <output name="out" type="color3" /> + <output name="out" type="color4" /> </nodedef> <!-- From 21e7ae07c8a1835e22a00367cf2799d08036f8a4 Mon Sep 17 00:00:00 2001 From: Chris Rydalch <crydalch@gmail.com> Date: Wed, 24 May 2023 11:49:47 -0500 Subject: [PATCH 06/14] Simplify the number of input signatures for the randomization nodes. --- libraries/stdlib/stdlib_defs.mtlx | 181 +--------- libraries/stdlib/stdlib_ng.mtlx | 571 +++++------------------------- 2 files changed, 86 insertions(+), 666 deletions(-) diff --git a/libraries/stdlib/stdlib_defs.mtlx b/libraries/stdlib/stdlib_defs.mtlx index aebad8778e..7d40b0c460 100644 --- a/libraries/stdlib/stdlib_defs.mtlx +++ b/libraries/stdlib/stdlib_defs.mtlx @@ -1042,32 +1042,12 @@ <input name="seed" type="float" uiname="Seed" value="0.0" /> <output name="out" type="float" /> </nodedef> - <nodedef name="ND_randomfloat_color3" node="randomfloat" nodegroup="procedural"> - <input name="in" type="color3" uiname="Input" value="0.0, 0.0, 0.0" /> - <input name="min" type="float" uiname="Minimum" value="0.0" /> - <input name="max" type="float" uiname="Maximum" value="1.0" /> - <input name="seed" type="float" uiname="Seed" value="0.0" /> - <output name="out" type="float" /> - </nodedef> - <nodedef name="ND_randomfloat_vector3" node="randomfloat" nodegroup="procedural"> - <input name="in" type="vector3" uiname="Input" value="0.0, 0.0, 0.0" /> - <input name="min" type="float" uiname="Minimum" value="0.0" /> - <input name="max" type="float" uiname="Maximum" value="1.0" /> - <input name="seed" type="float" uiname="Seed" value="0.0" /> - <output name="out" type="float" /> - </nodedef> - <nodedef name="ND_randomfloat_vector2" node="randomfloat" nodegroup="procedural"> - <input name="in" type="vector2" uiname="Input" value="0.0, 0.0" /> - <input name="min" type="float" uiname="Minimum" value="0.0" /> - <input name="max" type="float" uiname="Maximum" value="1.0" /> - <input name="seed" type="float" uiname="Seed" value="0.0" /> - <output name="out" type="float" /> - </nodedef> <!-- Node: <randomvector> Produces a randomized vector2, vector3, or vector4, based on an 'input' signal and 'seed' value. --> + <nodedef name="ND_randomvector_float_vector2" node="randomvector" nodegroup="procedural"> <input name="in" type="float" uiname="Input" value="0.0" doc="Initial randomization seed." /> <input name="min" type="vector2" uiname="Minimum" value="0.0, 0.0" doc="The minimum output value." /> @@ -1084,31 +1064,6 @@ <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> <output name="out" type="vector2" /> </nodedef> - <nodedef name="ND_randomvector_vector2_vector2" node="randomvector" nodegroup="procedural"> - <input name="in" type="vector2" uiname="Input" value="0.0, 0.0" doc="Initial randomization seed." /> - <input name="min" type="vector2" uiname="Minimum" value="0.0, 0.0" doc="The minimum output value." /> - <input name="max" type="vector2" uiname="Maximum" value="1.0, 1.0" doc="The maximum output value." /> - <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> - <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> - <output name="out" type="vector2" /> - </nodedef> - <nodedef name="ND_randomvector_vector3_vector2" node="randomvector" nodegroup="procedural"> - <input name="in" type="vector3" uiname="Input" value="0.0, 0.0, 0.0" doc="Initial randomization seed." /> - <input name="min" type="vector2" uiname="Minimum" value="0.0, 0.0" doc="The minimum output value." /> - <input name="max" type="vector2" uiname="Maximum" value="1.0, 1.0" doc="The maximum output value." /> - <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> - <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> - <output name="out" type="vector2" /> - </nodedef> - <nodedef name="ND_randomvector_vector4_vector2" node="randomvector" nodegroup="procedural"> - <input name="in" type="vector4" uiname="Input" value="0.0, 0.0, 0.0, 0.0" doc="Initial randomization seed." /> - <input name="min" type="vector2" uiname="Minimum" value="0.0, 0.0" doc="The minimum output value." /> - <input name="max" type="vector2" uiname="Maximum" value="1.0, 1.0" doc="The maximum output value." /> - <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> - <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> - <output name="out" type="vector2" /> - </nodedef> - <nodedef name="ND_randomvector_float_vector3" node="randomvector" nodegroup="procedural"> <input name="in" type="float" uiname="Input" value="0.0" doc="Initial randomization seed." /> <input name="min" type="vector3" uiname="Minimum" value="0.0, 0.0, 0.0" doc="The minimum output value." /> @@ -1125,31 +1080,6 @@ <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> <output name="out" type="vector3" /> </nodedef> - <nodedef name="ND_randomvector_vector2_vector3" node="randomvector" nodegroup="procedural"> - <input name="in" type="vector2" uiname="Input" value="0.0, 0.0" doc="Initial randomization seed." /> - <input name="min" type="vector3" uiname="Minimum" value="0.0, 0.0, 0.0" doc="The minimum output value." /> - <input name="max" type="vector3" uiname="Maximum" value="1.0, 1.0, 1.0" doc="The maximum output value." /> - <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> - <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> - <output name="out" type="vector3" /> - </nodedef> - <nodedef name="ND_randomvector_vector3_vector3" node="randomvector" nodegroup="procedural"> - <input name="in" type="vector3" uiname="Input" value="0.0, 0.0, 0.0" doc="Initial randomization seed." /> - <input name="min" type="vector3" uiname="Minimum" value="0.0, 0.0, 0.0" doc="The minimum output value." /> - <input name="max" type="vector3" uiname="Maximum" value="1.0, 1.0, 1.0" doc="The maximum output value." /> - <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> - <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> - <output name="out" type="vector3" /> - </nodedef> - <nodedef name="ND_randomvector_vector4_vector3" node="randomvector" nodegroup="procedural"> - <input name="in" type="vector4" uiname="Minimum" value="0.0, 0.0, 0.0, 0.0" doc="The minimum output value." /> - <input name="min" type="vector3" uiname="Minimum" value="0.0, 0.0, 0.0" doc="The minimum output value." /> - <input name="max" type="vector3" uiname="Maximum" value="1.0, 1.0, 1.0" doc="The maximum output value." /> - <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> - <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> - <output name="out" type="vector3" /> - </nodedef> - <nodedef name="ND_randomvector_float_vector4" node="randomvector" nodegroup="procedural"> <input name="in" type="float" uiname="Input" value="0.0" doc="Initial randomization seed." /> <input name="min" type="vector4" uiname="Minimum" value="0.0, 0.0, 0.0, 0.0" doc="The minimum output value." /> @@ -1166,22 +1096,6 @@ <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> <output name="out" type="vector4" /> </nodedef> - <nodedef name="ND_randomvector_vector2_vector4" node="randomvector" nodegroup="procedural"> - <input name="in" type="vector2" uiname="Input" value="0.0, 0.0" doc="Initial randomization seed." /> - <input name="min" type="vector4" uiname="Minimum" value="0.0, 0.0, 0.0, 0.0" doc="The minimum output value." /> - <input name="max" type="vector4" uiname="Maximum" value="1.0, 1.0, 1.0, 1.0" doc="The maximum output value." /> - <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> - <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> - <output name="out" type="vector4" /> - </nodedef> - <nodedef name="ND_randomvector_vector3_vector4" node="randomvector" nodegroup="procedural"> - <input name="in" type="vector3" uiname="Input" value="0.0, 0.0, 0.0" doc="Initial randomization seed." /> - <input name="min" type="vector4" uiname="Minimum" value="0.0, 0.0, 0.0, 0.0" doc="The minimum output value." /> - <input name="max" type="vector4" uiname="Maximum" value="1.0, 1.0, 1.0, 1.0" doc="The maximum output value." /> - <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> - <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> - <output name="out" type="vector4" /> - </nodedef> <nodedef name="ND_randomvector_vector4_vector4" node="randomvector" nodegroup="procedural"> <input name="in" type="vector4" uiname="Input" value="0.0, 0.0, 0.0, 0.0" doc="Initial randomization seed." /> <input name="min" type="vector4" uiname="Minimum" value="0.0, 0.0, 0.0, 0.0" doc="The minimum output value." /> @@ -1191,11 +1105,10 @@ <output name="out" type="vector4" /> </nodedef> + <!-- Node: <randomcolor> - Produces a randomized color, based on an input signal and seed value. The input - is only used to generate the randomized color, even if the input signature is a - color or vector3. The output is an RGB color. + Produces a randomized RGB color, based on an 'input' signal and 'seed' value. --> <nodedef name="ND_randomcolor_float_color3" node="randomcolor" nodegroup="procedural3d"> <input name="in" type="float" uiname="Input" uisoftmin="0.0" uisoftmax="10.0" value="0.0" /> @@ -1219,94 +1132,6 @@ <input name="seed" type="float" uiname="Seed" value="0" /> <output name="out" type="color3" /> </nodedef> - <nodedef name="ND_randomcolor_color3_color3" node="randomcolor" nodegroup="procedural3d"> - <input name="in" type="color3" uiname="Input" uisoftmin="0" uisoftmax="10" value="0.0, 0.0, 0.0" /> - <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> - <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> - <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> - <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> - <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="seed" type="float" uiname="Seed" value="0" /> - <output name="out" type="color3" /> - </nodedef> - <nodedef name="ND_randomcolor_vector3_color3" node="randomcolor" nodegroup="procedural3d"> - <input name="in" type="vector3" uiname="Input" uisoftmin="0" uisoftmax="10" value="0.0, 0.0, 0.0" /> - <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> - <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> - <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> - <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> - <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="seed" type="float" uiname="Seed" value="0" /> - <output name="out" type="color3" /> - </nodedef> - <nodedef name="ND_randomcolor_vector2_color3" node="randomcolor" nodegroup="procedural3d"> - <input name="in" type="vector2" uiname="Input" uisoftmin="0" uisoftmax="10" value="0.0, 0.0" /> - <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> - <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> - <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> - <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> - <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="seed" type="float" uiname="Seed" value="0" /> - <output name="out" type="color3" /> - </nodedef> - <nodedef name="ND_randomcolor_float_color4" node="randomcolor" nodegroup="procedural3d"> - <input name="in" type="float" uiname="Input" uisoftmin="0.0" uisoftmax="10.0" value="0.0" /> - <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> - <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> - <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> - <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> - <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="seed" type="float" uiname="Seed" value="0" /> - <output name="out" type="color4" /> - </nodedef> - <nodedef name="ND_randomcolor_integer_color4" node="randomcolor" nodegroup="procedural3d"> - <input name="in" type="integer" uiname="Input" uisoftmin="0" uisoftmax="10" value="0" /> - <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> - <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> - <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> - <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> - <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="seed" type="float" uiname="Seed" value="0" /> - <output name="out" type="color4" /> - </nodedef> - <nodedef name="ND_randomcolor_color3_color4" node="randomcolor" nodegroup="procedural3d"> - <input name="in" type="color3" uiname="Input" uisoftmin="0" uisoftmax="10" value="0.0, 0.0, 0.0" /> - <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> - <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> - <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> - <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> - <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="seed" type="float" uiname="Seed" value="0" /> - <output name="out" type="color4" /> - </nodedef> - <nodedef name="ND_randomcolor_vector3_color4" node="randomcolor" nodegroup="procedural3d"> - <input name="in" type="vector3" uiname="Input" uisoftmin="0" uisoftmax="10" value="0.0, 0.0, 0.0" /> - <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> - <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> - <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> - <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> - <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="seed" type="float" uiname="Seed" value="0" /> - <output name="out" type="color4" /> - </nodedef> - <nodedef name="ND_randomcolor_vector2_color4" node="randomcolor" nodegroup="procedural3d"> - <input name="in" type="vector2" uiname="Input" uisoftmin="0" uisoftmax="10" value="0.0, 0.0" /> - <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> - <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> - <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> - <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> - <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="seed" type="float" uiname="Seed" value="0" /> - <output name="out" type="color4" /> - </nodedef> <!-- Node: <checkerboard> diff --git a/libraries/stdlib/stdlib_ng.mtlx b/libraries/stdlib/stdlib_ng.mtlx index c9b20ae3a6..1a845294e7 100644 --- a/libraries/stdlib/stdlib_ng.mtlx +++ b/libraries/stdlib/stdlib_ng.mtlx @@ -1200,181 +1200,22 @@ </randomfloat> <output name="out" type="float" nodename="N_randomfloat1" /> </nodegraph> - <nodegraph name="NG_randomfloat_color3" nodedef="ND_randomfloat_color3"> - <convert name="N_convert1" type="vector3"> - <input name="in" type="color3" interfacename="in" /> - </convert> - <magnitude name="N_magnitude1" type="float"> - <input name="in" type="vector3" nodename="N_convert1" /> - </magnitude> - <randomfloat name="N_randomfloat1" type="float"> - <input name="in" type="float" nodename="N_magnitude1" /> - <input name="seed" type="float" interfacename="seed" /> - </randomfloat> - <output name="out" type="float" nodename="N_randomfloat1" /> - </nodegraph> - <nodegraph name="NG_randomfloat_vector3" nodedef="ND_randomfloat_vector3"> - <magnitude name="N_magnitude1" type="float"> - <input name="in" type="vector3" interfacename="in" /> - </magnitude> - <randomfloat name="N_randomfloat1" type="float"> - <input name="in" type="float" nodename="N_magnitude1" /> - <input name="seed" type="float" interfacename="seed" /> - </randomfloat> - <output name="out" type="float" nodename="N_randomfloat1" /> - </nodegraph> - <nodegraph name="NG_randomfloat_vector2" nodedef="ND_randomfloat_vector2"> - <magnitude name="N_magnitude1" type="float"> - <input name="in" type="vector2" interfacename="in" /> - </magnitude> - <randomfloat name="N_randomfloat1" type="float"> - <input name="in" type="float" nodename="N_magnitude1" /> - <input name="seed" type="float" interfacename="seed" /> - </randomfloat> - <output name="out" type="float" nodename="N_randomfloat1" /> - </nodegraph> <!-- Node: <randomvector> Produces a randomized vector2, vector3, or vector4, based on an 'input' signal and 'seed' value. --> - <nodegraph name="NG_randomvector_vector4_vector4" nodedef="ND_randomvector_vector4_vector4"> - <range name="N_range" type="vector4"> - <input name="in" type="vector4" nodename="N_makeVector" /> - <input name="outlow" type="vector4" interfacename="min" /> - <input name="outhigh" type="vector4" interfacename="max" /> - <input name="doclamp" type="boolean" value="true" /> - </range> - <combine4 name="N_makeVector" type="vector4"> - <input name="in1" type="float" nodename="N_randX" /> - <input name="in2" type="float" nodename="N_randY" /> - <input name="in3" type="float" nodename="N_randZ" /> - <input name="in4" type="float" nodename="N_randW" /> - </combine4> - <randomfloat name="N_randX" type="float"> - <input name="in" type="float" nodename="N_addSeed" /> - <input name="seed" type="float" value="1.3712" /> - </randomfloat> - <add name="N_addSeed" type="float"> - <input name="in1" type="float" nodename="N_inputMagnitude" /> - <input name="in2" type="float" interfacename="seed" /> - </add> - <magnitude name="N_inputMagnitude" type="float"> - <input name="in" type="vector4" interfacename="in" /> - </magnitude> - <randomfloat name="N_randY" type="float"> - <input name="in" type="float" nodename="N_addSeed" /> - <input name="seed" type="float" value="29.544" /> - </randomfloat> - <randomfloat name="N_randZ" type="float"> - <input name="in" type="float" nodename="N_addSeed" /> - <input name="seed" type="float" value="78.046" /> - </randomfloat> - <randomfloat name="N_randW" type="float"> - <input name="in" type="float" nodename="N_addSeed" /> - <input name="seed" type="float" value="524.97" /> - </randomfloat> - <normalize name="N_normalize" type="vector4"> - <input name="in" type="vector4" nodename="N_range" /> - </normalize> - <convert name="N_convertNormalizeParm" type="float"> - <input name="in" type="boolean" interfacename="normalize" /> - </convert> - <switch name="N_normalizeOutput" type="vector4"> - <input name="in1" type="vector4" nodename="N_range" /> - <input name="in2" type="vector4" nodename="N_normalize" /> - <input name="which" type="float" nodename="N_convertNormalizeParm" /> - </switch> - <output name="out" type="vector4" nodename="N_normalizeOutput" /> - </nodegraph> - <nodegraph name="NG_randomvector_vector3_vector4" nodedef="ND_randomvector_vector3_vector4"> - <convert name="N_convert1" type="vector4"> - <input name="in" type="vector3" interfacename="in" /> - </convert> - <randomvector name="N_randomvector1" type="vector4"> - <input name="in" type="vector4" nodename="N_convert1" /> - <input name="min" type="vector4" interfacename="min" /> - <input name="max" type="vector4" interfacename="max" /> - <input name="seed" type="float" interfacename="seed" /> - <input name="normalize" type="boolean" interfacename="normalize" /> - </randomvector> - <output name="out" type="vector4" nodename="N_randomvector1" /> - </nodegraph> - <nodegraph name="NG_randomvector_vector2_vector4" nodedef="ND_randomvector_vector2_vector4"> - <swizzle name="N_convert1" type="vector4"> - <input name="in" type="vector2" interfacename="in" /> - <input name="channels" type="string" value="xyxy" /> - </swizzle> - <randomvector name="N_randomvector1" type="vector4"> - <input name="in" type="vector4" nodename="N_convert1" /> - <input name="min" type="vector4" interfacename="min" /> - <input name="max" type="vector4" interfacename="max" /> - <input name="seed" type="float" interfacename="seed" /> - <input name="normalize" type="boolean" interfacename="normalize" /> - </randomvector> - <output name="out" type="vector4" nodename="N_randomvector1" /> - </nodegraph> - <nodegraph name="NG_randomvector_float_vector4" nodedef="ND_randomvector_float_vector4"> - <convert name="N_convert1" type="vector4"> - <input name="in" type="float" interfacename="in" /> - </convert> - <randomvector name="N_randomvector1" type="vector4"> - <input name="in" type="vector4" nodename="N_convert1" /> - <input name="min" type="vector4" interfacename="min" /> - <input name="max" type="vector4" interfacename="max" /> - <input name="seed" type="float" interfacename="seed" /> - <input name="normalize" type="boolean" interfacename="normalize" /> - </randomvector> - <output name="out" type="vector4" nodename="N_randomvector1" /> - </nodegraph> - <nodegraph name="NG_randomvector_integer_vector4" nodedef="ND_randomvector_integer_vector4"> - <convert name="N_convert1" type="float"> - <input name="in" type="integer" interfacename="in" /> - </convert> - <convert name="N_convert2" type="vector4"> - <input name="in" type="float" nodename="N_convert1" /> - </convert> - <randomvector name="N_randomvector1" type="vector4"> - <input name="in" type="vector4" nodename="N_convert2" /> - <input name="min" type="vector4" interfacename="min" /> - <input name="max" type="vector4" interfacename="max" /> - <input name="seed" type="float" interfacename="seed" /> - <input name="normalize" type="boolean" interfacename="normalize" /> - </randomvector> - <output name="out" type="vector4" nodename="N_randomvector1" /> - </nodegraph> - <nodegraph name="NG_randomvector_vector4_vector3" nodedef="ND_randomvector_vector4_vector3"> - <swizzle name="N_swizzeMin" type="vector4"> - <input name="in" type="vector3" interfacename="min" /> - <input name="channels" type="string" value="xyzx" /> - </swizzle> - <swizzle name="N_swizzeMax" type="vector4"> - <input name="in" type="vector3" interfacename="max" /> - <input name="channels" type="string" value="xyzx" /> - </swizzle> - <randomvector name="N_randomvector1" type="vector4"> - <input name="in" type="vector4" interfacename="in" /> - <input name="min" type="vector4" nodename="N_swizzeMin" /> - <input name="max" type="vector4" nodename="N_swizzeMax" /> - <input name="seed" type="float" interfacename="seed" /> - <input name="normalize" type="boolean" interfacename="normalize" /> - </randomvector> - <convert name="N_convert1" type="vector3"> - <input name="in" type="vector4" nodename="N_randomvector1" /> - </convert> - <output name="out" type="vector3" nodename="N_convert1" /> - </nodegraph> - <nodegraph name="NG_randomvector_vector3_vector3" nodedef="ND_randomvector_vector3_vector3"> + <nodegraph name="NG_randomvector_float_vector2" nodedef="ND_randomvector_float_vector2"> <swizzle name="N_swizzeMin" type="vector4"> - <input name="in" type="vector3" interfacename="min" /> - <input name="channels" type="string" value="xyzx" /> + <input name="in" type="vector2" interfacename="min" /> + <input name="channels" type="string" value="xyxy" /> </swizzle> <swizzle name="N_swizzeMax" type="vector4"> - <input name="in" type="vector3" interfacename="max" /> - <input name="channels" type="string" value="xyzx" /> + <input name="in" type="vector2" interfacename="max" /> + <input name="channels" type="string" value="xyxy" /> </swizzle> <convert name="N_convert1" type="vector4"> - <input name="in" type="vector3" interfacename="in" /> + <input name="in" type="float" interfacename="in" /> </convert> <randomvector name="N_randomvector1" type="vector4"> <input name="in" type="vector4" nodename="N_convert1" /> @@ -1386,32 +1227,40 @@ <convert name="N_convert2" type="vector3"> <input name="in" type="vector4" nodename="N_randomvector1" /> </convert> - <output name="out" type="vector3" nodename="N_convert2" /> + <convert name="N_convert5" type="vector2"> + <input name="in" type="vector3" nodename="N_convert2" /> + </convert> + <output name="out" type="vector2" nodename="N_convert5" /> </nodegraph> - <nodegraph name="NG_randomvector_vector2_vector3" nodedef="ND_randomvector_vector2_vector3"> + <nodegraph name="NG_randomvector_integer_vector2" nodedef="ND_randomvector_integer_vector2"> <swizzle name="N_swizzeMin" type="vector4"> - <input name="in" type="vector3" interfacename="min" /> - <input name="channels" type="string" value="xyzx" /> + <input name="in" type="vector2" interfacename="min" /> + <input name="channels" type="string" value="xyxy" /> </swizzle> <swizzle name="N_swizzeMax" type="vector4"> - <input name="in" type="vector3" interfacename="max" /> - <input name="channels" type="string" value="xyzx" /> - </swizzle> - <swizzle name="N_convert1" type="vector4"> - <input name="in" type="vector2" interfacename="in" /> + <input name="in" type="vector2" interfacename="max" /> <input name="channels" type="string" value="xyxy" /> </swizzle> + <convert name="N_convert1" type="float"> + <input name="in" type="integer" interfacename="in" /> + </convert> + <convert name="N_convert2" type="vector4"> + <input name="in" type="float" nodename="N_convert1" /> + </convert> <randomvector name="N_randomvector1" type="vector4"> - <input name="in" type="vector4" nodename="N_convert1" /> + <input name="in" type="vector4" nodename="N_convert2" /> <input name="min" type="vector4" nodename="N_swizzeMin" /> <input name="max" type="vector4" nodename="N_swizzeMax" /> <input name="seed" type="float" interfacename="seed" /> <input name="normalize" type="boolean" interfacename="normalize" /> </randomvector> - <convert name="N_convert2" type="vector3"> + <convert name="N_convert3" type="vector3"> <input name="in" type="vector4" nodename="N_randomvector1" /> </convert> - <output name="out" type="vector3" nodename="N_convert2" /> + <convert name="N_convert5" type="vector2"> + <input name="in" type="vector3" nodename="N_convert3" /> + </convert> + <output name="out" type="vector2" nodename="N_convert5" /> </nodegraph> <nodegraph name="NG_randomvector_float_vector3" nodedef="ND_randomvector_float_vector3"> <swizzle name="N_swizzeMin" type="vector4"> @@ -1464,122 +1313,21 @@ </convert> <output name="out" type="vector3" nodename="N_convert3" /> </nodegraph> - <nodegraph name="NG_randomvector_vector4_vector2" nodedef="ND_randomvector_vector4_vector2"> - <swizzle name="N_swizzeMin" type="vector4"> - <input name="in" type="vector2" interfacename="min" /> - <input name="channels" type="string" value="xyxy" /> - </swizzle> - <swizzle name="N_swizzeMax" type="vector4"> - <input name="in" type="vector2" interfacename="max" /> - <input name="channels" type="string" value="xyxy" /> - </swizzle> - <randomvector name="N_randomvector1" type="vector4"> - <input name="in" type="vector4" interfacename="in" /> - <input name="min" type="vector4" nodename="N_swizzeMin" /> - <input name="max" type="vector4" nodename="N_swizzeMax" /> - <input name="seed" type="float" interfacename="seed" /> - <input name="normalize" type="boolean" interfacename="normalize" /> - </randomvector> - <convert name="N_convert1" type="vector3"> - <input name="in" type="vector4" nodename="N_randomvector1" /> - </convert> - <convert name="N_convert5" type="vector2"> - <input name="in" type="vector3" nodename="N_convert1" /> - </convert> - <output name="out" type="vector2" nodename="N_convert5" /> - </nodegraph> - <nodegraph name="NG_randomvector_vector3_vector2" nodedef="ND_randomvector_vector3_vector2"> - <swizzle name="N_swizzeMin" type="vector4"> - <input name="in" type="vector2" interfacename="min" /> - <input name="channels" type="string" value="xyxy" /> - </swizzle> - <swizzle name="N_swizzeMax" type="vector4"> - <input name="in" type="vector2" interfacename="max" /> - <input name="channels" type="string" value="xyxy" /> - </swizzle> - <convert name="N_convert1" type="vector4"> - <input name="in" type="vector3" interfacename="in" /> - </convert> - <randomvector name="N_randomvector1" type="vector4"> - <input name="in" type="vector4" nodename="N_convert1" /> - <input name="min" type="vector4" nodename="N_swizzeMin" /> - <input name="max" type="vector4" nodename="N_swizzeMax" /> - <input name="seed" type="float" interfacename="seed" /> - <input name="normalize" type="boolean" interfacename="normalize" /> - </randomvector> - <convert name="N_convert2" type="vector3"> - <input name="in" type="vector4" nodename="N_randomvector1" /> - </convert> - <convert name="N_convert5" type="vector2"> - <input name="in" type="vector3" nodename="N_convert2" /> - </convert> - <output name="out" type="vector2" nodename="N_convert5" /> - </nodegraph> - <nodegraph name="NG_randomvector_vector2_vector2" nodedef="ND_randomvector_vector2_vector2"> - <swizzle name="N_swizzeMin" type="vector4"> - <input name="in" type="vector2" interfacename="min" /> - <input name="channels" type="string" value="xyxy" /> - </swizzle> - <swizzle name="N_swizzeMax" type="vector4"> - <input name="in" type="vector2" interfacename="max" /> - <input name="channels" type="string" value="xyxy" /> - </swizzle> - <swizzle name="N_convert1" type="vector4"> - <input name="in" type="vector2" interfacename="in" /> - <input name="channels" type="string" value="xyxy" /> - </swizzle> - <randomvector name="N_randomvector1" type="vector4"> - <input name="in" type="vector4" nodename="N_convert1" /> - <input name="min" type="vector4" nodename="N_swizzeMin" /> - <input name="max" type="vector4" nodename="N_swizzeMax" /> - <input name="seed" type="float" interfacename="seed" /> - <input name="normalize" type="boolean" interfacename="normalize" /> - </randomvector> - <convert name="N_convert2" type="vector3"> - <input name="in" type="vector4" nodename="N_randomvector1" /> - </convert> - <convert name="N_convert5" type="vector2"> - <input name="in" type="vector3" nodename="N_convert2" /> - </convert> - <output name="out" type="vector2" nodename="N_convert5" /> - </nodegraph> - <nodegraph name="NG_randomvector_float_vector2" nodedef="ND_randomvector_float_vector2"> - <swizzle name="N_swizzeMin" type="vector4"> - <input name="in" type="vector2" interfacename="min" /> - <input name="channels" type="string" value="xyxy" /> - </swizzle> - <swizzle name="N_swizzeMax" type="vector4"> - <input name="in" type="vector2" interfacename="max" /> - <input name="channels" type="string" value="xyxy" /> - </swizzle> + <nodegraph name="NG_randomvector_float_vector4" nodedef="ND_randomvector_float_vector4"> <convert name="N_convert1" type="vector4"> <input name="in" type="float" interfacename="in" /> </convert> <randomvector name="N_randomvector1" type="vector4"> <input name="in" type="vector4" nodename="N_convert1" /> - <input name="min" type="vector4" nodename="N_swizzeMin" /> - <input name="max" type="vector4" nodename="N_swizzeMax" /> + <input name="min" type="vector4" interfacename="min" /> + <input name="max" type="vector4" interfacename="max" /> <input name="seed" type="float" interfacename="seed" /> <input name="normalize" type="boolean" interfacename="normalize" /> </randomvector> - <convert name="N_convert2" type="vector3"> - <input name="in" type="vector4" nodename="N_randomvector1" /> - </convert> - <convert name="N_convert5" type="vector2"> - <input name="in" type="vector3" nodename="N_convert2" /> - </convert> - <output name="out" type="vector2" nodename="N_convert5" /> + <output name="out" type="vector4" nodename="N_randomvector1" /> </nodegraph> - <nodegraph name="NG_randomvector_integer_vector2" nodedef="ND_randomvector_integer_vector2"> - <swizzle name="N_swizzeMin" type="vector4"> - <input name="in" type="vector2" interfacename="min" /> - <input name="channels" type="string" value="xyxy" /> - </swizzle> - <swizzle name="N_swizzeMax" type="vector4"> - <input name="in" type="vector2" interfacename="max" /> - <input name="channels" type="string" value="xyxy" /> - </swizzle> - <convert name="N_convert1" type="float"> + <nodegraph name="NG_randomvector_integer_vector4" nodedef="ND_randomvector_integer_vector4"> + <convert name="N_convert1" type="float"> <input name="in" type="integer" interfacename="in" /> </convert> <convert name="N_convert2" type="vector4"> @@ -1587,18 +1335,61 @@ </convert> <randomvector name="N_randomvector1" type="vector4"> <input name="in" type="vector4" nodename="N_convert2" /> - <input name="min" type="vector4" nodename="N_swizzeMin" /> - <input name="max" type="vector4" nodename="N_swizzeMax" /> + <input name="min" type="vector4" interfacename="min" /> + <input name="max" type="vector4" interfacename="max" /> <input name="seed" type="float" interfacename="seed" /> <input name="normalize" type="boolean" interfacename="normalize" /> </randomvector> - <convert name="N_convert3" type="vector3"> - <input name="in" type="vector4" nodename="N_randomvector1" /> - </convert> - <convert name="N_convert5" type="vector2"> - <input name="in" type="vector3" nodename="N_convert3" /> + <output name="out" type="vector4" nodename="N_randomvector1" /> + </nodegraph> + <nodegraph name="NG_randomvector_vector4_vector4" nodedef="ND_randomvector_vector4_vector4"> + <range name="N_range" type="vector4"> + <input name="in" type="vector4" nodename="N_makeVector" /> + <input name="outlow" type="vector4" interfacename="min" /> + <input name="outhigh" type="vector4" interfacename="max" /> + <input name="doclamp" type="boolean" value="true" /> + </range> + <combine4 name="N_makeVector" type="vector4"> + <input name="in1" type="float" nodename="N_randX" /> + <input name="in2" type="float" nodename="N_randY" /> + <input name="in3" type="float" nodename="N_randZ" /> + <input name="in4" type="float" nodename="N_randW" /> + </combine4> + <randomfloat name="N_randX" type="float"> + <input name="in" type="float" nodename="N_addSeed" /> + <input name="seed" type="float" value="1.3712" /> + </randomfloat> + <add name="N_addSeed" type="float"> + <input name="in1" type="float" nodename="N_inputMagnitude" /> + <input name="in2" type="float" interfacename="seed" /> + </add> + <magnitude name="N_inputMagnitude" type="float"> + <input name="in" type="vector4" interfacename="in" /> + </magnitude> + <randomfloat name="N_randY" type="float"> + <input name="in" type="float" nodename="N_addSeed" /> + <input name="seed" type="float" value="29.544" /> + </randomfloat> + <randomfloat name="N_randZ" type="float"> + <input name="in" type="float" nodename="N_addSeed" /> + <input name="seed" type="float" value="78.046" /> + </randomfloat> + <randomfloat name="N_randW" type="float"> + <input name="in" type="float" nodename="N_addSeed" /> + <input name="seed" type="float" value="524.97" /> + </randomfloat> + <normalize name="N_normalize" type="vector4"> + <input name="in" type="vector4" nodename="N_range" /> + </normalize> + <convert name="N_convertNormalizeParm" type="float"> + <input name="in" type="boolean" interfacename="normalize" /> </convert> - <output name="out" type="vector2" nodename="N_convert5" /> + <switch name="N_normalizeOutput" type="vector4"> + <input name="in1" type="vector4" nodename="N_range" /> + <input name="in2" type="vector4" nodename="N_normalize" /> + <input name="which" type="float" nodename="N_convertNormalizeParm" /> + </switch> + <output name="out" type="vector4" nodename="N_normalizeOutput" /> </nodegraph> <!-- @@ -1692,202 +1483,6 @@ </randomcolor> <output name="out" type="color3" nodename="N_randomcolor1" /> </nodegraph> - <nodegraph name="NG_randomcolor_color3_color3" nodedef="ND_randomcolor_color3_color3"> - <convert name="N_convert1" type="vector3"> - <input name="in" type="color3" interfacename="in" /> - </convert> - <magnitude name="N_magnitude1" type="float"> - <input name="in" type="vector3" nodename="N_convert1" /> - </magnitude> - <randomcolor name="N_randomcolor1" type="color3"> - <input name="in" type="float" nodename="N_magnitude1" /> - <input name="huelow" type="float" interfacename="huelow" /> - <input name="huehigh" type="float" interfacename="huehigh" /> - <input name="saturationlow" type="float" interfacename="saturationlow" /> - <input name="saturationhigh" type="float" interfacename="saturationhigh" /> - <input name="gammalow" type="float" interfacename="gammalow" /> - <input name="gammahigh" type="float" interfacename="gammahigh" /> - <input name="seed" type="float" interfacename="seed" /> - </randomcolor> - <output name="out" type="color3" nodename="N_randomcolor1" /> - </nodegraph> - <nodegraph name="NG_randomcolor_vector3_color3" nodedef="ND_randomcolor_vector3_color3"> - <magnitude name="N_magnitude1" type="float"> - <input name="in" type="vector3" interfacename="in" /> - </magnitude> - <randomcolor name="N_randomcolor1" type="color3"> - <input name="in" type="float" nodename="N_magnitude1" /> - <input name="huelow" type="float" interfacename="huelow" /> - <input name="huehigh" type="float" interfacename="huehigh" /> - <input name="saturationlow" type="float" interfacename="saturationlow" /> - <input name="saturationhigh" type="float" interfacename="saturationhigh" /> - <input name="gammalow" type="float" interfacename="gammalow" /> - <input name="gammahigh" type="float" interfacename="gammahigh" /> - <input name="seed" type="float" interfacename="seed" /> - </randomcolor> - <output name="out" type="color3" nodename="N_randomcolor1" /> - </nodegraph> - <nodegraph name="NG_randomcolor_vector2_color3" nodedef="ND_randomcolor_vector2_color3"> - <magnitude name="N_magnitude1" type="float"> - <input name="in" type="vector2" interfacename="in" /> - </magnitude> - <randomcolor name="N_randomcolor1" type="color3"> - <input name="in" type="float" nodename="N_magnitude1" /> - <input name="huelow" type="float" interfacename="huelow" /> - <input name="huehigh" type="float" interfacename="huehigh" /> - <input name="saturationlow" type="float" interfacename="saturationlow" /> - <input name="saturationhigh" type="float" interfacename="saturationhigh" /> - <input name="gammalow" type="float" interfacename="gammalow" /> - <input name="gammahigh" type="float" interfacename="gammahigh" /> - <input name="seed" type="float" interfacename="seed" /> - </randomcolor> - <output name="out" type="color3" nodename="N_randomcolor1" /> - </nodegraph> - <nodegraph name="NG_randomcolor_float_color4" nodedef="ND_randomcolor_float_color4"> - <randomcolor name="N_randomcolor1" type="color3"> - <input name="in" type="float" interfacename="in" /> - <input name="huelow" type="float" interfacename="huelow" /> - <input name="huehigh" type="float" interfacename="huehigh" /> - <input name="saturationlow" type="float" interfacename="saturationlow" /> - <input name="saturationhigh" type="float" interfacename="saturationhigh" /> - <input name="gammalow" type="float" interfacename="gammalow" /> - <input name="gammahigh" type="float" interfacename="gammahigh" /> - <input name="seed" type="float" interfacename="seed" /> - </randomcolor> - <randomfloat name="N_randomfloat2" type="float"> - <input name="in" type="float" interfacename="in" /> - <input name="seed" type="float" interfacename="seed" /> - </randomfloat> - <separate3 name="N_splitColor" type="multioutput"> - <input name="in" type="color3" nodename="N_randomcolor1" /> - </separate3> - <combine4 name="N_combine_color" type="color4"> - <input name="in1" type="float" nodename="N_splitColor" output="outr" /> - <input name="in2" type="float" nodename="N_splitColor" output="outg" /> - <input name="in3" type="float" nodename="N_splitColor" output="outb" /> - <input name="in4" type="float" nodename="N_randomfloat2" /> - </combine4> - <output name="out" type="color4" nodename="N_combine_color" /> - </nodegraph> - <nodegraph name="NG_randomcolor_integer_color4" nodedef="ND_randomcolor_integer_color4"> - <convert name="N_convert1" type="float"> - <input name="in" type="integer" interfacename="in" /> - </convert> - <randomcolor name="N_randomcolor1" type="color3"> - <input name="in" type="float" nodename="N_convert1" /> - <input name="huelow" type="float" interfacename="huelow" /> - <input name="huehigh" type="float" interfacename="huehigh" /> - <input name="saturationlow" type="float" interfacename="saturationlow" /> - <input name="saturationhigh" type="float" interfacename="saturationhigh" /> - <input name="gammalow" type="float" interfacename="gammalow" /> - <input name="gammahigh" type="float" interfacename="gammahigh" /> - <input name="seed" type="float" interfacename="seed" /> - </randomcolor> - <randomfloat name="N_randomfloat2" type="float"> - <input name="in" type="float" nodename="N_convert1" /> - <input name="seed" type="float" interfacename="seed" /> - </randomfloat> - <separate3 name="N_splitColor" type="multioutput"> - <input name="in" type="color3" nodename="N_randomcolor1" /> - </separate3> - <combine4 name="N_combine_color" type="color4"> - <input name="in1" type="float" nodename="N_splitColor" output="outr" /> - <input name="in2" type="float" nodename="N_splitColor" output="outg" /> - <input name="in3" type="float" nodename="N_splitColor" output="outb" /> - <input name="in4" type="float" nodename="N_randomfloat2" /> - </combine4> - <output name="out" type="color4" nodename="N_combine_color" /> - </nodegraph> - <nodegraph name="NG_randomcolor_color3_color4" nodedef="ND_randomcolor_color3_color4"> - <convert name="N_convert1" type="vector3"> - <input name="in" type="color3" interfacename="in" /> - </convert> - <magnitude name="N_magnitude1" type="float"> - <input name="in" type="vector3" nodename="N_convert1" /> - </magnitude> - <randomcolor name="N_randomcolor1" type="color3"> - <input name="in" type="float" nodename="N_magnitude1" /> - <input name="huelow" type="float" interfacename="huelow" /> - <input name="huehigh" type="float" interfacename="huehigh" /> - <input name="saturationlow" type="float" interfacename="saturationlow" /> - <input name="saturationhigh" type="float" interfacename="saturationhigh" /> - <input name="gammalow" type="float" interfacename="gammalow" /> - <input name="gammahigh" type="float" interfacename="gammahigh" /> - <input name="seed" type="float" interfacename="seed" /> - </randomcolor> - <randomfloat name="N_randomfloat2" type="float"> - <input name="in" type="float" nodename="N_magnitude1" /> - <input name="seed" type="float" interfacename="seed" /> - </randomfloat> - <separate3 name="N_splitColor" type="multioutput"> - <input name="in" type="color3" nodename="N_randomcolor1" /> - </separate3> - <combine4 name="N_combine_color" type="color4"> - <input name="in1" type="float" nodename="N_splitColor" output="outr" /> - <input name="in2" type="float" nodename="N_splitColor" output="outg" /> - <input name="in3" type="float" nodename="N_splitColor" output="outb" /> - <input name="in4" type="float" nodename="N_randomfloat2" /> - </combine4> - <output name="out" type="color4" nodename="N_combine_color" /> - </nodegraph> - <nodegraph name="NG_randomcolor_vector3_color4" nodedef="ND_randomcolor_vector3_color4"> - <magnitude name="N_magnitude1" type="float"> - <input name="in" type="vector3" interfacename="in" /> - </magnitude> - <randomcolor name="N_randomcolor1" type="color3"> - <input name="in" type="float" nodename="N_magnitude1" /> - <input name="huelow" type="float" interfacename="huelow" /> - <input name="huehigh" type="float" interfacename="huehigh" /> - <input name="saturationlow" type="float" interfacename="saturationlow" /> - <input name="saturationhigh" type="float" interfacename="saturationhigh" /> - <input name="gammalow" type="float" interfacename="gammalow" /> - <input name="gammahigh" type="float" interfacename="gammahigh" /> - <input name="seed" type="float" interfacename="seed" /> - </randomcolor> - <randomfloat name="N_randomfloat2" type="float"> - <input name="in" type="vector3" interfacename="in" /> - <input name="seed" type="float" interfacename="seed" /> - </randomfloat> - <separate3 name="N_splitColor" type="multioutput"> - <input name="in" type="color3" nodename="N_randomcolor1" /> - </separate3> - <combine4 name="N_combine_color" type="color4"> - <input name="in1" type="float" nodename="N_splitColor" output="outr" /> - <input name="in2" type="float" nodename="N_splitColor" output="outg" /> - <input name="in3" type="float" nodename="N_splitColor" output="outb" /> - <input name="in4" type="float" nodename="N_randomfloat2" /> - </combine4> - <output name="out" type="color4" nodename="N_combine_color" /> - </nodegraph> - <nodegraph name="NG_randomcolor_vector2_color4" nodedef="ND_randomcolor_vector2_color4"> - <magnitude name="N_magnitude1" type="float"> - <input name="in" type="vector2" interfacename="in" /> - </magnitude> - <randomcolor name="N_randomcolor1" type="color3"> - <input name="in" type="float" nodename="N_magnitude1" /> - <input name="huelow" type="float" interfacename="huelow" /> - <input name="huehigh" type="float" interfacename="huehigh" /> - <input name="saturationlow" type="float" interfacename="saturationlow" /> - <input name="saturationhigh" type="float" interfacename="saturationhigh" /> - <input name="gammalow" type="float" interfacename="gammalow" /> - <input name="gammahigh" type="float" interfacename="gammahigh" /> - <input name="seed" type="float" interfacename="seed" /> - </randomcolor> - <randomfloat name="N_randomfloat2" type="float"> - <input name="in" type="vector2" interfacename="in" /> - <input name="seed" type="float" interfacename="seed" /> - </randomfloat> - <separate3 name="N_splitColor" type="multioutput"> - <input name="in" type="color3" nodename="N_randomcolor1" /> - </separate3> - <combine4 name="N_combine_color" type="color4"> - <input name="in1" type="float" nodename="N_splitColor" output="outr" /> - <input name="in2" type="float" nodename="N_splitColor" output="outg" /> - <input name="in3" type="float" nodename="N_splitColor" output="outb" /> - <input name="in4" type="float" nodename="N_randomfloat2" /> - </combine4> - <output name="out" type="color4" nodename="N_combine_color" /> - </nodegraph> <!-- <checkerboard> From a9fa8f3d1e2ea61b0337822d4a3ddb20768737c7 Mon Sep 17 00:00:00 2001 From: Jonathan Stone <jstone@lucasfilm.com> Date: Wed, 24 May 2023 16:02:11 -0700 Subject: [PATCH 07/14] Minor newline fixes --- libraries/stdlib/stdlib_defs.mtlx | 2 -- 1 file changed, 2 deletions(-) diff --git a/libraries/stdlib/stdlib_defs.mtlx b/libraries/stdlib/stdlib_defs.mtlx index 7d40b0c460..2010ab7e43 100644 --- a/libraries/stdlib/stdlib_defs.mtlx +++ b/libraries/stdlib/stdlib_defs.mtlx @@ -1047,7 +1047,6 @@ Node: <randomvector> Produces a randomized vector2, vector3, or vector4, based on an 'input' signal and 'seed' value. --> - <nodedef name="ND_randomvector_float_vector2" node="randomvector" nodegroup="procedural"> <input name="in" type="float" uiname="Input" value="0.0" doc="Initial randomization seed." /> <input name="min" type="vector2" uiname="Minimum" value="0.0, 0.0" doc="The minimum output value." /> @@ -1105,7 +1104,6 @@ <output name="out" type="vector4" /> </nodedef> - <!-- Node: <randomcolor> Produces a randomized RGB color, based on an 'input' signal and 'seed' value. From 0ee0d8edd955abf0d5f76efc4cdd7d5d052f49c6 Mon Sep 17 00:00:00 2001 From: Jonathan Stone <jstone@lucasfilm.com> Date: Wed, 24 May 2023 16:49:46 -0700 Subject: [PATCH 08/14] List nodes in processing order --- libraries/stdlib/stdlib_ng.mtlx | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/libraries/stdlib/stdlib_ng.mtlx b/libraries/stdlib/stdlib_ng.mtlx index 0a6369f01e..b4c80ff62b 100644 --- a/libraries/stdlib/stdlib_ng.mtlx +++ b/libraries/stdlib/stdlib_ng.mtlx @@ -1165,21 +1165,21 @@ Produces a randomized float, based on an 'input' signal and 'seed' value. --> <nodegraph name="NG_randomfloat_float" nodedef="ND_randomfloat_float"> - <cellnoise2d name="N_cellnoise_1" type="float"> - <input name="texcoord" type="vector2" nodename="N_combine2" /> - </cellnoise2d> - <combine2 name="N_combine2" type="vector2"> - <input name="in1" type="float" nodename="N_subtract1" /> - <input name="in2" type="float" nodename="N_offset_seed" /> - </combine2> - <subtract name="N_subtract1" type="float"> - <input name="in1" type="float" interfacename="in" /> - <input name="in2" type="float" nodename="N_offset_seed" /> - </subtract> <multiply name="N_offset_seed" type="float"> <input name="in1" type="float" interfacename="seed" value="0" /> <input name="in2" type="float" value="43758.5" /> </multiply> + <subtract name="N_subtract1" type="float"> + <input name="in1" type="float" interfacename="in" /> + <input name="in2" type="float" nodename="N_offset_seed" /> + </subtract> + <combine2 name="N_combine2" type="vector2"> + <input name="in1" type="float" nodename="N_subtract1" /> + <input name="in2" type="float" nodename="N_offset_seed" /> + </combine2> + <cellnoise2d name="N_cellnoise_1" type="float"> + <input name="texcoord" type="vector2" nodename="N_combine2" /> + </cellnoise2d> <range name="N_remapRange" type="float"> <input name="in" type="float" nodename="N_cellnoise_1" /> <input name="inlow" type="float" value="0" /> @@ -1191,13 +1191,13 @@ <output name="out" type="float" nodename="N_cellnoise_1" /> </nodegraph> <nodegraph name="NG_randomfloat_integer" nodedef="ND_randomfloat_integer"> - <convert name="N_convert1" type="float"> - <input name="in" type="integer" interfacename="in" /> - </convert> <randomfloat name="N_randomfloat1" type="float"> <input name="in" type="float" nodename="N_convert1" /> <input name="seed" type="float" interfacename="seed" /> </randomfloat> + <convert name="N_convert1" type="float"> + <input name="in" type="integer" interfacename="in" /> + </convert> <output name="out" type="float" nodename="N_randomfloat1" /> </nodegraph> From 83bb66ab3196f960a2a690162e64c24f30cdc035 Mon Sep 17 00:00:00 2001 From: Jonathan Stone <jstone@lucasfilm.com> Date: Wed, 24 May 2023 16:51:11 -0700 Subject: [PATCH 09/14] Remove duplicate binding --- libraries/stdlib/stdlib_ng.mtlx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/stdlib/stdlib_ng.mtlx b/libraries/stdlib/stdlib_ng.mtlx index b4c80ff62b..18e95696c9 100644 --- a/libraries/stdlib/stdlib_ng.mtlx +++ b/libraries/stdlib/stdlib_ng.mtlx @@ -1166,7 +1166,7 @@ --> <nodegraph name="NG_randomfloat_float" nodedef="ND_randomfloat_float"> <multiply name="N_offset_seed" type="float"> - <input name="in1" type="float" interfacename="seed" value="0" /> + <input name="in1" type="float" interfacename="seed" /> <input name="in2" type="float" value="43758.5" /> </multiply> <subtract name="N_subtract1" type="float"> From b1ea6fc87d69d1491ad64cec91797cb0aebb84cd Mon Sep 17 00:00:00 2001 From: Jonathan Stone <jstone@lucasfilm.com> Date: Wed, 24 May 2023 16:53:05 -0700 Subject: [PATCH 10/14] Remove inputs at defaults --- libraries/stdlib/stdlib_ng.mtlx | 2 -- 1 file changed, 2 deletions(-) diff --git a/libraries/stdlib/stdlib_ng.mtlx b/libraries/stdlib/stdlib_ng.mtlx index 18e95696c9..aa00ef88d9 100644 --- a/libraries/stdlib/stdlib_ng.mtlx +++ b/libraries/stdlib/stdlib_ng.mtlx @@ -1182,8 +1182,6 @@ </cellnoise2d> <range name="N_remapRange" type="float"> <input name="in" type="float" nodename="N_cellnoise_1" /> - <input name="inlow" type="float" value="0" /> - <input name="inhigh" type="float" value="1" /> <input name="outlow" type="float" interfacename="min" /> <input name="outhigh" type="float" interfacename="max" /> <input name="doclamp" type="boolean" value="true" /> From b7cc021c4ba6bcc5368575b72e83292576e18b27 Mon Sep 17 00:00:00 2001 From: Jonathan Stone <jstone@lucasfilm.com> Date: Wed, 24 May 2023 17:55:00 -0700 Subject: [PATCH 11/14] Order nodes for clarity --- libraries/stdlib/stdlib_ng.mtlx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/stdlib/stdlib_ng.mtlx b/libraries/stdlib/stdlib_ng.mtlx index aa00ef88d9..f4fa0b9f50 100644 --- a/libraries/stdlib/stdlib_ng.mtlx +++ b/libraries/stdlib/stdlib_ng.mtlx @@ -1189,13 +1189,13 @@ <output name="out" type="float" nodename="N_cellnoise_1" /> </nodegraph> <nodegraph name="NG_randomfloat_integer" nodedef="ND_randomfloat_integer"> + <convert name="N_convert1" type="float"> + <input name="in" type="integer" interfacename="in" /> + </convert> <randomfloat name="N_randomfloat1" type="float"> <input name="in" type="float" nodename="N_convert1" /> <input name="seed" type="float" interfacename="seed" /> </randomfloat> - <convert name="N_convert1" type="float"> - <input name="in" type="integer" interfacename="in" /> - </convert> <output name="out" type="float" nodename="N_randomfloat1" /> </nodegraph> From c62a18f0b7c77fc1a02f248f2799995ed2f82b12 Mon Sep 17 00:00:00 2001 From: Chris Rydalch <crydalch@gmail.com> Date: Wed, 24 May 2023 21:24:52 -0500 Subject: [PATCH 12/14] Fixed some min/max output issues in randomfloat. --- libraries/stdlib/stdlib_ng.mtlx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libraries/stdlib/stdlib_ng.mtlx b/libraries/stdlib/stdlib_ng.mtlx index f4fa0b9f50..cd61808469 100644 --- a/libraries/stdlib/stdlib_ng.mtlx +++ b/libraries/stdlib/stdlib_ng.mtlx @@ -1186,7 +1186,7 @@ <input name="outhigh" type="float" interfacename="max" /> <input name="doclamp" type="boolean" value="true" /> </range> - <output name="out" type="float" nodename="N_cellnoise_1" /> + <output name="out" type="float" nodename="N_remapRange" /> </nodegraph> <nodegraph name="NG_randomfloat_integer" nodedef="ND_randomfloat_integer"> <convert name="N_convert1" type="float"> @@ -1194,6 +1194,8 @@ </convert> <randomfloat name="N_randomfloat1" type="float"> <input name="in" type="float" nodename="N_convert1" /> + <input name="min" type="float" interfacename="min" /> + <input name="max" type="float" interfacename="max" /> <input name="seed" type="float" interfacename="seed" /> </randomfloat> <output name="out" type="float" nodename="N_randomfloat1" /> From dd4937c38454941ec0c8d69ca48f140321bc6203 Mon Sep 17 00:00:00 2001 From: Chris Rydalch <crydalch@gmail.com> Date: Thu, 25 May 2023 18:26:20 -0500 Subject: [PATCH 13/14] Re-implement randomvector using randomfloat. --- libraries/stdlib/stdlib_defs.mtlx | 8 - libraries/stdlib/stdlib_ng.mtlx | 286 ++++++++++++++++-------------- 2 files changed, 152 insertions(+), 142 deletions(-) diff --git a/libraries/stdlib/stdlib_defs.mtlx b/libraries/stdlib/stdlib_defs.mtlx index cde4229f81..54f9bb3d8b 100644 --- a/libraries/stdlib/stdlib_defs.mtlx +++ b/libraries/stdlib/stdlib_defs.mtlx @@ -1095,14 +1095,6 @@ <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> <output name="out" type="vector4" /> </nodedef> - <nodedef name="ND_randomvector_vector4_vector4" node="randomvector" nodegroup="procedural"> - <input name="in" type="vector4" uiname="Input" value="0.0, 0.0, 0.0, 0.0" doc="Initial randomization seed." /> - <input name="min" type="vector4" uiname="Minimum" value="0.0, 0.0, 0.0, 0.0" doc="The minimum output value." /> - <input name="max" type="vector4" uiname="Maximum" value="1.0, 1.0, 1.0, 1.0" doc="The maximum output value." /> - <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> - <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> - <output name="out" type="vector4" /> - </nodedef> <!-- Node: <randomcolor> diff --git a/libraries/stdlib/stdlib_ng.mtlx b/libraries/stdlib/stdlib_ng.mtlx index cd61808469..771688ed47 100644 --- a/libraries/stdlib/stdlib_ng.mtlx +++ b/libraries/stdlib/stdlib_ng.mtlx @@ -1206,191 +1206,209 @@ Produces a randomized vector2, vector3, or vector4, based on an 'input' signal and 'seed' value. --> <nodegraph name="NG_randomvector_float_vector2" nodedef="ND_randomvector_float_vector2"> - <swizzle name="N_swizzeMin" type="vector4"> + <separate2 name="N_separatemin" type="multioutput"> <input name="in" type="vector2" interfacename="min" /> - <input name="channels" type="string" value="xyxy" /> - </swizzle> - <swizzle name="N_swizzeMax" type="vector4"> + </separate2> + <separate2 name="N_separatemax" type="multioutput"> <input name="in" type="vector2" interfacename="max" /> - <input name="channels" type="string" value="xyxy" /> - </swizzle> - <convert name="N_convert1" type="vector4"> + </separate2> + <randomfloat name="N_randomfloat1" type="float"> <input name="in" type="float" interfacename="in" /> - </convert> - <randomvector name="N_randomvector1" type="vector4"> - <input name="in" type="vector4" nodename="N_convert1" /> - <input name="min" type="vector4" nodename="N_swizzeMin" /> - <input name="max" type="vector4" nodename="N_swizzeMax" /> + <input name="min" type="float" nodename="N_separatemin" output="outx" /> + <input name="max" type="float" nodename="N_separatemax" output="outx" /> <input name="seed" type="float" interfacename="seed" /> - <input name="normalize" type="boolean" interfacename="normalize" /> - </randomvector> - <convert name="N_convert2" type="vector3"> - <input name="in" type="vector4" nodename="N_randomvector1" /> - </convert> - <convert name="N_convert5" type="vector2"> - <input name="in" type="vector3" nodename="N_convert2" /> + </randomfloat> + <add name="N_seed1" type="float"> + <input name="in1" type="float" value="4.0469" /> + <input name="in2" type="float" interfacename="seed" /> + </add> + <randomfloat name="N_randomfloat2" type="float"> + <input name="in" type="float" interfacename="in" /> + <input name="min" type="float" nodename="N_separatemin" output="outy" /> + <input name="max" type="float" nodename="N_separatemax" output="outy" /> + <input name="seed" type="float" nodename="N_seed1" /> + </randomfloat> + <combine2 name="N_makeVector" type="vector2"> + <input name="in1" type="float" nodename="N_randomfloat1" /> + <input name="in2" type="float" nodename="N_randomfloat2" /> + </combine2> + <normalize name="N_normalize" type="vector2"> + <input name="in" type="vector2" nodename="N_makeVector" /> + </normalize> + <convert name="N_convertNormalizeParm" type="float"> + <input name="in" type="boolean" interfacename="normalize" /> </convert> - <output name="out" type="vector2" nodename="N_convert5" /> + <switch name="N_normalizeOutput" type="vector2"> + <input name="in1" type="vector2" nodename="N_makeVector" /> + <input name="in2" type="vector2" nodename="N_normalize" /> + <input name="which" type="float" nodename="N_convertNormalizeParm" /> + </switch> + <output name="out" type="vector2" nodename="N_normalizeOutput" /> </nodegraph> <nodegraph name="NG_randomvector_integer_vector2" nodedef="ND_randomvector_integer_vector2"> - <swizzle name="N_swizzeMin" type="vector4"> - <input name="in" type="vector2" interfacename="min" /> - <input name="channels" type="string" value="xyxy" /> - </swizzle> - <swizzle name="N_swizzeMax" type="vector4"> - <input name="in" type="vector2" interfacename="max" /> - <input name="channels" type="string" value="xyxy" /> - </swizzle> - <convert name="N_convert1" type="float"> + <convert name="N_convert1" type="float"> <input name="in" type="integer" interfacename="in" /> </convert> - <convert name="N_convert2" type="vector4"> + <randomvector name="N_randomvector1" type="vector2"> <input name="in" type="float" nodename="N_convert1" /> - </convert> - <randomvector name="N_randomvector1" type="vector4"> - <input name="in" type="vector4" nodename="N_convert2" /> - <input name="min" type="vector4" nodename="N_swizzeMin" /> - <input name="max" type="vector4" nodename="N_swizzeMax" /> + <input name="min" type="vector2" interfacename="min" /> + <input name="max" type="vector2" interfacename="max" /> <input name="seed" type="float" interfacename="seed" /> <input name="normalize" type="boolean" interfacename="normalize" /> </randomvector> - <convert name="N_convert3" type="vector3"> - <input name="in" type="vector4" nodename="N_randomvector1" /> - </convert> - <convert name="N_convert5" type="vector2"> - <input name="in" type="vector3" nodename="N_convert3" /> - </convert> - <output name="out" type="vector2" nodename="N_convert5" /> + <output name="out" type="vector2" nodename="N_randomvector1" /> </nodegraph> <nodegraph name="NG_randomvector_float_vector3" nodedef="ND_randomvector_float_vector3"> - <swizzle name="N_swizzeMin" type="vector4"> + <separate3 name="N_separatemin" type="multioutput"> <input name="in" type="vector3" interfacename="min" /> - <input name="channels" type="string" value="xyzx" /> - </swizzle> - <swizzle name="N_swizzeMax" type="vector4"> + </separate3> + <separate3 name="N_separatemax" type="multioutput"> <input name="in" type="vector3" interfacename="max" /> - <input name="channels" type="string" value="xyzx" /> - </swizzle> - <convert name="N_convert1" type="vector4"> + </separate3> + <randomfloat name="N_randomfloat1" type="float"> <input name="in" type="float" interfacename="in" /> - </convert> - <randomvector name="N_randomvector1" type="vector4"> - <input name="in" type="vector4" nodename="N_convert1" /> - <input name="min" type="vector4" nodename="N_swizzeMin" /> - <input name="max" type="vector4" nodename="N_swizzeMax" /> + <input name="min" type="float" nodename="N_separatemin" output="outx" /> + <input name="max" type="float" nodename="N_separatemax" output="outx" /> <input name="seed" type="float" interfacename="seed" /> - <input name="normalize" type="boolean" interfacename="normalize" /> - </randomvector> - <convert name="N_convert2" type="vector3"> - <input name="in" type="vector4" nodename="N_randomvector1" /> + </randomfloat> + <add name="N_seed1" type="float"> + <input name="in1" type="float" value="3.7233" /> + <input name="in2" type="float" interfacename="seed" /> + </add> + <randomfloat name="N_randomfloat2" type="float"> + <input name="in" type="float" interfacename="in" /> + <input name="min" type="float" nodename="N_separatemin" output="outy" /> + <input name="max" type="float" nodename="N_separatemax" output="outy" /> + <input name="seed" type="float" nodename="N_seed1" /> + </randomfloat> + <add name="N_seed2" type="float"> + <input name="in1" type="float" value="1.8516" /> + <input name="in2" type="float" interfacename="seed" /> + </add> + <randomfloat name="N_randomfloat3" type="float"> + <input name="in" type="float" interfacename="in" /> + <input name="min" type="float" nodename="N_separatemin" output="outz" /> + <input name="max" type="float" nodename="N_separatemax" output="outz" /> + <input name="seed" type="float" nodename="N_seed2" /> + </randomfloat> + <combine3 name="N_makeVector" type="vector3"> + <input name="in1" type="float" nodename="N_randomfloat1" /> + <input name="in2" type="float" nodename="N_randomfloat2" /> + <input name="in3" type="float" nodename="N_randomfloat3" /> + </combine3> + <normalize name="N_normalize" type="vector3"> + <input name="in" type="vector3" nodename="N_makeVector" /> + </normalize> + <convert name="N_convertNormalizeParm" type="float"> + <input name="in" type="boolean" interfacename="normalize" /> </convert> - <output name="out" type="vector3" nodename="N_convert2" /> + <switch name="N_normalizeOutput" type="vector3"> + <input name="in1" type="vector3" nodename="N_makeVector" /> + <input name="in2" type="vector3" nodename="N_normalize" /> + <input name="which" type="float" nodename="N_convertNormalizeParm" /> + </switch> + <output name="out" type="vector3" nodename="N_normalizeOutput" /> </nodegraph> <nodegraph name="NG_randomvector_integer_vector3" nodedef="ND_randomvector_integer_vector3"> - <swizzle name="N_swizzeMin" type="vector4"> + <separate3 name="N_separatemin" type="multioutput"> <input name="in" type="vector3" interfacename="min" /> - <input name="channels" type="string" value="xyzx" /> - </swizzle> - <swizzle name="N_swizzeMax" type="vector4"> + </separate3> + <separate3 name="N_separatemax" type="multioutput"> <input name="in" type="vector3" interfacename="max" /> - <input name="channels" type="string" value="xyzx" /> - </swizzle> + </separate3> <convert name="N_convert1" type="float"> <input name="in" type="integer" interfacename="in" /> </convert> - <convert name="N_convert2" type="vector4"> + <randomvector name="N_randomvector1" type="vector3"> <input name="in" type="float" nodename="N_convert1" /> - </convert> - <randomvector name="N_randomvector1" type="vector4"> - <input name="in" type="vector4" nodename="N_convert2" /> - <input name="min" type="vector4" nodename="N_swizzeMin" /> - <input name="max" type="vector4" nodename="N_swizzeMax" /> + <input name="min" type="vector3" interfacename="min" /> + <input name="max" type="vector3" interfacename="max" /> <input name="seed" type="float" interfacename="seed" /> <input name="normalize" type="boolean" interfacename="normalize" /> </randomvector> - <convert name="N_convert3" type="vector3"> - <input name="in" type="vector4" nodename="N_randomvector1" /> - </convert> - <output name="out" type="vector3" nodename="N_convert3" /> + <output name="out" type="vector3" nodename="N_randomvector1" /> </nodegraph> <nodegraph name="NG_randomvector_float_vector4" nodedef="ND_randomvector_float_vector4"> - <convert name="N_convert1" type="vector4"> + <separate4 name="N_separatemin" type="multioutput"> + <input name="in" type="vector4" interfacename="min" /> + </separate4> + <separate4 name="N_separatemax" type="multioutput"> + <input name="in" type="vector4" interfacename="max" /> + </separate4> + <randomfloat name="N_randomfloat1" type="float"> <input name="in" type="float" interfacename="in" /> - </convert> - <randomvector name="N_randomvector1" type="vector4"> - <input name="in" type="vector4" nodename="N_convert1" /> - <input name="min" type="vector4" interfacename="min" /> - <input name="max" type="vector4" interfacename="max" /> + <input name="min" type="float" nodename="N_separatemin" output="outx" /> + <input name="max" type="float" nodename="N_separatemax" output="outx" /> <input name="seed" type="float" interfacename="seed" /> - <input name="normalize" type="boolean" interfacename="normalize" /> - </randomvector> - <output name="out" type="vector4" nodename="N_randomvector1" /> - </nodegraph> - <nodegraph name="NG_randomvector_integer_vector4" nodedef="ND_randomvector_integer_vector4"> - <convert name="N_convert1" type="float"> - <input name="in" type="integer" interfacename="in" /> - </convert> - <convert name="N_convert2" type="vector4"> - <input name="in" type="float" nodename="N_convert1" /> - </convert> - <randomvector name="N_randomvector1" type="vector4"> - <input name="in" type="vector4" nodename="N_convert2" /> - <input name="min" type="vector4" interfacename="min" /> - <input name="max" type="vector4" interfacename="max" /> - <input name="seed" type="float" interfacename="seed" /> - <input name="normalize" type="boolean" interfacename="normalize" /> - </randomvector> - <output name="out" type="vector4" nodename="N_randomvector1" /> - </nodegraph> - <nodegraph name="NG_randomvector_vector4_vector4" nodedef="ND_randomvector_vector4_vector4"> - <range name="N_range" type="vector4"> - <input name="in" type="vector4" nodename="N_makeVector" /> - <input name="outlow" type="vector4" interfacename="min" /> - <input name="outhigh" type="vector4" interfacename="max" /> - <input name="doclamp" type="boolean" value="true" /> - </range> - <combine4 name="N_makeVector" type="vector4"> - <input name="in1" type="float" nodename="N_randX" /> - <input name="in2" type="float" nodename="N_randY" /> - <input name="in3" type="float" nodename="N_randZ" /> - <input name="in4" type="float" nodename="N_randW" /> - </combine4> - <randomfloat name="N_randX" type="float"> - <input name="in" type="float" nodename="N_addSeed" /> - <input name="seed" type="float" value="1.3712" /> </randomfloat> - <add name="N_addSeed" type="float"> - <input name="in1" type="float" nodename="N_inputMagnitude" /> + <add name="N_seed1" type="float"> + <input name="in1" type="float" value="7.10438" /> <input name="in2" type="float" interfacename="seed" /> </add> - <magnitude name="N_inputMagnitude" type="float"> - <input name="in" type="vector4" interfacename="in" /> - </magnitude> - <randomfloat name="N_randY" type="float"> - <input name="in" type="float" nodename="N_addSeed" /> - <input name="seed" type="float" value="29.544" /> + <randomfloat name="N_randomfloat2" type="float"> + <input name="in" type="float" interfacename="in" /> + <input name="min" type="float" nodename="N_separatemin" output="outy" /> + <input name="max" type="float" nodename="N_separatemax" output="outy" /> + <input name="seed" type="float" nodename="N_seed1" /> </randomfloat> - <randomfloat name="N_randZ" type="float"> - <input name="in" type="float" nodename="N_addSeed" /> - <input name="seed" type="float" value="78.046" /> + <add name="N_seed2" type="float"> + <input name="in1" type="float" value="2.95425" /> + <input name="in2" type="float" interfacename="seed" /> + </add> + <randomfloat name="N_randomfloat3" type="float"> + <input name="in" type="float" interfacename="in" /> + <input name="min" type="float" nodename="N_separatemin" output="outz" /> + <input name="max" type="float" nodename="N_separatemax" output="outz" /> + <input name="seed" type="float" nodename="N_seed2" /> </randomfloat> - <randomfloat name="N_randW" type="float"> - <input name="in" type="float" nodename="N_addSeed" /> - <input name="seed" type="float" value="524.97" /> + <add name="N_seed3" type="float"> + <input name="in1" type="float" value="6.26189" /> + <input name="in2" type="float" interfacename="seed" /> + </add> + <randomfloat name="N_randomfloat4" type="float"> + <input name="in" type="float" interfacename="in" /> + <input name="min" type="float" nodename="N_separatemin" output="outw" /> + <input name="max" type="float" nodename="N_separatemax" output="outw" /> + <input name="seed" type="float" nodename="N_seed3" /> </randomfloat> + <combine4 name="N_makeVector" type="vector4"> + <input name="in1" type="float" nodename="N_randomfloat1" /> + <input name="in2" type="float" nodename="N_randomfloat2" /> + <input name="in3" type="float" nodename="N_randomfloat3" /> + <input name="in4" type="float" nodename="N_randomfloat4" /> + </combine4> <normalize name="N_normalize" type="vector4"> - <input name="in" type="vector4" nodename="N_range" /> + <input name="in" type="vector4" nodename="N_makeVector" /> </normalize> <convert name="N_convertNormalizeParm" type="float"> <input name="in" type="boolean" interfacename="normalize" /> </convert> <switch name="N_normalizeOutput" type="vector4"> - <input name="in1" type="vector4" nodename="N_range" /> + <input name="in1" type="vector4" nodename="N_makeVector" /> <input name="in2" type="vector4" nodename="N_normalize" /> <input name="which" type="float" nodename="N_convertNormalizeParm" /> - </switch> + </switch> <output name="out" type="vector4" nodename="N_normalizeOutput" /> </nodegraph> + <nodegraph name="NG_randomvector_integer_vector4" nodedef="ND_randomvector_integer_vector4"> + <separate4 name="N_separatemin" type="multioutput"> + <input name="in" type="vector4" interfacename="min" /> + </separate4> + <separate4 name="N_separatemax" type="multioutput"> + <input name="in" type="vector4" interfacename="max" /> + </separate4> + <convert name="N_convert1" type="float"> + <input name="in" type="integer" interfacename="in" /> + </convert> + <randomvector name="N_randomvector1" type="vector4"> + <input name="in" type="float" nodename="N_convert1" /> + <input name="min" type="vector4" interfacename="min" /> + <input name="max" type="vector4" interfacename="max" /> + <input name="seed" type="float" interfacename="seed" /> + <input name="normalize" type="boolean" interfacename="normalize" /> + </randomvector> + <output name="out" type="vector4" nodename="N_randomvector1" /> + </nodegraph> <!-- Node: <randomcolor> From 01128a6374466c6815a5a3abc635e5d68644b915 Mon Sep 17 00:00:00 2001 From: Chris Rydalch <crydalch@gmail.com> Date: Fri, 16 Jun 2023 09:10:43 -0500 Subject: [PATCH 14/14] Improved the randomfloat implementations, seed is now an integer, and removed the randomvector nodes for now (those can be tackled at a later time). --- libraries/stdlib/stdlib_defs.mtlx | 73 +------ libraries/stdlib/stdlib_ng.mtlx | 343 ++++++------------------------ 2 files changed, 79 insertions(+), 337 deletions(-) diff --git a/libraries/stdlib/stdlib_defs.mtlx b/libraries/stdlib/stdlib_defs.mtlx index 64dcca18fa..4aa82582be 100644 --- a/libraries/stdlib/stdlib_defs.mtlx +++ b/libraries/stdlib/stdlib_defs.mtlx @@ -1032,94 +1032,41 @@ <input name="in" type="float" uiname="Input" value="0.0" doc="Initial randomization seed." /> <input name="min" type="float" uiname="Minimum" value="0.0" doc="The minimum output value." /> <input name="max" type="float" uiname="Maximum" value="1.0" doc="The maximum output value." /> - <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> + <input name="seed" type="integer" uiname="Seed" value="0" doc="Additional seed." /> <output name="out" type="float" /> </nodedef> <nodedef name="ND_randomfloat_integer" node="randomfloat" nodegroup="procedural"> <input name="in" type="integer" uiname="Input" value="0" /> <input name="min" type="float" uiname="Minimum" value="0.0" /> <input name="max" type="float" uiname="Maximum" value="1.0" /> - <input name="seed" type="float" uiname="Seed" value="0.0" /> + <input name="seed" type="integer" uiname="Seed" value="0" /> <output name="out" type="float" /> </nodedef> - <!-- - Node: <randomvector> - Produces a randomized vector2, vector3, or vector4, based on an 'input' signal and 'seed' value. - --> - <nodedef name="ND_randomvector_float_vector2" node="randomvector" nodegroup="procedural"> - <input name="in" type="float" uiname="Input" value="0.0" doc="Initial randomization seed." /> - <input name="min" type="vector2" uiname="Minimum" value="0.0, 0.0" doc="The minimum output value." /> - <input name="max" type="vector2" uiname="Maximum" value="1.0, 1.0" doc="The maximum output value." /> - <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> - <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> - <output name="out" type="vector2" /> - </nodedef> - <nodedef name="ND_randomvector_integer_vector2" node="randomvector" nodegroup="procedural"> - <input name="in" type="integer" uiname="Input" value="0" doc="Initial randomization seed." /> - <input name="min" type="vector2" uiname="Minimum" value="0.0, 0.0" doc="The minimum output value." /> - <input name="max" type="vector2" uiname="Maximum" value="1.0, 1.0" doc="The maximum output value." /> - <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> - <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> - <output name="out" type="vector2" /> - </nodedef> - <nodedef name="ND_randomvector_float_vector3" node="randomvector" nodegroup="procedural"> - <input name="in" type="float" uiname="Input" value="0.0" doc="Initial randomization seed." /> - <input name="min" type="vector3" uiname="Minimum" value="0.0, 0.0, 0.0" doc="The minimum output value." /> - <input name="max" type="vector3" uiname="Maximum" value="1.0, 1.0, 1.0" doc="The maximum output value." /> - <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> - <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> - <output name="out" type="vector3" /> - </nodedef> - <nodedef name="ND_randomvector_integer_vector3" node="randomvector" nodegroup="procedural"> - <input name="in" type="integer" uiname="Input" value="0" doc="Initial randomization seed." /> - <input name="min" type="vector3" uiname="Minimum" value="0.0, 0.0, 0.0" doc="The minimum output value." /> - <input name="max" type="vector3" uiname="Maximum" value="1.0, 1.0, 1.0" doc="The maximum output value." /> - <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> - <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> - <output name="out" type="vector3" /> - </nodedef> - <nodedef name="ND_randomvector_float_vector4" node="randomvector" nodegroup="procedural"> - <input name="in" type="float" uiname="Input" value="0.0" doc="Initial randomization seed." /> - <input name="min" type="vector4" uiname="Minimum" value="0.0, 0.0, 0.0, 0.0" doc="The minimum output value." /> - <input name="max" type="vector4" uiname="Maximum" value="1.0, 1.0, 1.0, 1.0" doc="The maximum output value." /> - <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> - <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> - <output name="out" type="vector4" /> - </nodedef> - <nodedef name="ND_randomvector_integer_vector4" node="randomvector" nodegroup="procedural"> - <input name="in" type="integer" uiname="Input" value="0" doc="Initial randomization seed." /> - <input name="min" type="vector4" uiname="Minimum" value="0.0, 0.0, 0.0, 0.0" doc="The minimum output value." /> - <input name="max" type="vector4" uiname="Maximum" value="1.0, 1.0, 1.0, 1.0" doc="The maximum output value." /> - <input name="seed" type="float" uiname="Seed" value="0.0" doc="Additional seed offset." /> - <input name="normalize" type="boolean" uiname="Normalize" value="false" doc="Normalize the output vector." /> - <output name="out" type="vector4" /> - </nodedef> - <!-- Node: <randomcolor> Produces a randomized RGB color, based on an 'input' signal and 'seed' value. --> - <nodedef name="ND_randomcolor_float_color3" node="randomcolor" nodegroup="procedural3d"> + <nodedef name="ND_randomcolor_float" node="randomcolor" nodegroup="procedural3d"> <input name="in" type="float" uiname="Input" uisoftmin="0.0" uisoftmax="10.0" value="0.0" /> <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> - <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="seed" type="float" uiname="Seed" value="0" /> + <input name="brightnesslow" type="float" uiname="Brightness Low" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="brightnesshigh" type="float" uiname="Brightness High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="seed" type="integer" uiname="Seed" value="0" /> <output name="out" type="color3" /> </nodedef> - <nodedef name="ND_randomcolor_integer_color3" node="randomcolor" nodegroup="procedural3d"> + <nodedef name="ND_randomcolor_integer" node="randomcolor" nodegroup="procedural3d"> <input name="in" type="integer" uiname="Input" uisoftmin="0" uisoftmax="10" value="0" /> <input name="huelow" type="float" uiname="Hue Low" uisoftmin="0.0" uisoftmax="1.0" value="0" /> <input name="huehigh" type="float" uiname="Hue High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> <input name="saturationlow" type="float" uiname="Saturation Low" uisoftmin="0.0" uisoftmax="1.0" value="0.825" /> <input name="saturationhigh" type="float" uiname="Saturation High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> - <input name="gammalow" type="float" uiname="Gamma Low" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="gammahigh" type="float" uiname="Gamma High" uisoftmin="0.0" uisoftmax="3.0" value="1" /> - <input name="seed" type="float" uiname="Seed" value="0" /> + <input name="brightnesslow" type="float" uiname="Brightness Low" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="brightnesshigh" type="float" uiname="Brightness High" uisoftmin="0.0" uisoftmax="1.0" value="1" /> + <input name="seed" type="integer" uiname="Seed" value="0" /> <output name="out" type="color3" /> </nodedef> diff --git a/libraries/stdlib/stdlib_ng.mtlx b/libraries/stdlib/stdlib_ng.mtlx index 771688ed47..394f953e11 100644 --- a/libraries/stdlib/stdlib_ng.mtlx +++ b/libraries/stdlib/stdlib_ng.mtlx @@ -1165,23 +1165,26 @@ Produces a randomized float, based on an 'input' signal and 'seed' value. --> <nodegraph name="NG_randomfloat_float" nodedef="ND_randomfloat_float"> - <multiply name="N_offset_seed" type="float"> - <input name="in1" type="float" interfacename="seed" /> - <input name="in2" type="float" value="43758.5" /> - </multiply> - <subtract name="N_subtract1" type="float"> + <convert name="N_convertSeed1" type="float"> + <input name="in" type="integer" interfacename="seed" /> + </convert> + <modulo name="N_moduloInput" type="float"> <input name="in1" type="float" interfacename="in" /> - <input name="in2" type="float" nodename="N_offset_seed" /> - </subtract> + <input name="in2" type="float" value="4219" /> + </modulo> + <multiply name="N_scaleInput" type="float"> + <input name="in1" type="float" nodename="N_moduloInput" /> + <input name="in2" type="float" value="3947" /> + </multiply> <combine2 name="N_combine2" type="vector2"> - <input name="in1" type="float" nodename="N_subtract1" /> - <input name="in2" type="float" nodename="N_offset_seed" /> + <input name="in1" type="float" nodename="N_scaleInput" /> + <input name="in2" type="float" nodename="N_convertSeed1" /> </combine2> - <cellnoise2d name="N_cellnoise_1" type="float"> + <cellnoise2d name="N_cellnoise1" type="float"> <input name="texcoord" type="vector2" nodename="N_combine2" /> </cellnoise2d> <range name="N_remapRange" type="float"> - <input name="in" type="float" nodename="N_cellnoise_1" /> + <input name="in" type="float" nodename="N_cellnoise1" /> <input name="outlow" type="float" interfacename="min" /> <input name="outhigh" type="float" interfacename="max" /> <input name="doclamp" type="boolean" value="true" /> @@ -1189,303 +1192,95 @@ <output name="out" type="float" nodename="N_remapRange" /> </nodegraph> <nodegraph name="NG_randomfloat_integer" nodedef="ND_randomfloat_integer"> - <convert name="N_convert1" type="float"> + <convert name="N_convertInput1" type="float"> <input name="in" type="integer" interfacename="in" /> </convert> - <randomfloat name="N_randomfloat1" type="float"> - <input name="in" type="float" nodename="N_convert1" /> - <input name="min" type="float" interfacename="min" /> - <input name="max" type="float" interfacename="max" /> - <input name="seed" type="float" interfacename="seed" /> - </randomfloat> - <output name="out" type="float" nodename="N_randomfloat1" /> + <convert name="N_convertSeed1" type="float"> + <input name="in" type="integer" interfacename="seed" /> + </convert> + <combine2 name="N_combine2" type="vector2"> + <input name="in1" type="float" nodename="N_convertInput1" /> + <input name="in2" type="float" nodename="N_convertSeed1" /> + </combine2> + <cellnoise2d name="N_cellnoise1" type="float"> + <input name="texcoord" type="vector2" nodename="N_combine2" /> + </cellnoise2d> + <range name="N_remapRange" type="float"> + <input name="in" type="float" nodename="N_cellnoise1" /> + <input name="outlow" type="float" interfacename="min" /> + <input name="outhigh" type="float" interfacename="max" /> + <input name="doclamp" type="boolean" value="true" /> + </range> + <output name="out" type="float" nodename="N_remapRange" /> </nodegraph> <!-- - Node: <randomvector> - Produces a randomized vector2, vector3, or vector4, based on an 'input' signal and 'seed' value. + Node: <randomcolor> + Produces a randomized color, based on an input signal and seed value. --> - <nodegraph name="NG_randomvector_float_vector2" nodedef="ND_randomvector_float_vector2"> - <separate2 name="N_separatemin" type="multioutput"> - <input name="in" type="vector2" interfacename="min" /> - </separate2> - <separate2 name="N_separatemax" type="multioutput"> - <input name="in" type="vector2" interfacename="max" /> - </separate2> - <randomfloat name="N_randomfloat1" type="float"> - <input name="in" type="float" interfacename="in" /> - <input name="min" type="float" nodename="N_separatemin" output="outx" /> - <input name="max" type="float" nodename="N_separatemax" output="outx" /> - <input name="seed" type="float" interfacename="seed" /> - </randomfloat> - <add name="N_seed1" type="float"> - <input name="in1" type="float" value="4.0469" /> - <input name="in2" type="float" interfacename="seed" /> - </add> - <randomfloat name="N_randomfloat2" type="float"> - <input name="in" type="float" interfacename="in" /> - <input name="min" type="float" nodename="N_separatemin" output="outy" /> - <input name="max" type="float" nodename="N_separatemax" output="outy" /> - <input name="seed" type="float" nodename="N_seed1" /> - </randomfloat> - <combine2 name="N_makeVector" type="vector2"> - <input name="in1" type="float" nodename="N_randomfloat1" /> - <input name="in2" type="float" nodename="N_randomfloat2" /> - </combine2> - <normalize name="N_normalize" type="vector2"> - <input name="in" type="vector2" nodename="N_makeVector" /> - </normalize> - <convert name="N_convertNormalizeParm" type="float"> - <input name="in" type="boolean" interfacename="normalize" /> - </convert> - <switch name="N_normalizeOutput" type="vector2"> - <input name="in1" type="vector2" nodename="N_makeVector" /> - <input name="in2" type="vector2" nodename="N_normalize" /> - <input name="which" type="float" nodename="N_convertNormalizeParm" /> - </switch> - <output name="out" type="vector2" nodename="N_normalizeOutput" /> - </nodegraph> - <nodegraph name="NG_randomvector_integer_vector2" nodedef="ND_randomvector_integer_vector2"> - <convert name="N_convert1" type="float"> - <input name="in" type="integer" interfacename="in" /> + <nodegraph name="NG_randomcolor_float" nodedef="ND_randomcolor_float"> + <convert name="N_convertSeed1" type="float"> + <input name="in" type="integer" interfacename="seed" /> </convert> - <randomvector name="N_randomvector1" type="vector2"> - <input name="in" type="float" nodename="N_convert1" /> - <input name="min" type="vector2" interfacename="min" /> - <input name="max" type="vector2" interfacename="max" /> - <input name="seed" type="float" interfacename="seed" /> - <input name="normalize" type="boolean" interfacename="normalize" /> - </randomvector> - <output name="out" type="vector2" nodename="N_randomvector1" /> - </nodegraph> - <nodegraph name="NG_randomvector_float_vector3" nodedef="ND_randomvector_float_vector3"> - <separate3 name="N_separatemin" type="multioutput"> - <input name="in" type="vector3" interfacename="min" /> - </separate3> - <separate3 name="N_separatemax" type="multioutput"> - <input name="in" type="vector3" interfacename="max" /> - </separate3> - <randomfloat name="N_randomfloat1" type="float"> - <input name="in" type="float" interfacename="in" /> - <input name="min" type="float" nodename="N_separatemin" output="outx" /> - <input name="max" type="float" nodename="N_separatemax" output="outx" /> - <input name="seed" type="float" interfacename="seed" /> - </randomfloat> - <add name="N_seed1" type="float"> - <input name="in1" type="float" value="3.7233" /> - <input name="in2" type="float" interfacename="seed" /> + <add name="N_offset_hue" type="float"> + <input name="in1" type="float" nodename="N_convertSeed1" /> + <input name="in2" type="float" value="413.3" /> </add> - <randomfloat name="N_randomfloat2" type="float"> - <input name="in" type="float" interfacename="in" /> - <input name="min" type="float" nodename="N_separatemin" output="outy" /> - <input name="max" type="float" nodename="N_separatemax" output="outy" /> - <input name="seed" type="float" nodename="N_seed1" /> - </randomfloat> - <add name="N_seed2" type="float"> - <input name="in1" type="float" value="1.8516" /> - <input name="in2" type="float" interfacename="seed" /> + <add name="N_offset_saturation" type="float"> + <input name="in1" type="float" nodename="N_convertSeed1" /> + <input name="in2" type="float" value="1522.4" /> </add> - <randomfloat name="N_randomfloat3" type="float"> - <input name="in" type="float" interfacename="in" /> - <input name="min" type="float" nodename="N_separatemin" output="outz" /> - <input name="max" type="float" nodename="N_separatemax" output="outz" /> - <input name="seed" type="float" nodename="N_seed2" /> - </randomfloat> - <combine3 name="N_makeVector" type="vector3"> - <input name="in1" type="float" nodename="N_randomfloat1" /> - <input name="in2" type="float" nodename="N_randomfloat2" /> - <input name="in3" type="float" nodename="N_randomfloat3" /> - </combine3> - <normalize name="N_normalize" type="vector3"> - <input name="in" type="vector3" nodename="N_makeVector" /> - </normalize> - <convert name="N_convertNormalizeParm" type="float"> - <input name="in" type="boolean" interfacename="normalize" /> - </convert> - <switch name="N_normalizeOutput" type="vector3"> - <input name="in1" type="vector3" nodename="N_makeVector" /> - <input name="in2" type="vector3" nodename="N_normalize" /> - <input name="which" type="float" nodename="N_convertNormalizeParm" /> - </switch> - <output name="out" type="vector3" nodename="N_normalizeOutput" /> - </nodegraph> - <nodegraph name="NG_randomvector_integer_vector3" nodedef="ND_randomvector_integer_vector3"> - <separate3 name="N_separatemin" type="multioutput"> - <input name="in" type="vector3" interfacename="min" /> - </separate3> - <separate3 name="N_separatemax" type="multioutput"> - <input name="in" type="vector3" interfacename="max" /> - </separate3> - <convert name="N_convert1" type="float"> - <input name="in" type="integer" interfacename="in" /> - </convert> - <randomvector name="N_randomvector1" type="vector3"> - <input name="in" type="float" nodename="N_convert1" /> - <input name="min" type="vector3" interfacename="min" /> - <input name="max" type="vector3" interfacename="max" /> - <input name="seed" type="float" interfacename="seed" /> - <input name="normalize" type="boolean" interfacename="normalize" /> - </randomvector> - <output name="out" type="vector3" nodename="N_randomvector1" /> - </nodegraph> - <nodegraph name="NG_randomvector_float_vector4" nodedef="ND_randomvector_float_vector4"> - <separate4 name="N_separatemin" type="multioutput"> - <input name="in" type="vector4" interfacename="min" /> - </separate4> - <separate4 name="N_separatemax" type="multioutput"> - <input name="in" type="vector4" interfacename="max" /> - </separate4> - <randomfloat name="N_randomfloat1" type="float"> - <input name="in" type="float" interfacename="in" /> - <input name="min" type="float" nodename="N_separatemin" output="outx" /> - <input name="max" type="float" nodename="N_separatemax" output="outx" /> - <input name="seed" type="float" interfacename="seed" /> - </randomfloat> - <add name="N_seed1" type="float"> - <input name="in1" type="float" value="7.10438" /> - <input name="in2" type="float" interfacename="seed" /> - </add> - <randomfloat name="N_randomfloat2" type="float"> - <input name="in" type="float" interfacename="in" /> - <input name="min" type="float" nodename="N_separatemin" output="outy" /> - <input name="max" type="float" nodename="N_separatemax" output="outy" /> - <input name="seed" type="float" nodename="N_seed1" /> - </randomfloat> - <add name="N_seed2" type="float"> - <input name="in1" type="float" value="2.95425" /> - <input name="in2" type="float" interfacename="seed" /> + <add name="N_offset_brightness" type="float"> + <input name="in1" type="float" nodename="N_convertSeed1" /> + <input name="in2" type="float" value="1813.8" /> </add> - <randomfloat name="N_randomfloat3" type="float"> - <input name="in" type="float" interfacename="in" /> - <input name="min" type="float" nodename="N_separatemin" output="outz" /> - <input name="max" type="float" nodename="N_separatemax" output="outz" /> - <input name="seed" type="float" nodename="N_seed2" /> - </randomfloat> - <add name="N_seed3" type="float"> - <input name="in1" type="float" value="6.26189" /> - <input name="in2" type="float" interfacename="seed" /> - </add> - <randomfloat name="N_randomfloat4" type="float"> - <input name="in" type="float" interfacename="in" /> - <input name="min" type="float" nodename="N_separatemin" output="outw" /> - <input name="max" type="float" nodename="N_separatemax" output="outw" /> - <input name="seed" type="float" nodename="N_seed3" /> - </randomfloat> - <combine4 name="N_makeVector" type="vector4"> - <input name="in1" type="float" nodename="N_randomfloat1" /> - <input name="in2" type="float" nodename="N_randomfloat2" /> - <input name="in3" type="float" nodename="N_randomfloat3" /> - <input name="in4" type="float" nodename="N_randomfloat4" /> - </combine4> - <normalize name="N_normalize" type="vector4"> - <input name="in" type="vector4" nodename="N_makeVector" /> - </normalize> - <convert name="N_convertNormalizeParm" type="float"> - <input name="in" type="boolean" interfacename="normalize" /> - </convert> - <switch name="N_normalizeOutput" type="vector4"> - <input name="in1" type="vector4" nodename="N_makeVector" /> - <input name="in2" type="vector4" nodename="N_normalize" /> - <input name="which" type="float" nodename="N_convertNormalizeParm" /> - </switch> - <output name="out" type="vector4" nodename="N_normalizeOutput" /> - </nodegraph> - <nodegraph name="NG_randomvector_integer_vector4" nodedef="ND_randomvector_integer_vector4"> - <separate4 name="N_separatemin" type="multioutput"> - <input name="in" type="vector4" interfacename="min" /> - </separate4> - <separate4 name="N_separatemax" type="multioutput"> - <input name="in" type="vector4" interfacename="max" /> - </separate4> - <convert name="N_convert1" type="float"> - <input name="in" type="integer" interfacename="in" /> - </convert> - <randomvector name="N_randomvector1" type="vector4"> - <input name="in" type="float" nodename="N_convert1" /> - <input name="min" type="vector4" interfacename="min" /> - <input name="max" type="vector4" interfacename="max" /> - <input name="seed" type="float" interfacename="seed" /> - <input name="normalize" type="boolean" interfacename="normalize" /> - </randomvector> - <output name="out" type="vector4" nodename="N_randomvector1" /> - </nodegraph> - - <!-- - Node: <randomcolor> - Produces a randomized color, based on an input signal and seed value. - --> - <nodegraph name="NG_randomcolor_float_color3" nodedef="ND_randomcolor_float_color3"> + <ceil name="N_seed_hue" type="integer"> + <input name="in" type="float" nodename="N_offset_hue" /> + </ceil> + <ceil name="N_seed_saturation" type="integer"> + <input name="in" type="float" nodename="N_offset_saturation" /> + </ceil> + <ceil name="N_seed_brightness" type="integer"> + <input name="in" type="float" nodename="N_offset_brightness" /> + </ceil> <randomfloat name="N_rand_hue" type="float"> <input name="in" type="float" interfacename="in" /> - <input name="seed" type="float" nodename="N_seed_hue" /> + <input name="seed" type="integer" nodename="N_seed_hue" /> </randomfloat> <randomfloat name="N_rand_saturation" type="float"> <input name="in" type="float" interfacename="in" /> - <input name="seed" type="float" nodename="N_seed_saturation" /> + <input name="seed" type="integer" nodename="N_seed_saturation" /> </randomfloat> - <randomfloat name="N_rand_gamma" type="float"> + <randomfloat name="N_rand_brightness" type="float"> <input name="in" type="float" interfacename="in" /> - <input name="seed" type="float" nodename="N_seed_gamma" /> + <input name="seed" type="integer" nodename="N_seed_brightness" /> </randomfloat> <range name="N_range_hue" type="float"> <input name="in" type="float" nodename="N_rand_hue" /> <input name="outlow" type="float" interfacename="huelow" /> <input name="outhigh" type="float" interfacename="huehigh" /> - <input name="inlow" type="float" value="0" /> - <input name="inhigh" type="float" value="1" /> - <input name="gamma" type="float" value="1" /> - <input name="doclamp" type="boolean" value="false" /> </range> <range name="N_range_saturation" type="float"> <input name="in" type="float" nodename="N_rand_saturation" /> <input name="outlow" type="float" interfacename="saturationlow" /> <input name="outhigh" type="float" interfacename="saturationhigh" /> - <input name="inlow" type="float" value="0" /> - <input name="inhigh" type="float" value="1" /> - <input name="gamma" type="float" value="1" /> - <input name="doclamp" type="boolean" value="false" /> </range> - <range name="N_range_gamma" type="float"> - <input name="in" type="float" nodename="N_rand_gamma" /> - <input name="outlow" type="float" interfacename="gammalow" /> - <input name="outhigh" type="float" interfacename="gammahigh" /> - <input name="inlow" type="float" value="0" /> - <input name="inhigh" type="float" value="1" /> - <input name="gamma" type="float" value="1" /> - <input name="doclamp" type="boolean" value="false" /> + <range name="N_range_brightness" type="float"> + <input name="in" type="float" nodename="N_rand_brightness" /> + <input name="outlow" type="float" interfacename="brightnesslow" /> + <input name="outhigh" type="float" interfacename="brightnesshigh" /> </range> - <add name="N_seed_hue" type="float"> - <input name="in1" type="float" interfacename="seed" /> - <input name="in2" type="float" value="0" /> - </add> - <add name="N_seed_saturation" type="float"> - <input name="in1" type="float" interfacename="seed" /> - <input name="in2" type="float" value="0" /> - </add> - <add name="N_seed_gamma" type="float"> - <input name="in1" type="float" interfacename="seed" /> - <input name="in2" type="float" value="0" /> - </add> <combine3 name="N_combine_HSV" type="color3"> <input name="in1" type="float" nodename="N_range_hue" /> <input name="in2" type="float" nodename="N_range_saturation" /> - <input name="in3" type="float" value="1" /> + <input name="in3" type="float" nodename="N_range_brightness" /> </combine3> - <range name="N_gamma" type="color3"> - <input name="in" type="color3" nodename="N_HSV_to_RGB" /> - <input name="gamma" type="float" nodename="N_range_gamma" /> - <input name="inlow" type="float" value="0" /> - <input name="inhigh" type="float" value="1" /> - <input name="outlow" type="float" value="0" /> - <input name="outhigh" type="float" value="1" /> - <input name="doclamp" type="boolean" value="false" /> - </range> <hsvtorgb name="N_HSV_to_RGB" type="color3"> <input name="in" type="color3" nodename="N_combine_HSV" /> </hsvtorgb> - <output name="out" type="color3" nodename="N_gamma" /> + <output name="out" type="color3" nodename="N_HSV_to_RGB" /> </nodegraph> - <nodegraph name="NG_randomcolor_integer_color3" nodedef="ND_randomcolor_integer_color3"> + <nodegraph name="NG_randomcolor_integer" nodedef="ND_randomcolor_integer"> <convert name="N_convert1" type="float"> <input name="in" type="integer" interfacename="in" /> </convert> @@ -1495,9 +1290,9 @@ <input name="huehigh" type="float" interfacename="huehigh" /> <input name="saturationlow" type="float" interfacename="saturationlow" /> <input name="saturationhigh" type="float" interfacename="saturationhigh" /> - <input name="gammalow" type="float" interfacename="gammalow" /> - <input name="gammahigh" type="float" interfacename="gammahigh" /> - <input name="seed" type="float" interfacename="seed" /> + <input name="brightnesslow" type="float" interfacename="brightnesslow" /> + <input name="brightnesshigh" type="float" interfacename="brightnesshigh" /> + <input name="seed" type="integer" interfacename="seed" /> </randomcolor> <output name="out" type="color3" nodename="N_randomcolor1" /> </nodegraph>