MeshPhongMaterial.js 2.9 KB
Newer Older
1
/**
2
 * @author mr.doob / http://mrdoob.com/
3
 * @author alteredq / http://alteredqualia.com/
M
Mr.doob 已提交
4 5 6 7 8
 *
 * parameters = {
 *  ambient: <hex>,
 *  color: <hex>,
 *  specular: <hex>,
9 10 11
 *  map: new THREE.Texture( <Image> ),
 *  specular_map: new THREE.Texture( <Image> ),
 *  env_map: new THREE.TextureCube( [posx, negx, posy, negy, posz, negz] ),
M
Mr.doob 已提交
12
 *  shininess: <float>,
13
 *  reflectivity: <float>,
M
Mr.doob 已提交
14
 *  opacity: <float>,
15
 *  shading: THREE.SmoothShading,
16
 *  blending: THREE.NormalBlending,
M
Mr.doob 已提交
17 18
 *  wireframe: <boolean>,
 *  wireframe_linewidth: <float>
19
 * }
20 21
 */

M
Mr.doob 已提交
22
THREE.MeshPhongMaterial = function ( parameters ) {
23

24
	this.id = THREE.MeshPhongMaterialCounter.value ++;
25

M
Mr.doob 已提交
26
	this.color = new THREE.Color( 0xeeeeee );
M
Mr.doob 已提交
27 28 29 30
	this.map = null;
	this.ambient = new THREE.Color( 0x050505 );
	this.specular = new THREE.Color( 0x111111 );
	this.specular_map = null;
31
	this.env_map = null;
M
Mr.doob 已提交
32
	this.shininess = 30;
33
	this.reflectivity = 1;
M
Mr.doob 已提交
34
	this.opacity = 1;
35
	this.shading = THREE.SmoothShading;
M
Mr.doob 已提交
36 37 38
	this.blending = THREE.NormalBlending;
	this.wireframe = false;
	this.wireframe_linewidth = 1;
39

M
Mr.doob 已提交
40
	if ( parameters ) {
41

M
Mr.doob 已提交
42 43 44
		if ( parameters.color !== undefined ) this.color = new THREE.Color( parameters.color );
		if ( parameters.map !== undefined ) this.map = parameters.map;
		if ( parameters.ambient !== undefined ) this.ambient = new THREE.Color( parameters.ambient );
M
Mr.doob 已提交
45
		if ( parameters.specular !== undefined ) this.specular = new THREE.Color( parameters.specular );
M
Mr.doob 已提交
46
		if ( parameters.specular_map !== undefined ) this.specular_map = parameters.specular_map;
47
		if ( parameters.env_map !== undefined ) this.env_map = parameters.env_map;
M
Mr.doob 已提交
48
		if ( parameters.shininess !== undefined ) this.shininess = parameters.shininess;
49
		if ( parameters.reflectivity !== undefined ) this.reflectivity  = parameters.reflectivity;
M
Mr.doob 已提交
50 51 52 53 54
		if ( parameters.opacity !== undefined ) this.opacity = parameters.opacity;
		if ( parameters.shading !== undefined ) this.shading = parameters.shading;
		if ( parameters.blending !== undefined ) this.blending = parameters.blending;
		if ( parameters.wireframe !== undefined ) this.wireframe = parameters.wireframe;
		if ( parameters.wireframe_linewidth !== undefined ) this.wireframe_linewidth = parameters.wireframe_linewidth;
55

56
	}
M
Mr.doob 已提交
57 58 59 60 61 62 63

	this.toString = function () {

		return 'THREE.MeshPhongMaterial (<br/>' +
			'id: ' + this.id + '<br/>' +
			'color: ' + this.color + '<br/>' +
			'map: ' + this.map + '<br/>' +
64
			'env_map: ' + this.env_map + '<br/>' +
M
Mr.doob 已提交
65 66 67 68
			'ambient: ' + this.ambient + '<br/>' +
			'specular: ' + this.specular + '<br/>' +
			'specular_map: ' + this.specular_map + '<br/>' +
			'shininess: ' + this.shininess + '<br/>' +
69 70
			'reflectivity: ' + this.reflectivity + '<br/>' +
			'opacity: ' + this.opacity + '<br/>' +
M
Mr.doob 已提交
71 72 73 74 75 76 77
			'shading: ' + this.shading + '<br/>' +
			'wireframe: ' + this.wireframe + '<br/>' +
			'wireframe_linewidth: ' + this.wireframe_linewidth + '<br/>' +
			+ ')';

	};

78 79
};

80
THREE.MeshPhongMaterialCounter = { value: 0 };