Merge pull request #10 from Dutch77/feature/edge-webgl-frag
edge webgl frag
This commit is contained in:
71
src/nodes/WebGL/Edge.ts
Normal file
71
src/nodes/WebGL/Edge.ts
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
import WebGL from './WebGl';
|
||||||
|
import {
|
||||||
|
NumberVar
|
||||||
|
} from '../io/AbstractIOSet';
|
||||||
|
|
||||||
|
const inputs = {
|
||||||
|
dx: {
|
||||||
|
type: 'Number',
|
||||||
|
default: 0,
|
||||||
|
} as NumberVar,
|
||||||
|
dy: {
|
||||||
|
type: 'Number',
|
||||||
|
default: 0,
|
||||||
|
} as NumberVar,
|
||||||
|
}
|
||||||
|
|
||||||
|
export default class Edge extends WebGL<typeof inputs> {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super('Edge', inputs)
|
||||||
|
}
|
||||||
|
|
||||||
|
get frag() {
|
||||||
|
return `
|
||||||
|
precision mediump float;
|
||||||
|
|
||||||
|
// our texture
|
||||||
|
uniform sampler2D u_image;
|
||||||
|
|
||||||
|
uniform vec2 u_resolution;
|
||||||
|
uniform vec2 u_textureSize;
|
||||||
|
|
||||||
|
// the texCoords passed in from the vertex shader.
|
||||||
|
varying vec2 v_texCoord;
|
||||||
|
|
||||||
|
|
||||||
|
uniform vec2 delta;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec2 onePixel = vec2(1.0, 1.0) / u_textureSize;
|
||||||
|
|
||||||
|
gl_FragColor = vec4(
|
||||||
|
(
|
||||||
|
(
|
||||||
|
texture2D(u_image, v_texCoord + onePixel * vec2(0, 0)) -
|
||||||
|
texture2D(u_image, v_texCoord + onePixel * delta)
|
||||||
|
) / 2.0 + 0.5
|
||||||
|
).xyz,
|
||||||
|
1
|
||||||
|
);
|
||||||
|
}
|
||||||
|
`
|
||||||
|
}
|
||||||
|
|
||||||
|
get dx() {
|
||||||
|
return this.in.dx.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
get dy() {
|
||||||
|
return this.in.dy.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {WebGLRenderingContext} gl
|
||||||
|
* @param {*} program
|
||||||
|
*/
|
||||||
|
_setParams(gl, program) {
|
||||||
|
gl.uniform2f(gl.getUniformLocation(program, "delta"), this.dx, this.dy);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -17,6 +17,7 @@ export {default as GradientMap} from './WebGL/GradientMap';
|
|||||||
export {default as ColorLookupTable} from './WebGL/ColorLookupTable';
|
export {default as ColorLookupTable} from './WebGL/ColorLookupTable';
|
||||||
export {default as Vignette} from './WebGL/Vignette';
|
export {default as Vignette} from './WebGL/Vignette';
|
||||||
// export {default as Blur} from './WebGL/Blur';
|
// export {default as Blur} from './WebGL/Blur';
|
||||||
|
export {default as Edge} from './WebGL/Edge';
|
||||||
// Math
|
// Math
|
||||||
export {default as Numbers} from './Math/Numbers';
|
export {default as Numbers} from './Math/Numbers';
|
||||||
export {default as NumberBinaryOperation} from './Math/NumberBinaryOperation';
|
export {default as NumberBinaryOperation} from './Math/NumberBinaryOperation';
|
||||||
|
|||||||
Reference in New Issue
Block a user