import { IUniform, Matrix4, Texture, Vector2 } from "three"; /** * References: * https://lettier.github.io/3d-game-shaders-for-beginners/screen-space-reflection.html */ export const SSRShader: SSRShader; export interface SSRShader { name: string; defines: { MAX_STEP: number; isPerspectiveCamera: boolean; isDistanceAttenuation: boolean; isFresnel: boolean; isInfiniteThick: boolean; isSelective: boolean; }; uniforms: { tDiffuse: IUniform; tNormal: IUniform; tMetalness: IUniform; tDepth: IUniform; cameraNear: IUniform; cameraFar: IUniform; resolution: IUniform; cameraProjectionMatrix: IUniform; cameraInverseProjectionMatrix: IUniform; opacity: IUniform; maxDistance: IUniform; cameraRange: IUniform; thickness: IUniform; }; vertexShader: string; fragmentShader: string; } export const SSRDepthShader: SSRDepthShader; export interface SSRDepthShader { name: string; defines: { PERSPECTIVE_CAMERA: number; }; uniforms: { tDepth: IUniform; cameraNear: IUniform; cameraFar: IUniform; }; vertexShader: string; fragmentShader: string; } export const SSRBlurShader: SSRBlurShader; export interface SSRBlurShader { name: string; uniforms: { tDiffuse: IUniform; resolution: IUniform; opacity: IUniform; }; vertexShader: string; fragmentShader: string; }