ShaderLib.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. import { ShaderChunk } from './ShaderChunk';
  2. import { Vector3 } from '../../math/Vector3';
  3. import { UniformsLib } from './UniformsLib';
  4. import { Color } from '../../math/Color';
  5. /**
  6. * @author alteredq / http://alteredqualia.com/
  7. * @author mrdoob / http://mrdoob.com/
  8. * @author mikael emtinger / http://gomo.se/
  9. */
  10. var ShaderLib = {
  11. basic: {
  12. uniforms: Object.assign( {},
  13. UniformsLib.common,
  14. UniformsLib.aomap,
  15. UniformsLib.lightmap,
  16. UniformsLib.fog
  17. ),
  18. vertexShader: ShaderChunk.meshbasic_vert,
  19. fragmentShader: ShaderChunk.meshbasic_frag
  20. },
  21. lambert: {
  22. uniforms: Object.assign( {},
  23. UniformsLib.common,
  24. UniformsLib.aomap,
  25. UniformsLib.lightmap,
  26. UniformsLib.emissivemap,
  27. UniformsLib.fog,
  28. UniformsLib.lights,
  29. {
  30. emissive : { value: new Color( 0x000000 ) }
  31. }
  32. ),
  33. vertexShader: ShaderChunk.meshlambert_vert,
  34. fragmentShader: ShaderChunk.meshlambert_frag
  35. },
  36. phong: {
  37. uniforms: Object.assign( {},
  38. UniformsLib.common,
  39. UniformsLib.aomap,
  40. UniformsLib.lightmap,
  41. UniformsLib.emissivemap,
  42. UniformsLib.bumpmap,
  43. UniformsLib.normalmap,
  44. UniformsLib.displacementmap,
  45. UniformsLib.gradientmap,
  46. UniformsLib.fog,
  47. UniformsLib.lights,
  48. {
  49. emissive : { value: new Color( 0x000000 ) },
  50. specular : { value: new Color( 0x111111 ) },
  51. shininess: { value: 30 }
  52. }
  53. ),
  54. vertexShader: ShaderChunk.meshphong_vert,
  55. fragmentShader: ShaderChunk.meshphong_frag
  56. },
  57. standard: {
  58. uniforms: Object.assign( {},
  59. UniformsLib.common,
  60. UniformsLib.aomap,
  61. UniformsLib.lightmap,
  62. UniformsLib.emissivemap,
  63. UniformsLib.bumpmap,
  64. UniformsLib.normalmap,
  65. UniformsLib.displacementmap,
  66. UniformsLib.roughnessmap,
  67. UniformsLib.metalnessmap,
  68. UniformsLib.fog,
  69. UniformsLib.lights,
  70. {
  71. emissive : { value: new Color( 0x000000 ) },
  72. roughness: { value: 0.5 },
  73. metalness: { value: 0 },
  74. envMapIntensity : { value: 1 }, // temporary
  75. }
  76. ),
  77. vertexShader: ShaderChunk.meshphysical_vert,
  78. fragmentShader: ShaderChunk.meshphysical_frag
  79. },
  80. points: {
  81. uniforms: Object.assign( {},
  82. UniformsLib.points,
  83. UniformsLib.fog
  84. ),
  85. vertexShader: ShaderChunk.points_vert,
  86. fragmentShader: ShaderChunk.points_frag
  87. },
  88. dashed: {
  89. uniforms: Object.assign( {},
  90. UniformsLib.common,
  91. UniformsLib.fog,
  92. {
  93. scale : { value: 1 },
  94. dashSize : { value: 1 },
  95. totalSize: { value: 2 }
  96. }
  97. ),
  98. vertexShader: ShaderChunk.linedashed_vert,
  99. fragmentShader: ShaderChunk.linedashed_frag
  100. },
  101. depth: {
  102. uniforms: Object.assign( {},
  103. UniformsLib.common,
  104. UniformsLib.displacementmap
  105. ),
  106. vertexShader: ShaderChunk.depth_vert,
  107. fragmentShader: ShaderChunk.depth_frag
  108. },
  109. normal: {
  110. uniforms: Object.assign( {},
  111. UniformsLib.common,
  112. UniformsLib.bumpmap,
  113. UniformsLib.normalmap,
  114. UniformsLib.displacementmap,
  115. {
  116. opacity : { value: 1.0 }
  117. }
  118. ),
  119. vertexShader: ShaderChunk.normal_vert,
  120. fragmentShader: ShaderChunk.normal_frag
  121. },
  122. /* -------------------------------------------------------------------------
  123. // Cube map shader
  124. ------------------------------------------------------------------------- */
  125. cube: {
  126. uniforms: {
  127. tCube: { value: null },
  128. tFlip: { value: - 1 },
  129. opacity: { value: 1.0 }
  130. },
  131. vertexShader: ShaderChunk.cube_vert,
  132. fragmentShader: ShaderChunk.cube_frag
  133. },
  134. /* -------------------------------------------------------------------------
  135. // Cube map shader
  136. ------------------------------------------------------------------------- */
  137. equirect: {
  138. uniforms: {
  139. tEquirect: { value: null },
  140. tFlip: { value: - 1 }
  141. },
  142. vertexShader: ShaderChunk.equirect_vert,
  143. fragmentShader: ShaderChunk.equirect_frag
  144. },
  145. distanceRGBA: {
  146. uniforms: {
  147. lightPos: { value: new Vector3() }
  148. },
  149. vertexShader: ShaderChunk.distanceRGBA_vert,
  150. fragmentShader: ShaderChunk.distanceRGBA_frag
  151. }
  152. };
  153. ShaderLib.physical = {
  154. uniforms: Object.assign( {},
  155. ShaderLib.standard.uniforms,
  156. {
  157. clearCoat: { value: 0 },
  158. clearCoatRoughness: { value: 0 }
  159. }
  160. ),
  161. vertexShader: ShaderChunk.meshphysical_vert,
  162. fragmentShader: ShaderChunk.meshphysical_frag
  163. };
  164. export { ShaderLib };
粤ICP备19079148号