import { NodeMaterial } from 'three/webgpu'; import type { Storage3DTexture } from 'three/webgpu'; /** * Material for rendering individual slices/layers of 3D SDF textures. * * Visualizes signed distance values as color (red = inside, green = outside). * Supports both single-layer and grid-of-layers display modes. * * **Display Modes:** * - **Single Layer**: Shows one Z-slice of the SDF volume * - **Grid**: Shows all Z-slices arranged in a square grid * * **Color Encoding:** * - Red channel: negative distances (inside volume) * - Green channel: positive distances (outside volume) * * @example * import { RenderSDFLayerNodeMaterial } from 'three-blocks/sdf-raymarching'; * import { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass.js'; * * const material = new RenderSDFLayerNodeMaterial(sdfTexture); * const quad = new FullScreenQuad(material); * * // Single layer mode * material.fragmentNode.parameters.layer.value = 32; * material.fragmentNode.parameters.grid_mode.value = false; * quad.render(renderer); * * // Grid mode (all layers) * material.fragmentNode.parameters.grid_mode.value = true; * quad.render(renderer); * * @class RenderSDFLayerNodeMaterial * @extends {NodeMaterial} */ export declare class RenderSDFLayerNodeMaterial extends NodeMaterial { /** * Create an SDF slice-debug material for a 3D storage texture. * * @param {THREE.Storage3DTexture} sdfTexture - 3D SDF texture to visualize */ constructor(sdfTexture: Storage3DTexture); }