UniformsLib.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. import { Color } from '../../math/Color.js';
  2. import { Vector2 } from '../../math/Vector2.js';
  3. import { Matrix3 } from '../../math/Matrix3.js';
  4. /**
  5. * Uniforms library for shared webgl shaders
  6. */
  7. const UniformsLib = {
  8. common: {
  9. diffuse: { value: /*@__PURE__*/ new Color( 0xffffff ) },
  10. opacity: { value: 1.0 },
  11. map: { value: null },
  12. mapTransform: { value: /*@__PURE__*/ new Matrix3() },
  13. alphaMap: { value: null },
  14. alphaMapTransform: { value: /*@__PURE__*/ new Matrix3() },
  15. alphaTest: { value: 0 }
  16. },
  17. specularmap: {
  18. specularMap: { value: null },
  19. specularMapTransform: { value: /*@__PURE__*/ new Matrix3() }
  20. },
  21. envmap: {
  22. envMap: { value: null },
  23. envMapRotation: { value: /*@__PURE__*/ new Matrix3() },
  24. flipEnvMap: { value: - 1 },
  25. reflectivity: { value: 1.0 }, // basic, lambert, phong
  26. ior: { value: 1.5 }, // physical
  27. refractionRatio: { value: 0.98 }, // basic, lambert, phong
  28. },
  29. aomap: {
  30. aoMap: { value: null },
  31. aoMapIntensity: { value: 1 },
  32. aoMapTransform: { value: /*@__PURE__*/ new Matrix3() }
  33. },
  34. lightmap: {
  35. lightMap: { value: null },
  36. lightMapIntensity: { value: 1 },
  37. lightMapTransform: { value: /*@__PURE__*/ new Matrix3() }
  38. },
  39. bumpmap: {
  40. bumpMap: { value: null },
  41. bumpMapTransform: { value: /*@__PURE__*/ new Matrix3() },
  42. bumpScale: { value: 1 }
  43. },
  44. normalmap: {
  45. normalMap: { value: null },
  46. normalMapTransform: { value: /*@__PURE__*/ new Matrix3() },
  47. normalScale: { value: /*@__PURE__*/ new Vector2( 1, 1 ) }
  48. },
  49. displacementmap: {
  50. displacementMap: { value: null },
  51. displacementMapTransform: { value: /*@__PURE__*/ new Matrix3() },
  52. displacementScale: { value: 1 },
  53. displacementBias: { value: 0 }
  54. },
  55. emissivemap: {
  56. emissiveMap: { value: null },
  57. emissiveMapTransform: { value: /*@__PURE__*/ new Matrix3() }
  58. },
  59. metalnessmap: {
  60. metalnessMap: { value: null },
  61. metalnessMapTransform: { value: /*@__PURE__*/ new Matrix3() }
  62. },
  63. roughnessmap: {
  64. roughnessMap: { value: null },
  65. roughnessMapTransform: { value: /*@__PURE__*/ new Matrix3() }
  66. },
  67. gradientmap: {
  68. gradientMap: { value: null }
  69. },
  70. fog: {
  71. fogDensity: { value: 0.00025 },
  72. fogNear: { value: 1 },
  73. fogFar: { value: 2000 },
  74. fogColor: { value: /*@__PURE__*/ new Color( 0xffffff ) }
  75. },
  76. lights: {
  77. ambientLightColor: { value: [] },
  78. lightProbe: { value: [] },
  79. directionalLights: { value: [], properties: {
  80. direction: {},
  81. color: {}
  82. } },
  83. directionalLightShadows: { value: [], properties: {
  84. shadowIntensity: 1,
  85. shadowBias: {},
  86. shadowNormalBias: {},
  87. shadowRadius: {},
  88. shadowMapSize: {}
  89. } },
  90. directionalShadowMap: { value: [] },
  91. directionalShadowMatrix: { value: [] },
  92. spotLights: { value: [], properties: {
  93. color: {},
  94. position: {},
  95. direction: {},
  96. distance: {},
  97. coneCos: {},
  98. penumbraCos: {},
  99. decay: {}
  100. } },
  101. spotLightShadows: { value: [], properties: {
  102. shadowIntensity: 1,
  103. shadowBias: {},
  104. shadowNormalBias: {},
  105. shadowRadius: {},
  106. shadowMapSize: {}
  107. } },
  108. spotLightMap: { value: [] },
  109. spotShadowMap: { value: [] },
  110. spotLightMatrix: { value: [] },
  111. pointLights: { value: [], properties: {
  112. color: {},
  113. position: {},
  114. decay: {},
  115. distance: {}
  116. } },
  117. pointLightShadows: { value: [], properties: {
  118. shadowIntensity: 1,
  119. shadowBias: {},
  120. shadowNormalBias: {},
  121. shadowRadius: {},
  122. shadowMapSize: {},
  123. shadowCameraNear: {},
  124. shadowCameraFar: {}
  125. } },
  126. pointShadowMap: { value: [] },
  127. pointShadowMatrix: { value: [] },
  128. hemisphereLights: { value: [], properties: {
  129. direction: {},
  130. skyColor: {},
  131. groundColor: {}
  132. } },
  133. // TODO (abelnation): RectAreaLight BRDF data needs to be moved from example to main src
  134. rectAreaLights: { value: [], properties: {
  135. color: {},
  136. position: {},
  137. width: {},
  138. height: {}
  139. } },
  140. ltc_1: { value: null },
  141. ltc_2: { value: null }
  142. },
  143. points: {
  144. diffuse: { value: /*@__PURE__*/ new Color( 0xffffff ) },
  145. opacity: { value: 1.0 },
  146. size: { value: 1.0 },
  147. scale: { value: 1.0 },
  148. map: { value: null },
  149. alphaMap: { value: null },
  150. alphaMapTransform: { value: /*@__PURE__*/ new Matrix3() },
  151. alphaTest: { value: 0 },
  152. uvTransform: { value: /*@__PURE__*/ new Matrix3() }
  153. },
  154. sprite: {
  155. diffuse: { value: /*@__PURE__*/ new Color( 0xffffff ) },
  156. opacity: { value: 1.0 },
  157. center: { value: /*@__PURE__*/ new Vector2( 0.5, 0.5 ) },
  158. rotation: { value: 0.0 },
  159. map: { value: null },
  160. mapTransform: { value: /*@__PURE__*/ new Matrix3() },
  161. alphaMap: { value: null },
  162. alphaMapTransform: { value: /*@__PURE__*/ new Matrix3() },
  163. alphaTest: { value: 0 }
  164. }
  165. };
  166. export { UniformsLib };