MeshPhongMaterial.js 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /**
  2. * @author mr.doob / http://mrdoob.com/
  3. * @author alteredq / http://alteredqualia.com/
  4. *
  5. * parameters = {
  6. * color: <hex>,
  7. * ambient: <hex>,
  8. * emissive: <hex>,
  9. * specular: <hex>,
  10. * shininess: <float>,
  11. * opacity: <float>,
  12. *
  13. * map: new THREE.Texture( <Image> ),
  14. *
  15. * lightMap: new THREE.Texture( <Image> ),
  16. *
  17. * envMap: new THREE.TextureCube( [posx, negx, posy, negy, posz, negz] ),
  18. * combine: THREE.Multiply,
  19. * reflectivity: <float>,
  20. * refractionRatio: <float>,
  21. *
  22. * shading: THREE.SmoothShading,
  23. * blending: THREE.NormalBlending,
  24. * depthTest: <bool>,
  25. *
  26. * wireframe: <boolean>,
  27. * wireframeLinewidth: <float>,
  28. *
  29. * vertexColors: false / THREE.VertexColors / THREE.FaceColors,
  30. * skinning: <bool>,
  31. *
  32. * fog: <bool>
  33. * }
  34. */
  35. THREE.MeshPhongMaterial = function ( parameters ) {
  36. THREE.Material.call( this, parameters );
  37. parameters = parameters || {};
  38. // color property represents diffuse for MeshPhongMaterial
  39. this.color = parameters.color !== undefined ? new THREE.Color( parameters.color ) : new THREE.Color( 0xffffff );
  40. this.ambient = parameters.ambient !== undefined ? new THREE.Color( parameters.ambient ) : new THREE.Color( 0xffffff );
  41. this.emissive = parameters.emissive !== undefined ? new THREE.Color( parameters.emissive ) : new THREE.Color( 0x000000 );
  42. this.specular = parameters.specular !== undefined ? new THREE.Color( parameters.specular ) : new THREE.Color( 0x111111 );
  43. this.shininess = parameters.shininess !== undefined ? parameters.shininess : 30;
  44. this.metal = parameters.metal !== undefined ? parameters.metal : false;
  45. this.perPixel = parameters.perPixel !== undefined ? parameters.perPixel : false;
  46. this.wrapAround = parameters.wrapAround !== undefined ? parameters.wrapAround: false;
  47. this.wrapRGB = new THREE.Vector3( 1, 1, 1 );
  48. this.map = parameters.map !== undefined ? parameters.map : null;
  49. this.lightMap = parameters.lightMap !== undefined ? parameters.lightMap : null;
  50. this.envMap = parameters.envMap !== undefined ? parameters.envMap : null;
  51. this.combine = parameters.combine !== undefined ? parameters.combine : THREE.MultiplyOperation;
  52. this.reflectivity = parameters.reflectivity !== undefined ? parameters.reflectivity : 1;
  53. this.refractionRatio = parameters.refractionRatio !== undefined ? parameters.refractionRatio : 0.98;
  54. this.fog = parameters.fog !== undefined ? parameters.fog : true;
  55. this.shading = parameters.shading !== undefined ? parameters.shading : THREE.SmoothShading;
  56. this.wireframe = parameters.wireframe !== undefined ? parameters.wireframe : false;
  57. this.wireframeLinewidth = parameters.wireframeLinewidth !== undefined ? parameters.wireframeLinewidth : 1;
  58. this.wireframeLinecap = parameters.wireframeLinecap !== undefined ? parameters.wireframeLinecap : 'round';
  59. this.wireframeLinejoin = parameters.wireframeLinejoin !== undefined ? parameters.wireframeLinejoin : 'round';
  60. this.vertexColors = parameters.vertexColors !== undefined ? parameters.vertexColors : false;
  61. this.skinning = parameters.skinning !== undefined ? parameters.skinning : false;
  62. this.morphTargets = parameters.morphTargets !== undefined ? parameters.morphTargets : false;
  63. this.morphNormals = parameters.morphNormals !== undefined ? parameters.morphNormals : false;
  64. };
  65. THREE.MeshPhongMaterial.prototype = new THREE.Material();
  66. THREE.MeshPhongMaterial.prototype.constructor = THREE.MeshPhongMaterial;
粤ICP备19079148号