Added Sepia Shader.

Fixes for movecamera command overlapping each other.
Fix if a character changes pattern during a move tween it keeps the tween.
Pre load checks for henshin01.
Some changes and placeholders for custom effects.
This commit is contained in:
firebingo 2018-05-09 21:43:00 -07:00
parent 6134339bc6
commit 63f79738b0
3 changed files with 146 additions and 14 deletions

View file

@ -13,6 +13,7 @@ class Shaders {
vec2 mapCoord( vec2 coord ) {
coord *= filterArea.xy;
coord += filterArea.zw;
return coord;
}
@ -73,6 +74,7 @@ class Shaders {
vec2 mapCoord( vec2 coord ) {
coord *= filterArea.xy;
coord += filterArea.zw;
return coord;
}
@ -103,6 +105,7 @@ class Shaders {
vec2 mapCoord( vec2 coord ) {
coord *= filterArea.xy;
coord += filterArea.zw;
return coord;
}
@ -121,9 +124,31 @@ class Shaders {
gl_FragColor = color;
}`
this.sepiaShader = `
precision mediump float;
varying vec2 vTextureCoord;
uniform sampler2D uSampler;
uniform vec2 dimensions;
uniform float factor;
vec4 Sepia( in vec4 color )
{
return vec4(
clamp(color.r * 0.393 + color.g * 0.769 + color.b * 0.189, 0.0, 1.0)
, clamp(color.r * 0.349 + color.g * 0.686 + color.b * 0.168, 0.0, 1.0)
, clamp(color.r * 0.272 + color.g * 0.534 + color.b * 0.131, 0.0, 1.0)
, color.a
);
}
void main (void) {
gl_FragColor = texture2D(uSampler, vTextureCoord);
gl_FragColor = mix(gl_FragColor, Sepia(gl_FragColor), clamp(factor,0.0,1.0));
}`
this.shaders = {};
}
//https://jsfiddle.net/60e5pp8d/1/
buildShaders() {
let divalefttorightfade = new PIXI.Filter(null, this.leftToRightFadeShader, {
time: { type: 'f', value: 0 },
@ -161,9 +186,16 @@ class Shaders {
divadowntoupfade.apply = baseShaderApply;
this.shaders['divadowntoupfade'] = divadowntoupfade;
let sepia = new PIXI.Filter(null, this.sepiaShader, {
factor: { type: 'f', value: 0.5 },
dimensions: { type: 'v2', value: [baseDimensions.width, baseDimensions.height] }
});
sepia.apply = baseShaderApply;
this.shaders['sepia'] = sepia;
function baseShaderApply(filterManager, input, output) {
this.uniforms.dimensions[0] = input.sourceFrame.width
this.uniforms.dimensions[1] = input.sourceFrame.height
this.uniforms.dimensions[0] = input.sourceFrame.width;
this.uniforms.dimensions[1] = input.sourceFrame.height;
filterManager.applyFilter(this, input, output);
}
}