@three3d/effect
Version:
@three3d/effect 提供了 ThreeJS 的特效
43 lines • 1.86 kB
TypeScript
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