ShaderMaterial.js 2.1 KB
Newer Older
1 2 3 4
/**
 * @author alteredq / http://alteredqualia.com/
 *
 * parameters = {
5 6
 *  fragmentShader: <string>,
 *  vertexShader: <string>,
7
 *
M
Mr.doob 已提交
8
 *  uniforms: { "parameter1": { type: "f", value: 1.0 }, "parameter2": { type: "i" value2: 2 } },
9
 *
10 11
 *  shading: THREE.SmoothShading,
 *  blending: THREE.NormalBlending,
12
 *  depthTest: <bool>,
13
 *
14
 *  wireframe: <boolean>,
15
 *  wireframeLinewidth: <float>,
16
 *
17
 *  lights: <bool>,
18 19 20
 *
 *  vertexColors: THREE.NoColors / THREE.VertexColors / THREE.FaceColors,
 *
21 22
 *  skinning: <bool>,
 *  morphTargets: <bool>,
23 24 25
 *  morphNormals: <bool>,
 *
 *	fog: <bool>
26 27 28
 * }
 */

29
THREE.ShaderMaterial = function ( parameters ) {
30

31
	THREE.Material.call( this, parameters );
32

33
	parameters = parameters || {};
34

35 36 37
	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 : {};
38
	this.attributes = parameters.attributes;
39

40
	this.shading = parameters.shading !== undefined ? parameters.shading : THREE.SmoothShading;
41

42 43
	this.wireframe = parameters.wireframe !== undefined ? parameters.wireframe : false;
	this.wireframeLinewidth = parameters.wireframeLinewidth !== undefined ? parameters.wireframeLinewidth : 1;
44

45
	this.fog = parameters.fog !== undefined ? parameters.fog : false; // set to use scene fog
46

47
	this.lights = parameters.lights !== undefined ? parameters.lights : false; // set to use scene lights
48 49 50

	this.vertexColors = parameters.vertexColors !== undefined ? parameters.vertexColors : THREE.NoColors; // set to use "color" attribute stream

51
	this.skinning = parameters.skinning !== undefined ? parameters.skinning : false; // set to use skinning attribute streams
52

53
	this.morphTargets = parameters.morphTargets !== undefined ? parameters.morphTargets : false; // set to use morph targets
54
	this.morphNormals = parameters.morphNormals !== undefined ? parameters.morphNormals : false; // set to use morph normals
55

M
Mr.doob 已提交
56
};
57

58 59
THREE.ShaderMaterial.prototype = new THREE.Material();
THREE.ShaderMaterial.prototype.constructor = THREE.ShaderMaterial;