WebGLLights.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /**
  2. * @author mrdoob / http://mrdoob.com/
  3. */
  4. THREE.WebGLLights = function () {
  5. var lights = {};
  6. this.get = function ( light ) {
  7. if ( lights[ light.id ] !== undefined ) {
  8. return lights[ light.id ];
  9. }
  10. var uniforms;
  11. switch ( light.type ) {
  12. case 'HemisphereLight':
  13. uniforms = {
  14. direction: new THREE.Vector3(),
  15. skyColor: new THREE.Color(),
  16. groundColor: new THREE.Color()
  17. };
  18. break;
  19. case 'DirectionalLight':
  20. uniforms = {
  21. direction: new THREE.Vector3(),
  22. color: new THREE.Color(),
  23. shadow: - 1
  24. };
  25. break;
  26. case 'PointLight':
  27. uniforms = {
  28. position: new THREE.Vector3(),
  29. color: new THREE.Color(),
  30. distance: 0,
  31. decay: 0,
  32. shadow: - 1
  33. };
  34. break;
  35. case 'SpotLight':
  36. uniforms = {
  37. position: new THREE.Vector3(),
  38. direction: new THREE.Vector3(),
  39. color: new THREE.Color(),
  40. distance: 0,
  41. angleCos: 0,
  42. exponent: 0,
  43. decay: 0,
  44. shadow: - 1
  45. };
  46. break;
  47. }
  48. lights[ light.id ] = uniforms;
  49. return uniforms;
  50. };
  51. };