import { Color } from '../../math/Color.js'; import { Vector2 } from '../../math/Vector2.js'; import { Matrix3 } from '../../math/Matrix3.js'; /** * Uniforms library for shared webgl shaders */ const UniformsLib = { common: { diffuse: { value: new Color(0xffffff) }, opacity: { value: 1.0 }, map: { value: null }, uvTransform: { value: new Matrix3() }, uv2Transform: { value: new Matrix3() }, alphaMap: { value: null }, alphaTest: { value: 0 }, }, specularmap: { specularMap: { value: null }, }, envmap: { envMap: { value: null }, flipEnvMap: { value: -1 }, reflectivity: { value: 1.0 }, // basic, lambert, phong ior: { value: 1.5 }, // standard, physical refractionRatio: { value: 0.98 }, }, aomap: { aoMap: { value: null }, aoMapIntensity: { value: 1 }, }, lightmap: { lightMap: { value: null }, lightMapIntensity: { value: 1 }, }, emissivemap: { emissiveMap: { value: null }, }, bumpmap: { bumpMap: { value: null }, bumpScale: { value: 1 }, }, normalmap: { normalMap: { value: null }, normalScale: { value: new Vector2(1, 1) }, }, displacementmap: { displacementMap: { value: null }, displacementScale: { value: 1 }, displacementBias: { value: 0 }, }, roughnessmap: { roughnessMap: { value: null }, }, metalnessmap: { metalnessMap: { value: null }, }, gradientmap: { gradientMap: { value: null }, }, fog: { fogDensity: { value: 0.00025 }, fogNear: { value: 1 }, fogFar: { value: 2000 }, fogColor: { value: new Color(0xffffff) }, }, lights: { ambientLightColor: { value: [] }, lightProbe: { value: [] }, directionalLights: { value: [], properties: { direction: {}, color: {}, }, }, directionalLightShadows: { value: [], properties: { shadowBias: {}, shadowNormalBias: {}, shadowRadius: {}, shadowMapSize: {}, }, }, directionalShadowMap: { value: [] }, directionalShadowMatrix: { value: [] }, spotLights: { value: [], properties: { color: {}, position: {}, direction: {}, distance: {}, coneCos: {}, penumbraCos: {}, decay: {}, }, }, spotLightShadows: { value: [], properties: { shadowBias: {}, shadowNormalBias: {}, shadowRadius: {}, shadowMapSize: {}, }, }, spotShadowMap: { value: [] }, spotShadowMatrix: { value: [] }, pointLights: { value: [], properties: { color: {}, position: {}, decay: {}, distance: {}, }, }, pointLightShadows: { value: [], properties: { shadowBias: {}, shadowNormalBias: {}, shadowRadius: {}, shadowMapSize: {}, shadowCameraNear: {}, shadowCameraFar: {}, }, }, pointShadowMap: { value: [] }, pointShadowMatrix: { value: [] }, hemisphereLights: { value: [], properties: { direction: {}, skyColor: {}, groundColor: {}, }, }, // TODO (abelnation): RectAreaLight BRDF data needs to be moved from example to main src rectAreaLights: { value: [], properties: { color: {}, position: {}, width: {}, height: {}, }, }, ltc_1: { value: null }, ltc_2: { value: null }, }, points: { diffuse: { value: new Color(0xffffff) }, opacity: { value: 1.0 }, size: { value: 1.0 }, scale: { value: 1.0 }, map: { value: null }, alphaMap: { value: null }, alphaTest: { value: 0 }, uvTransform: { value: new Matrix3() }, }, sprite: { diffuse: { value: new Color(0xffffff) }, opacity: { value: 1.0 }, center: { value: new Vector2(0.5, 0.5) }, rotation: { value: 0.0 }, map: { value: null }, alphaMap: { value: null }, alphaTest: { value: 0 }, uvTransform: { value: new Matrix3() }, }, }; export { UniformsLib };