rendered paste bodybloomshader = [
shader 0 (concatword $arg1 "_scale") [ @fsvs @setup4corners END ] [
@fsps
@sample4corners
TEMP t;
ADD t, s02, s00;
ADD t, t, s22;
ADD t, t, s20;
ADD t, t, sample;
MUL result.color, t, 0.2;
END
]
shader 0 (concatword $arg1 "_init") [ @fsvs END ] [
@fsps
TEMP t;
MAX t, sample.r, sample.g;
MAX t, t, sample.b;
MUL t, t, t;
MUL result.color, t, sample;
END
]
shader 0 $arg1 [
@fsvs
TEMP tc;
MOV tc, vertex.texcoord[0];
@(loopconcat i (- $arg2 1) [concat "MUL tc, tc, 0.5; MOV result.texcoord[" (+ $i 1) "], tc;"])
END
] [
@fsps
TEMP scaled, bloom;
@(loopconcat i (- $arg2 1) [
format [
TEX @(if (> $i 0) [result "scaled"] [result "bloom"]), fragment.texcoord[%1], texture[%1], RECT;
@(if (> $i 0) [result [
ADD bloom, bloom, scaled;
]])
] (+ $i 1)
])
MAD result.color, bloom, program.env[0].x, sample;
END
]
]
bloomshader bloom1 1
bloomshader bloom2 2
bloomshader bloom3 3
bloomshader bloom4 4
bloomshader bloom5 5
bloomshader bloom6 6
bloomshader bloom 7
shader 0 "nightvision" [ @fsvs END ] [
@fsps
TEMP t;
DP3 t, sample, 4;
ADD t, t, .2;
MUL result.color, t, { 0, 1, 0};
END]