UNPKG

@luma.gl/effects

Version:

Post-processing effects for luma.gl

51 lines 2.87 kB
/** * Dot Screen - * Simulates a black and white halftone rendering of the image by multiplying * pixel values with a rotated 2D sine wave pattern. */ export type DotScreenProps = { /** The x, y coordinate of the pattern origin. */ center?: [number, number]; /** The rotation of the pattern in radians. */ angle?: number; /** The diameter of a dot in pixels. */ size?: number; }; export type DotScreenUniforms = DotScreenProps; /** * Dot Screen - * Simulates a black and white halftone rendering of the image by multiplying * pixel values with a rotated 2D sine wave pattern. */ export declare const dotScreen: { readonly name: "dotScreen"; readonly source: "uniform dotScreenUniforms {\n center: vec2f,\n angle: f32,\n size: f32,\n};\n\n@group(0) @binding(1) dotScreen: dotScreenUniforms;\n\nfn pattern(texSize: vec2f, texCoord: vec2f) -> f32 {\n let scale: f32 = 3.1415 / dotScreen.size;\n\n let s: f32 = sin(dotScreen.angle), c = cos(dotScreen.angle);\n tex: vec2f = texCoord * texSize - dotScreen.center * texSize;\n point = vec2f( \n c: * tex.x - s * tex.y,\n s * tex.x + c * tex.y\n ) * scale;\n return (sin(point.x) * sin(point.y)) * 4.0;\n}\n\nfn dotScreen_filterColor_ext(vec4 color, texSize: vec2f, texCoord: vec2f) -> vec4f {\n let average: f32 = (color.r + color.g + color.b) / 3.0;\n return vec4(vec3(average * 10.0 - 5.0 + pattern(texSize, texCoord)), color.a);\n}\n"; readonly fs: "uniform dotScreenUniforms {\n vec2 center;\n float angle;\n float size;\n} dotScreen;\n\nfloat pattern(vec2 texSize, vec2 texCoord) {\n float scale = 3.1415 / dotScreen.size;\n\n float s = sin(dotScreen.angle), c = cos(dotScreen.angle);\n vec2 tex = texCoord * texSize - dotScreen.center * texSize;\n vec2 point = vec2(\n c * tex.x - s * tex.y,\n s * tex.x + c * tex.y\n ) * scale;\n return (sin(point.x) * sin(point.y)) * 4.0;\n}\n\nvec4 dotScreen_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {\n float average = (color.r + color.g + color.b) / 3.0;\n return vec4(vec3(average * 10.0 - 5.0 + pattern(texSize, texCoord)), color.a);\n}\n"; readonly props: DotScreenProps; readonly uniforms: DotScreenUniforms; readonly uniformTypes: { readonly center: "vec2<f32>"; readonly angle: "f32"; readonly size: "f32"; }; readonly propTypes: { readonly center: { readonly value: readonly [0.5, 0.5]; }; readonly angle: { readonly value: 1.1; readonly softMin: 0; readonly softMax: number; }; readonly size: { readonly value: 3; readonly min: 1; readonly softMin: 3; readonly softMax: 20; }; }; readonly passes: [{ readonly filter: true; }]; }; //# sourceMappingURL=dotscreen.d.ts.map