@luma.gl/effects
Version:
Post-processing effects for luma.gl
30 lines • 2.19 kB
TypeScript
export type SepiaProps = {
amount?: number;
};
export type SepiaUniforms = SepiaProps;
/**
* @filter Sepia
* @description Gives the image a reddish-brown monochrome tint that imitates an old photograph.
* @param amount 0 to 1 (0 for no effect, 1 for full sepia coloring)
*/
export declare const sepia: {
readonly props: SepiaProps;
readonly uniforms: SepiaUniforms;
readonly name: "sepia";
readonly uniformTypes: {
readonly amount: "f32";
};
readonly propTypes: {
readonly amount: {
readonly value: 0.5;
readonly min: 0;
readonly max: 1;
};
};
readonly fs: "uniform sepiaUniforms {\n float amount;\n} sepia;\n\nvec4 sepia_filterColor(vec4 color) {\n float r = color.r;\n float g = color.g;\n float b = color.b;\n\n color.r =\n min(1.0, (r * (1.0 - (0.607 * sepia.amount))) + (g * (0.769 * sepia.amount)) + (b * (0.189 * sepia.amount)));\n color.g = min(1.0, (r * 0.349 * sepia.amount) + (g * (1.0 - (0.314 * sepia.amount))) + (b * 0.168 * sepia.amount));\n color.b = min(1.0, (r * 0.272 * sepia.amount) + (g * 0.534 * sepia.amount) + (b * (1.0 - (0.869 * sepia.amount))));\n\n return color;\n}\n\nvec4 sepia_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {\n return sepia_filterColor(color);\n}\n";
readonly source: "struct sepiaUniforms {\n amount: f32\n};\n\n@group(0) @binding(1) var<uniform> sepia: sepiaUniforms;\n\nfn sepia_filterColor(color: vec4f) -> vec4f {\n let r: f32 = color.r;\n let g: f32 = color.g;\n let b: f32 = color.b;\n\n color.r =\n min(1.0, (r * (1.0 - (0.607 * sepia.amount))) + (g * (0.769 * sepia.amount)) + (b * (0.189 * sepia.amount)));\n color.g = min(1.0, (r * 0.349 * sepia.amount) + (g * (1.0 - (0.314 * sepia.amount))) + (b * 0.168 * sepia.amount));\n color.b = min(1.0, (r * 0.272 * sepia.amount) + (g * 0.534 * sepia.amount) + (b * (1.0 - (0.869 * sepia.amount))));\n\n return color;\n}\n\nvec4 sepia_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {\n return sepia_filterColor(color);\n}\n";
readonly passes: [{
readonly filter: true;
}];
};
//# sourceMappingURL=sepia.d.ts.map