Browse Source

Adding SceneDepthToWorld shgraph node

clementlandrin 5 tháng trước cách đây
mục cha
commit
b144bb6cd9
1 tập tin đã thay đổi với 26 bổ sung0 xóa
  1. 26 0
      hrt/shgraph/nodes/SceneDepthToWorld.hx

+ 26 - 0
hrt/shgraph/nodes/SceneDepthToWorld.hx

@@ -0,0 +1,26 @@
+package hrt.shgraph.nodes;
+
+using hxsl.Ast;
+
+@name("SceneDepthToWorld")
+@description("Transform a scene depth to a world space position")
+@group("Property")
+class SceneDepthToWorld extends ShaderNodeHxsl {
+
+	static var SRC = {
+		@sginput var depth : Float;
+		@sgoutput var output : Vec3;
+
+		@global var camera : {
+			var inverseViewProj : Mat4;
+		};
+
+        var screenUV : Vec2;
+
+		function fragment() {
+			var ruv = vec4(uvToScreen(screenUV), depth, 1);
+			var ppos = ruv * camera.inverseViewProj;
+			output = ppos.xyz / ppos.w;
+		}
+	};
+}