浏览代码

[ShaderGraph] Added random nodes

TothBenoit 9 月之前
父节点
当前提交
bd45972eb1
共有 3 个文件被更改,包括 54 次插入0 次删除
  1. 17 0
      hrt/shgraph/nodes/Random.hx
  2. 18 0
      hrt/shgraph/nodes/Random2D.hx
  3. 19 0
      hrt/shgraph/nodes/Random3D.hx

+ 17 - 0
hrt/shgraph/nodes/Random.hx

@@ -0,0 +1,17 @@
+package hrt.shgraph.nodes;
+
+using hxsl.Ast;
+
+@name("Random")
+@description("Gives a random number from a vec2 seed")
+@width(80)
+@group("Math")
+class Random extends ShaderNodeHxsl {
+	static var SRC = {
+		@sginput(0.0) var seed : Vec2;
+		@sgoutput var output : Float;
+		function fragment() {
+			output = fract(sin(dot(seed, vec2(12.9898,78.233)))*43758.5453123);
+		}
+	};
+}

+ 18 - 0
hrt/shgraph/nodes/Random2D.hx

@@ -0,0 +1,18 @@
+package hrt.shgraph.nodes;
+
+using hxsl.Ast;
+
+@name("Random2D")
+@description("Gives a random vec2 from a vec2 seed")
+@width(80)
+@group("Math")
+class Random2D extends ShaderNodeHxsl {
+	static var SRC = {
+		@sginput(0.0) var seed : Vec2;
+		@sgoutput var output : Vec2;
+		function fragment() {
+			output = vec2(fract(sin(dot(seed, vec2(12.9898,78.233)))*43758.5453123),
+			              fract(sin(dot(seed, vec2(1572.9898,132.237)))*157468.33458));
+		}
+	};
+}

+ 19 - 0
hrt/shgraph/nodes/Random3D.hx

@@ -0,0 +1,19 @@
+package hrt.shgraph.nodes;
+
+using hxsl.Ast;
+
+@name("Random3D")
+@description("Gives a random vec3 from a vec2 seed")
+@width(80)
+@group("Math")
+class Random3D extends ShaderNodeHxsl {
+	static var SRC = {
+		@sginput(0.0) var seed : Vec2;
+		@sgoutput var output : Vec3;
+		function fragment() {
+			output = vec3(fract(sin(dot(seed, vec2(12.9898,78.233)))*43758.5453123),
+			              fract(sin(dot(seed, vec2(1572.9898,132.237)))*157468.33458),
+			              fract(sin(dot(seed, vec2(14.5757,59.147)))*4756.281));
+		}
+	};
+}