Dissolve.hx 569 B

12345678910111213141516171819202122232425
  1. package hrt.shgraph.nodes;
  2. using hxsl.Ast;
  3. @name("Dissolve")
  4. @description("Dissolve input")
  5. @width(180)
  6. @group("Math")
  7. class Dissolve extends ShaderNodeHxsl {
  8. static var SRC = {
  9. @sginput var dissolveMap : Vec4;
  10. @sginput(0.5) var progress : Float;
  11. @sginput(0.5) var saturation : Float;
  12. @sginput(1.0) var width : Float;
  13. @sgoutput var alpha : Float;
  14. function fragment() {
  15. var edge = mix(1.0 + width, -width, progress);
  16. var ramp = saturate((1.0 + saturation) * (width - abs(edge - dissolveMap.r)) / width);
  17. alpha = ramp * dissolveMap.a;
  18. }
  19. };
  20. }