Costruttore per il programma GLSL inviato agli shader vertex e fragment, comprese le uniformi e gli attributi.
// = object.matrixWorld
uniform mat4 modelMatrix;
// = camera.matrixWorldInverse * object.matrixWorld
uniform mat4 modelViewMatrix;
// = camera.projectionMatrix
uniform mat4 projectionMatrix;
// = camera.matrixWorldInverse
uniform mat4 viewMatrix;
// = trasposizione inversa di modelViewMatrix
uniform mat3 normalMatrix;
// = posizione della telecamera nello spazio world
uniform vec3 cameraPosition;
// attributi di vertice predefiniti forniti da Geometry e BufferGeometry
attribute vec3 position;
attribute vec3 normal;
attribute vec2 uv;
Si noti che è possibile quindi calcolare la posizione di un vertice nel vertex shader con:
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
o in alternativa
gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4( position, 1.0 );
#if defined( USE_COLOR_ALPHA )
// attributo del colore del vertice con alfa
attribute vec4 color;
#elif defined( USE_COLOR )
// attributo del colore del vertice
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
#ifdef USE_INSTANCING
// Si noti che modelViewMatrix non è impostato durante il rendering di un modello istanziato,
// ma può essere calcolato da viewMatrix * modelMatrix.
//
// Utilizzo di base:
// gl_Position = projectionMatrix * viewMatrix * modelMatrix * instanceMatrix * vec4(position, 1.0);
attribute mat4 instanceMatrix;
#endif
uniform mat4 viewMatrix;
uniform vec3 cameraPosition;
Per i parametri vedere [page:WebGLRenderer WebGLRenderer].
Il nome del rispettivo programma di shader.
L'identificativo di questa istanza.
Questa chiave consente la riutilizzabilità di un unico [name] per diversi materiali.
Quante volte questa istanza viene utilizzata per il rendering di elementi di rendering.
L'attuale programma di shader.
Il vertex shader.
Il fragment shader.
Restituisce una mappa nome-valore di tutte le posizioni uniformi attive.
Restituisce una mappa nome-valore di tutte le posizioni degli attributi dei vertici attivi.
Distrugge un'istanza di [name].
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]