@takram/three-atmosphere
Version:
A Three.js and R3F implementation of Precomputed Atmospheric Scattering
37 lines (36 loc) • 1.9 kB
TypeScript
import { CSMShadowNode } from 'three/examples/jsm/csm/CSMShadowNode.js';
import { TempNode, NodeBuilder, NodeFrame, TextureNode } from 'three/webgpu';
import { Node } from '@takram/three-geospatial/webgpu';
import { CoordinateNode } from './ShadowLengthNode/CoordinateNode';
import { EpipolarShadowLengthNode } from './ShadowLengthNode/EpipolarShadowLengthNode';
import { MinMaxLevelsNode } from './ShadowLengthNode/MinMaxLevelsNode';
import { SliceEndpointsNode } from './ShadowLengthNode/SliceEndpointsNode';
import { SliceUVDirectionNode } from './ShadowLengthNode/SliceUVDirectionNode';
import { UnwarpEpipolarNode } from './ShadowLengthNode/UnwarpEpipolarNode';
export declare class ShadowLengthNode extends TempNode {
static get type(): string;
csmShadowNode: CSMShadowNode;
viewZUnitNode: TextureNode;
sliceEndpointsNode: SliceEndpointsNode;
coordinateNode: CoordinateNode;
sliceUVDirectionNode: SliceUVDirectionNode;
minMaxLevelsNode: MinMaxLevelsNode;
epipolarShadowLengthNode: EpipolarShadowLengthNode;
unwarpEpipolarNode: UnwarpEpipolarNode;
resolutionScale: number;
autoSampleResolution: boolean;
epipolarSliceCount: import('three/webgpu').UniformNode<number>;
maxSliceSampleCount: import('three/webgpu').UniformNode<number>;
firstCascade: import('three/webgpu').UniformNode<number>;
private readonly screenSize;
private readonly lightScreenPosition;
private readonly isLightOnScreen;
private currentCascades;
constructor(csmShadowNode: CSMShadowNode, viewZUnitNode: TextureNode);
customCacheKey(): number;
update({ renderer, material }: NodeFrame): void;
setup(builder: NodeBuilder): unknown;
getDebugInternalTexturesNode(uvNode?: Node<'vec2'>): Node<'vec3'>;
dispose(): void;
}
export declare const shadowLength: (...args: ConstructorParameters<typeof ShadowLengthNode>) => ShadowLengthNode;