Spaces:
Running
Running
| import { ShaderChunk } from './ShaderChunk.js'; | |
| import { mergeUniforms } from './UniformsUtils.js'; | |
| import { Vector3 } from '../../math/Vector3.js'; | |
| import { UniformsLib } from './UniformsLib.js'; | |
| import { Color } from '../../math/Color.js'; | |
| import { Matrix3 } from '../../math/Matrix3.js'; | |
| /** | |
| * @author alteredq / http://alteredqualia.com/ | |
| * @author mrdoob / http://mrdoob.com/ | |
| * @author mikael emtinger / http://gomo.se/ | |
| */ | |
| var ShaderLib = { | |
| basic: { | |
| uniforms: mergeUniforms( [ | |
| UniformsLib.common, | |
| UniformsLib.specularmap, | |
| UniformsLib.envmap, | |
| UniformsLib.aomap, | |
| UniformsLib.lightmap, | |
| UniformsLib.fog | |
| ] ), | |
| vertexShader: ShaderChunk.meshbasic_vert, | |
| fragmentShader: ShaderChunk.meshbasic_frag | |
| }, | |
| lambert: { | |
| uniforms: mergeUniforms( [ | |
| UniformsLib.common, | |
| UniformsLib.specularmap, | |
| UniformsLib.envmap, | |
| UniformsLib.aomap, | |
| UniformsLib.lightmap, | |
| UniformsLib.emissivemap, | |
| UniformsLib.fog, | |
| UniformsLib.lights, | |
| { | |
| emissive: { value: new Color( 0x000000 ) } | |
| } | |
| ] ), | |
| vertexShader: ShaderChunk.meshlambert_vert, | |
| fragmentShader: ShaderChunk.meshlambert_frag | |
| }, | |
| phong: { | |
| uniforms: mergeUniforms( [ | |
| UniformsLib.common, | |
| UniformsLib.specularmap, | |
| UniformsLib.envmap, | |
| UniformsLib.aomap, | |
| UniformsLib.lightmap, | |
| UniformsLib.emissivemap, | |
| UniformsLib.bumpmap, | |
| UniformsLib.normalmap, | |
| UniformsLib.displacementmap, | |
| UniformsLib.gradientmap, | |
| UniformsLib.fog, | |
| UniformsLib.lights, | |
| { | |
| emissive: { value: new Color( 0x000000 ) }, | |
| specular: { value: new Color( 0x111111 ) }, | |
| shininess: { value: 30 } | |
| } | |
| ] ), | |
| vertexShader: ShaderChunk.meshphong_vert, | |
| fragmentShader: ShaderChunk.meshphong_frag | |
| }, | |
| standard: { | |
| uniforms: mergeUniforms( [ | |
| UniformsLib.common, | |
| UniformsLib.envmap, | |
| UniformsLib.aomap, | |
| UniformsLib.lightmap, | |
| UniformsLib.emissivemap, | |
| UniformsLib.bumpmap, | |
| UniformsLib.normalmap, | |
| UniformsLib.displacementmap, | |
| UniformsLib.roughnessmap, | |
| UniformsLib.metalnessmap, | |
| UniformsLib.fog, | |
| UniformsLib.lights, | |
| { | |
| emissive: { value: new Color( 0x000000 ) }, | |
| roughness: { value: 0.5 }, | |
| metalness: { value: 0.5 }, | |
| envMapIntensity: { value: 1 } // temporary | |
| } | |
| ] ), | |
| vertexShader: ShaderChunk.meshphysical_vert, | |
| fragmentShader: ShaderChunk.meshphysical_frag | |
| }, | |
| matcap: { | |
| uniforms: mergeUniforms( [ | |
| UniformsLib.common, | |
| UniformsLib.bumpmap, | |
| UniformsLib.normalmap, | |
| UniformsLib.displacementmap, | |
| UniformsLib.fog, | |
| { | |
| matcap: { value: null } | |
| } | |
| ] ), | |
| vertexShader: ShaderChunk.meshmatcap_vert, | |
| fragmentShader: ShaderChunk.meshmatcap_frag | |
| }, | |
| points: { | |
| uniforms: mergeUniforms( [ | |
| UniformsLib.points, | |
| UniformsLib.fog | |
| ] ), | |
| vertexShader: ShaderChunk.points_vert, | |
| fragmentShader: ShaderChunk.points_frag | |
| }, | |
| dashed: { | |
| uniforms: mergeUniforms( [ | |
| UniformsLib.common, | |
| UniformsLib.fog, | |
| { | |
| scale: { value: 1 }, | |
| dashSize: { value: 1 }, | |
| totalSize: { value: 2 } | |
| } | |
| ] ), | |
| vertexShader: ShaderChunk.linedashed_vert, | |
| fragmentShader: ShaderChunk.linedashed_frag | |
| }, | |
| depth: { | |
| uniforms: mergeUniforms( [ | |
| UniformsLib.common, | |
| UniformsLib.displacementmap | |
| ] ), | |
| vertexShader: ShaderChunk.depth_vert, | |
| fragmentShader: ShaderChunk.depth_frag | |
| }, | |
| normal: { | |
| uniforms: mergeUniforms( [ | |
| UniformsLib.common, | |
| UniformsLib.bumpmap, | |
| UniformsLib.normalmap, | |
| UniformsLib.displacementmap, | |
| { | |
| opacity: { value: 1.0 } | |
| } | |
| ] ), | |
| vertexShader: ShaderChunk.normal_vert, | |
| fragmentShader: ShaderChunk.normal_frag | |
| }, | |
| sprite: { | |
| uniforms: mergeUniforms( [ | |
| UniformsLib.sprite, | |
| UniformsLib.fog | |
| ] ), | |
| vertexShader: ShaderChunk.sprite_vert, | |
| fragmentShader: ShaderChunk.sprite_frag | |
| }, | |
| background: { | |
| uniforms: { | |
| uvTransform: { value: new Matrix3() }, | |
| t2D: { value: null }, | |
| }, | |
| vertexShader: ShaderChunk.background_vert, | |
| fragmentShader: ShaderChunk.background_frag | |
| }, | |
| /* ------------------------------------------------------------------------- | |
| // Cube map shader | |
| ------------------------------------------------------------------------- */ | |
| cube: { | |
| uniforms: { | |
| tCube: { value: null }, | |
| tFlip: { value: - 1 }, | |
| opacity: { value: 1.0 } | |
| }, | |
| vertexShader: ShaderChunk.cube_vert, | |
| fragmentShader: ShaderChunk.cube_frag | |
| }, | |
| equirect: { | |
| uniforms: { | |
| tEquirect: { value: null }, | |
| }, | |
| vertexShader: ShaderChunk.equirect_vert, | |
| fragmentShader: ShaderChunk.equirect_frag | |
| }, | |
| distanceRGBA: { | |
| uniforms: mergeUniforms( [ | |
| UniformsLib.common, | |
| UniformsLib.displacementmap, | |
| { | |
| referencePosition: { value: new Vector3() }, | |
| nearDistance: { value: 1 }, | |
| farDistance: { value: 1000 } | |
| } | |
| ] ), | |
| vertexShader: ShaderChunk.distanceRGBA_vert, | |
| fragmentShader: ShaderChunk.distanceRGBA_frag | |
| }, | |
| shadow: { | |
| uniforms: mergeUniforms( [ | |
| UniformsLib.lights, | |
| UniformsLib.fog, | |
| { | |
| color: { value: new Color( 0x00000 ) }, | |
| opacity: { value: 1.0 } | |
| }, | |
| ] ), | |
| vertexShader: ShaderChunk.shadow_vert, | |
| fragmentShader: ShaderChunk.shadow_frag | |
| } | |
| }; | |
| ShaderLib.physical = { | |
| uniforms: mergeUniforms( [ | |
| ShaderLib.standard.uniforms, | |
| { | |
| clearCoat: { value: 0 }, | |
| clearCoatRoughness: { value: 0 } | |
| } | |
| ] ), | |
| vertexShader: ShaderChunk.meshphysical_vert, | |
| fragmentShader: ShaderChunk.meshphysical_frag | |
| }; | |
| export { ShaderLib }; | |