@luma.gl/effects
Version:
Post-processing effects for luma.gl
51 lines • 2.87 kB
TypeScript
/**
* 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