import Mesh, { MeshOpts } from './Mesh'; import Material from './Material'; import type TextureCube from './TextureCube'; import type Texture2D from './Texture2D'; import Shader from './Shader'; interface SkyboxOpts extends MeshOpts { environmentMap?: TextureCube | Texture2D; } declare function createSkyboxShader(): Shader, { view: { type: "mat4"; semantic: "VIEW"; }; projection: { type: "mat4"; semantic: "PROJECTION"; }; }, { position: { type: "vec3"; semantic: "POSITION" | undefined; }; }, { v_WorldPosition: { type: "vec3"; }; /** * @constructor clay.plugin.Skybox * * @example * const skyTex = new clay.TextureCube(); * skyTex.load({ * 'px': 'assets/textures/sky/px.jpg', * 'nx': 'assets/textures/sky/nx.jpg' * 'py': 'assets/textures/sky/py.jpg' * 'ny': 'assets/textures/sky/ny.jpg' * 'pz': 'assets/textures/sky/pz.jpg' * 'nz': 'assets/textures/sky/nz.jpg' * }); * const skybox = new clay.plugin.Skybox({ * scene: scene * }); * skybox.material.set('environmentMap', skyTex); */ }, never>, import("./Shader").FragmentShader<{ PI: number; }, { equirectangularMap: { type: "sampler2D"; value: Texture2D; semantic: import("./Shader").UniformSemantic | import("./Shader").MatrixSemantic | undefined; }; cubeMap: { type: "samplerCube"; value: TextureCube; semantic: import("./Shader").UniformSemantic | import("./Shader").MatrixSemantic | undefined; }; lod: { type: "float"; value: number; semantic: import("./Shader").UniformSemantic | import("./Shader").MatrixSemantic | undefined; }; }, { defines: {}; uniforms: {}; attributes: {}; varyings: {}; functions: ((functionName?: string | undefined) => string)[]; main: string; }[]>>; /** * @constructor clay.plugin.Skybox * * @example * const skyTex = new clay.TextureCube(); * skyTex.load({ * 'px': 'assets/textures/sky/px.jpg', * 'nx': 'assets/textures/sky/nx.jpg' * 'py': 'assets/textures/sky/py.jpg' * 'ny': 'assets/textures/sky/ny.jpg' * 'pz': 'assets/textures/sky/pz.jpg' * 'nz': 'assets/textures/sky/nz.jpg' * }); * const skybox = new clay.plugin.Skybox({ * scene: scene * }); * skybox.material.set('environmentMap', skyTex); */ declare class Skybox extends Mesh>> { culling: boolean; private _envMap?; constructor(opts?: Partial); /** * Set environment map * @param {clay.TextureCube} envMap */ setEnvironmentMap(envMap: Texture2D | TextureCube): void; /** * Get environment map * @return {clay.TextureCube} */ getEnvironmentMap(): Texture2D | TextureCube | undefined; setLOD(lod: number): void; update(): void; } export default Skybox;