import { Texture, Vector2 } from "three"; import type { IUniform } from "three"; import { GradientTextureOptions } from "@three3d/tools"; import type { GradientData3DOptions } from "../../Data3D"; import { type GradientData3DTexture } from "./GradientData3DTexture"; import { VolumeMaterialUniforms, VolumeMaterialOptions, VolumeMaterial } from "../VolumeMaterial"; /** * GradientVolumeMaterial 的 uniforms 类型 */ export interface GradientVolumeMaterialUniforms extends VolumeMaterialUniforms { gradient: IUniform; range: IUniform; discardOut: IUniform; voidRange: IUniform; } /** * 梯度体积材质选项 */ export interface GradientVolumeMaterialOptions extends VolumeMaterialOptions, GradientData3DOptions { /** * 数值的梯度映射纹理 */ gradient?: GradientTextureOptions | null; } /** * 梯度体积材质 */ export declare class GradientVolumeMaterial extends VolumeMaterial { readonly isGradientVolumeMaterial = true; constructor(options?: GradientVolumeMaterialOptions); /** * 数值的梯度映射纹理 */ get gradient(): Texture | null; set gradient(value: Texture | null); /** * 数值的映射区间 * @remarks * x 为最小值,y 为最大值 * * @defaultValue {x:0,y:100} */ get range(): Vector2; set range(value: Vector2); /** * 是否丢弃超出映射范围的数值 * @remarks * 当数值超出映射区间 {@link GradientVolumeMaterial.range} 时,是否丢弃; * * 包含左右边界值 * @defaultValue true */ get discardOut(): boolean; set discardOut(value: boolean); /** * 空值的范围 * @remarks * 当数值在此范围中时,会被认为是空的值,渲染时会被丢弃 * * 包含左右边界值 * * @defaultValue {x:-100,y:-1} */ get voidRange(): Vector2; set voidRange(value: Vector2); } //# sourceMappingURL=GradientVolumeMaterial.d.ts.map