/** * @author alteredq / http://alteredqualia.com/ * * parameters = { * fragmentShader: , * vertexShader: , * uniforms: { "parameter1": { type: "f", value: 1.0 }, "parameter2": { type: "i" value2: 2 } }, * shading: THREE.SmoothShading, * blending: THREE.NormalBlending, * depthTest: , * wireframe: , * wireframeLinewidth: , * lights: , * vertexColors: , * skinning: , * morphTargets: , * } */ THREE.MeshShaderMaterial = function ( parameters ) { THREE.Material.call( this, parameters ); parameters = parameters || {}; this.fragmentShader = parameters.fragmentShader !== undefined ? parameters.fragmentShader : "void main() {}"; this.vertexShader = parameters.vertexShader !== undefined ? parameters.vertexShader : "void main() {}"; this.uniforms = parameters.uniforms !== undefined ? parameters.uniforms : {}; this.attributes = parameters.attributes; this.shading = parameters.shading !== undefined ? parameters.shading : THREE.SmoothShading; this.wireframe = parameters.wireframe !== undefined ? parameters.wireframe : false; this.wireframeLinewidth = parameters.wireframeLinewidth !== undefined ? parameters.wireframeLinewidth : 1; this.fog = parameters.fog !== undefined ? parameters.fog : false; // set to use scene fog this.lights = parameters.lights !== undefined ? parameters.lights : false; // set to use scene lights this.vertexColors = parameters.vertexColors !== undefined ? parameters.vertexColors : false; // set to use "color" attribute stream this.skinning = parameters.skinning !== undefined ? parameters.skinning : false; // set to use skinning attribute streams this.morphTargets = parameters.morphTargets !== undefined ? parameters.morphTargets : false; // set to use morph targets }; THREE.MeshShaderMaterial.prototype = new THREE.Material(); THREE.MeshShaderMaterial.prototype.constructor = THREE.MeshShaderMaterial;