[name]
Constructor for the GLSL program sent to vertex and fragment shaders, including default uniforms and attributes.
Built-in uniforms and attributes
Vertex shader (unconditional):
// = object.matrixWorld
uniform mat4 modelMatrix;
// = camera.matrixWorldInverse * object.matrixWorld
uniform mat4 modelViewMatrix;
// = camera.projectionMatrix
uniform mat4 projectionMatrix;
// = camera.matrixWorldInverse
uniform mat4 viewMatrix;
// = inverse transpose of modelViewMatrix
uniform mat3 normalMatrix;
// = camera.position
uniform vec3 cameraPosition;
attribute vec3 position;
attribute vec3 normal;
attribute vec2 uv;
attribute vec2 uv2;
Vertex shader (conditional):
#ifdef USE_COLOR
attribute vec3 color;
#endif
#ifdef USE_MORPHTARGETS
attribute vec3 morphTarget0;
attribute vec3 morphTarget1;
attribute vec3 morphTarget2;
attribute vec3 morphTarget3;
#ifdef USE_MORPHNORMALS
attribute vec3 morphNormal0;
attribute vec3 morphNormal1;
attribute vec3 morphNormal2;
attribute vec3 morphNormal3;
#else
attribute vec3 morphTarget4;
attribute vec3 morphTarget5;
attribute vec3 morphTarget6;
attribute vec3 morphTarget7;
#endif
#endif
#ifdef USE_SKINNING
attribute vec4 skinIndex;
attribute vec4 skinWeight;
#endif
Fragment shader:
uniform mat4 viewMatrix;
uniform vec3 cameraPosition;
Constructor
[name]( [page:WebGLRenderer renderer], [page:Object code], [page:Material material], [page:Object parameters] )
For parameters see [page:WebGLRenderer WebGLRenderer]
Properties
.[page:Object uniforms]
.[page:Object attributes]
.[page:String id]
.[page:String code]
.[page:Integer usedTimes]
.[page:Object program]
.[page:WebGLShader vertexShader]
.[page:WebGLShader fragmentShader]
Methods
none
Source
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]