UNPKG

@three3d/effect

Version:

@three3d/effect 提供了 ThreeJS 的特效

43 lines 1.86 kB
import type { Material, Shader } from "three"; import { Vector2 } from "three"; import { type OnBeforeCompile, type ModifiedMaterial } from "../onBeforeCompile"; /** * uvDrawRange 增加的 uniforms */ export declare const uvDrawRange_uniforms: { invert: boolean; enableURange: boolean; enableVRange: boolean; uvMax: Vector2; uvMin: Vector2; }; /** * uvDrawRange 在片元着色器中增加的代核心代码 */ export declare const uvDrawRange_fragment_mainReplace = "\nuniform bool invert;\nuniform bool enableURange;\nuniform bool enableVRange;\n\nuniform vec2 uvMax;\nuniform vec2 uvMin;\nvoid main() {\n bool isDiscard = false;\n #if defined(USE_MAP) || defined(USE_UV)\n vec2 rangeUV; \n #ifdef USE_MAP\n rangeUV = vMapUv;\n #else\n rangeUV = vUv;\n #endif\n bool xDiscard = enableURange && ( uvMin.x > rangeUV.x || rangeUV.x > uvMax.x);\n bool yDiscard = enableVRange && (uvMin.y > rangeUV.y || rangeUV.y > uvMax.y);\n isDiscard = xDiscard || yDiscard;\n #endif\n\n if (invert){\n isDiscard = !isDiscard;\n }\n if (isDiscard) discard;\n"; /** * uvDrawRange 的 shader 的修改器 * @remarks * Mender 都是用于 `createOnBeforeCompile` 方法的 * @param shader */ export declare function uvDrawRange_Mender(shader: Shader): void; /** * uvDrawRange 用于材质的 onBeforeCompile 函数 */ export declare const uvDrawRange_onBeforeCompile: OnBeforeCompile; /** * 用于实现绘制指定uv范围的材质修改器 * @remarks * 材质被修改后可具备设置绘制指定uv范围 * @param material * @returns */ export declare function uvDrawRangeModifier<M extends Material>(material: M): ModifiedMaterial<M, { invert: boolean; enableURange: boolean; enableVRange: boolean; uvMax: Vector2; uvMin: Vector2; }>; //# sourceMappingURL=uvDrawRange.d.ts.map