12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package hrt.shgraph.nodes;
- using hxsl.Ast;
- @name("Strip Alpha")
- @description("Separate the rgb and a components of an rgba vector")
- @group("Channel")
- class StripAlpha extends ShaderNode {
- @input("RGBA") var input = SType.Vec4;
- @output("RGB") var rgb = SType.Vec3;
- @output("A") var a = SType.Float;
- override public function computeOutputs() {
- addOutput("rgb", TVec(3, VFloat));
- addOutput("a", TFloat);
- }
- override public function build(key : String) : TExpr {
- if( key == "a" ) {
- return { e: TBinop(OpAssign, {
- e: TVar(getOutput(key)),
- p: null,
- t: getOutput(key).type
- }, {
- e: TSwiz(input.getVar(TVec(4, VFloat)), [W]),
- p: null,
- t: getOutput(key).type
- }),
- p: null,
- t: getOutput(key).type
- };
- }
- return { e: TBinop(OpAssign, {
- e: TVar(getOutput(key)),
- p: null,
- t: getOutput(key).type
- }, {
- e: TSwiz(input.getVar(TVec(4, VFloat)), [X, Y, Z]),
- p: null,
- t: getOutput(key).type
- }),
- p: null,
- t: getOutput(key).type
- };
- }
- }
|