Ho iniziato con il renderer WebGL di ThreeJS dopo aver eseguito un WebGL "regolare" senza librerie aggiuntive + shader GLSL. Sto cercando di scrivere shader personalizzati ora nel mio programma ThreeJS e ho notato che ThreeJS si occupa di molte cose standard come le matrici di proiezione e di modello/vista. Il mio semplice vertex shader ora assomiglia a questo:Attributi shader predefiniti ThreeJS/uniformi
// All of these seem to be predefined:
// vec3 position;
// mat4 projectionMatrix;
// mat4 modelViewMatrix;
// mat3 normalMatrix;
// vec3 normal;
// I added this
varying vec3 vNormal;
void main() {
vNormal = normalMatrix * vec3(normal);
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
}
La mia domanda è: quale di altre caratteristiche variabili (sto supponendo che siano uniformi) sono predefiniti per il vertex shader e frammenti che potrei usare? ThreeJS aiuta con i vettori della luce/il colore della luce ad esempio (ovviamente supponendo che abbia aggiunto una o più luci alla mia scena ThreeJS)?
aggiornamento (9 ott 2014): Questa domanda è stata sempre un bel po 'di vista, e l'utente Killah ha detto che le risposte esistenti non hanno portato ad una soluzione più con la versione corrente di Three.js. Ho aggiunto e accettato la mia risposta, vedi sotto.
Bella domanda, '+ 1' –