浏览代码

Added GradientMapLife.hx

Clement Espeute 2 年之前
父节点
当前提交
1caae7d602
共有 1 个文件被更改,包括 24 次插入0 次删除
  1. 24 0
      hrt/shader/GradientMapLife.hx

+ 24 - 0
hrt/shader/GradientMapLife.hx

@@ -0,0 +1,24 @@
+package hrt.shader;
+
+class GradientMapLife extends hxsl.Shader {
+
+	static var SRC = {
+        @:import hrt.shader.BaseEmitter;
+		@const var sourceAlpha : Bool;
+		@const var destAlpha : Bool = true;
+
+
+        @param var gradient : Sampler2D;
+
+        function fragment() {
+			var t = sourceAlpha ? pixelColor.a : dot(pixelColor.rgb*pixelColor.rgb, vec3(0.2126, 0.7152, 0.0722));
+
+			// force texture reapeat
+			var s = gradient.size();
+			var sample = gradient.get(vec2(saturate(t), saturate(particleLife/particleLifeTime)) * (s-vec2(1.0))/(s));
+            pixelColor.rgb = sample.rgb;
+			if (destAlpha)
+				pixelColor.a = sample.a;
+        }
+	};
+}