Browse Source

WebGLRenderer3: Added MeshNormalMaterial support.

Mr.doob 12 years ago
parent
commit
6f171d7a45
1 changed files with 18 additions and 1 deletions
  1. 18 1
      examples/js/renderers/WebGLRenderer3.js

+ 18 - 1
examples/js/renderers/WebGLRenderer3.js

@@ -212,6 +212,23 @@ THREE.WebGLRenderer3 = function ( parameters ) {
 			vertexShader += material.vertexShader;
 			vertexShader += material.vertexShader;
 			fragmentShader += material.fragmentShader;
 			fragmentShader += material.fragmentShader;
 
 
+		} else if ( material instanceof THREE.MeshNormalMaterial ) {
+
+			vertexShader += [
+				'varying vec3 vNormal;',
+				'void main() {',
+				'	vNormal = normalize( normalMatrix * normal );',
+				'	gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',
+				'}'
+			].join( '\n' );
+
+			fragmentShader += [
+				'varying vec3 vNormal;',
+				'void main() {',
+				'	gl_FragColor = vec4( 0.5 * normalize( vNormal ) + 0.5, 1.0 );',
+				'}'
+			].join( '\n' );
+
 		} else {
 		} else {
 
 
 			vertexShader += [
 			vertexShader += [
@@ -222,7 +239,7 @@ THREE.WebGLRenderer3 = function ( parameters ) {
 
 
 			fragmentShader += [
 			fragmentShader += [
 				'void main() {',
 				'void main() {',
-				'	gl_FragColor = vec4(1,0,0,1);',
+				'	gl_FragColor = vec4( 1.0, 0, 0, 1.0 );',
 				'}'
 				'}'
 			].join( '\n' );
 			].join( '\n' );