Skip to content

Commit

Permalink
Add randomvector, color4 to randomcolor, and min/max inputs to random…
Browse files Browse the repository at this point in the history
…float.
  • Loading branch information
crydalch committed May 12, 2023
1 parent e57d49c commit 3a0847c
Show file tree
Hide file tree
Showing 2 changed files with 451 additions and 8 deletions.
145 changes: 141 additions & 4 deletions libraries/stdlib/stdlib_defs.mtlx
Original file line number Diff line number Diff line change
Expand Up @@ -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="float" uiname="Minimum" value="0.0, 0.0" doc="The minimum output value." />
<input name="max" type="float" 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="float" uiname="Minimum" value="0.0, 0.0" doc="The minimum output value." />
<input name="max" type="float" 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="float" uiname="Minimum" value="0.0, 0.0" doc="The minimum output value." />
<input name="max" type="float" 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="float" uiname="Minimum" value="0.0, 0.0" doc="The minimum output value." />
<input name="max" type="float" 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="float" uiname="Minimum" value="0.0, 0.0" doc="The minimum output value." />
<input name="max" type="float" 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="float" uiname="Minimum" value="0.0, 0.0, 0.0" doc="The minimum output value." />
<input name="max" type="float" 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="float" uiname="Minimum" value="0.0, 0.0, 0.0" doc="The minimum output value." />
<input name="max" type="float" 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="float" uiname="Minimum" value="0.0, 0.0, 0.0" doc="The minimum output value." />
<input name="max" type="float" 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="float" uiname="Minimum" value="0.0, 0.0, 0.0" doc="The minimum output value." />
<input name="max" type="float" 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="float" uiname="Minimum" value="0.0, 0.0, 0.0" doc="The minimum output value." />
<input name="max" type="float" 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="float" uiname="Minimum" value="0.0, 0.0, 0.0, 0.0" doc="The minimum output value." />
<input name="max" type="float" 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="float" uiname="Minimum" value="0.0, 0.0, 0.0, 0.0" doc="The minimum output value." />
<input name="max" type="float" 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="float" uiname="Minimum" value="0.0, 0.0, 0.0, 0.0" doc="The minimum output value." />
<input name="max" type="float" 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="float" uiname="Minimum" value="0.0, 0.0, 0.0, 0.0" doc="The minimum output value." />
<input name="max" type="float" 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="float" uiname="Minimum" value="0.0, 0.0, 0.0, 0.0" doc="The minimum output value." />
<input name="max" type="float" 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
Expand Down Expand Up @@ -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" />
Expand Down
Loading

0 comments on commit 3a0847c

Please sign in to comment.