/// import { ShaderMaterial, Vector3, Vector2, Texture } from "three"; import type { Data3DTexture, IUniform } from "three"; import { GradientTextureOptions } from "@three3d/tools"; /** * 体积渲染样式 */ export declare enum VolumeRenderStyle { /** * 密度投影 * @remarks * 会显示出几何体的外面 */ MIP = 0, /** * 标准的样式 */ ISO = 1 } /** * 体积材质选项 */ export interface ExampleVolumeMaterial_1Options { /** * 渲染样式 */ style?: VolumeRenderStyle | null; /** * 渲染最低阈值 * @remarks * 只对 ISO 样式有效; * * 当三维纹理中的值低于该值时,不会被渲染,即视为空 */ threshold?: number | null; /** * 映射区间 * @remarks * x 为最小值,y 为最大值 */ clim?: Vector2 | null; /** * 三维纹理 */ map?: Data3DTexture | null; /** * 颜色映射纹理 */ gradient?: GradientTextureOptions | null; } export interface ExampleVolumeMaterial_1Uniforms { u_size: IUniform; u_renderstyle: IUniform; u_renderthreshold: IUniform; u_clim: IUniform; u_data: IUniform; u_cmdata: IUniform; } /** * 体积材质 */ export declare class ExampleVolumeMaterial_1 extends ShaderMaterial { readonly isExampleVolumeMaterial_1 = true; constructor(options?: ExampleVolumeMaterial_1Options); uniforms: ExampleVolumeMaterial_1Uniforms; /** * 三维纹理 */ get map(): Data3DTexture | null; set map(value: Data3DTexture | null); /** * 颜色映射纹理 * @remarks * 会将垂直居中的那条水平像素从左到右映射到 clim 表示的限制区间, * 即 clim.x 对应最左边的像素,clim.y 对应最右边的像素 */ get gradientMap(): Texture | null; protected _gradient?: null | GradientTextureOptions; /** * 颜色映射选项 */ get gradient(): GradientTextureOptions | null | undefined; set gradient(value: GradientTextureOptions | null | undefined); /** * 三维纹理的尺寸 * @remarks * 三维纹理的尺寸 要 和 Geometry 的尺寸是一样的,不但比列一样,大小也是一样的 * 但 mesh 本身可以进行几何变换; * Geometry 左下角的坐标要从 (0,0,0) 开始; */ get size(): Vector3; set size(value: Vector3); /** * 渲染样式 */ get style(): VolumeRenderStyle; set style(value: VolumeRenderStyle); /** * 映射区间 * @remarks * x 为最小值,y 为最大值 */ get clim(): Vector2; set clim(value: Vector2); /** * 渲染最低阈值 * @remarks * 只对 ISO 样式有效; * * 当三维纹理中的值低于该值时,不会被渲染,即视为空 */ get threshold(): number; set threshold(value: number); } //# sourceMappingURL=ExampleVolumeMaterial_1.d.ts.map