MeshPhongMaterial.js 2.5 KB
Newer Older
1
/**
2
 * @author mr.doob / http://mrdoob.com/
3
 * @author alteredq / http://alteredqualia.com/
4 5 6 7 8 9 10 11 12 13 14 15 16
 
 * params = {
 * 	ambient: new THREE.Color(),
 * 	diffuse: new THREE.Color(),
 * 	specular: new THREE.Color(),
 *  diffuse_map: new THREE.UVMap( <Image> ),
 *  specular_map: new THREE.UVMap( <Image> ),
 *  shininess: float,
 *  alpha: float,
 *  shading: THREE.Phong,
 *  blending: THREE.AdditiveBlending,
 *  wireframe: false
 * }
17 18 19 20
 */

THREE.MeshPhongMaterial = function ( ambient, diffuse, specular, shininess, opacity ) {

21 22 23 24
    this.id = THREE.MeshPhongMaterial.value ++;
    
    this.params = this.setDefaultParams( params );
    
25 26
	this.toString = function () {

27 28 29 30 31 32 33 34 35
		return 'THREE.MeshPhongMaterial ( <br/>ambient: ' + this.params.ambient_color
                + ', <br/>diffuse: ' + this.params.diffuse 
                + ', <br/>specular: ' + this.params.specular 
                + ', <br/>shininess: ' + this.params.shininess 
                + ', <br/>alpha: ' + this.params.alpha
                + ', <br/>shading: ' + this.params.shading
                + ', <br/>wireframe: ' + this.params.wireframe
                + ', <br/>id: ' + this.params.id        
                + ')';
36 37 38 39

	};

};
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75

THREE.MeshPhongMaterial.setDefaultParams = function ( override ) {
    
    var params = {
        ambient: new THREE.Color( 0x050505 ),
        diffuse: new THREE.Color( 0xeeeeee ),
        specular: new THREE.Color( 0x111111 ),
        diffuse_map: null,
        specular_map: null,
        shininess: 30,
        alpha: 1.0,
        shading: THREE.Gourad,
        blending: THREE.AdditiveBlending,
        wireframe: false
    };
        
    if ( override != undefined ) {
        
        if( override.ambient != undefined ) params.ambient = override.ambient;
        if( override.diffuse != undefined ) params.diffuse = override.diffuse;
        if( override.specular != undefined ) params.specular = override.specular;
        if( override.diffuse_map != undefined ) params.diffuse_map = override.diffuse_map;
        if( override.specular_map != undefined ) params.specular_map = override.specular_map;
        if( override.shininess != undefined ) params.shininess = override.shininess;
        if( override.alpha != undefined ) params.alpha = override.alpha;
        if( override.shading != undefined ) params.shading = override.shading;
        if( override.blending != undefined ) params.blending = override.blending;
        if( override.wireframe != undefined ) params.wireframe = override.wireframe;
        
    }
    
    return params;
    
};

THREE.MeshPhongMaterial = { value: 0 };