edge webgl frag

This commit is contained in:
Michal Kolář
2022-11-02 13:19:12 +01:00
parent b9476cf08b
commit 675bdf4c87
2 changed files with 72 additions and 0 deletions

71
src/nodes/WebGL/Edge.ts Normal file
View 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);
}
}

View File

@@ -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';