Browse Source

Mergable: WebGLRenderer.js: changed so camera.matrixWorldInverse is used instead of camera.matrixWorld.

Mikael Emtinger 14 years ago
parent
commit
88a9ad2da7
2 changed files with 83 additions and 103 deletions
  1. 5 0
      src/core/Object3D.js
  2. 78 103
      src/renderers/WebGLRenderer.js

+ 5 - 0
src/core/Object3D.js

@@ -160,3 +160,8 @@ THREE.Object3D.prototype = {
 }
 
 THREE.Object3DCounter = { value: 0 };
+
+
+
+
+

+ 78 - 103
src/renderers/WebGLRenderer.js

@@ -46,7 +46,6 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 	_projScreenMatrix = new THREE.Matrix4(),
 	_projectionMatrixArray = new Float32Array( 16 ),
-
 	_viewMatrixArray = new Float32Array( 16 ),
 
 	_vector3 = new THREE.Vector4(),
@@ -1224,8 +1223,8 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 	function setMaterialShaders( material, shaders ) {
 
-		material.fragment_shader = shaders.fragment_shader;
-		material.vertex_shader = shaders.vertex_shader;
+		material.fragmentShader = shaders.fragmentShader;
+		material.vertexShader = shaders.vertexShader;
 		material.uniforms = Uniforms.clone( shaders.uniforms );
 
 	};
@@ -1241,13 +1240,13 @@ THREE.WebGLRenderer = function ( parameters ) {
 		uniforms.opacity.value = material.opacity;
 		uniforms.map.texture = material.map;
 
-		uniforms.light_map.texture = material.light_map;
+		uniforms.lightMap.texture = material.lightMap;
 
-		uniforms.env_map.texture = material.env_map;
+		uniforms.envMap.texture = material.envMap;
 		uniforms.reflectivity.value = material.reflectivity;
-		uniforms.refraction_ratio.value = material.refraction_ratio;
+		uniforms.refractionRatio.value = material.refractionRatio;
 		uniforms.combine.value = material.combine;
-		uniforms.useRefract.value = material.env_map && material.env_map.mapping instanceof THREE.CubeRefractionMapping;
+		uniforms.useRefract.value = material.envMap && material.envMap.mapping instanceof THREE.CubeRefractionMapping;
 
 	};
 
@@ -1345,11 +1344,11 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 		maxLightCount = allocateLights( lights, 4 );
 
-		parameters = { fog: fog, map: material.map, env_map: material.env_map, light_map: material.light_map, vertex_colors: material.vertex_colors,
+		parameters = { fog: fog, map: material.map, envMap: material.envMap, lightMap: material.lightMap, vertexColors: material.vertexColors,
 					   skinning: material.skinning,
 					   maxDirLights: maxLightCount.directional, maxPointLights: maxLightCount.point };
 
-		material.program = buildProgram( material.fragment_shader, material.vertex_shader, parameters );
+		material.program = buildProgram( material.fragmentShader, material.vertexShader, parameters );
 
 		identifiers = [ 'viewMatrix', 'modelViewMatrix', 'projectionMatrix', 'normalMatrix', 'objectMatrix', 'cameraPosition',
 						'cameraInverseMatrix', 'boneGlobalMatrices'
@@ -1400,7 +1399,6 @@ THREE.WebGLRenderer = function ( parameters ) {
 			_oldProgram = program;
 
 			_gl.uniformMatrix4fv( p_uniforms.projectionMatrix, false, _projectionMatrixArray );
-			_gl.uniformMatrix4fv( p_uniforms.cameraInverseMatrix, false, _viewMatrixArray );
 
 		}
 
@@ -1470,14 +1468,14 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 		if ( material instanceof THREE.MeshShaderMaterial ||
 			 material instanceof THREE.MeshPhongMaterial ||
-			 material.env_map ) {
+			 material.envMap ) {
 
 			_gl.uniform3f( p_uniforms.cameraPosition, camera.position.x, camera.position.y, camera.position.z );
 
 		}
 
 		if ( material instanceof THREE.MeshShaderMaterial ||
-			 material.env_map ||
+			 material.envMap ||
 			 material.skinning ) {
 
 			_gl.uniformMatrix4fv( p_uniforms.objectMatrix, false, object._objectMatrixArray );
@@ -1605,7 +1603,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 			if ( material.wireframe ) {
 
-				_gl.lineWidth( material.wireframe_linewidth );
+				_gl.lineWidth( material.wireframeLinewidth );
 				_gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, geometryChunk.__webGLLineBuffer );
 				_gl.drawElements( _gl.LINES, geometryChunk.__webGLLineCount, _gl.UNSIGNED_SHORT, 0 );
 
@@ -1856,20 +1854,13 @@ THREE.WebGLRenderer = function ( parameters ) {
 			fog = scene.fog,
 			ol;
 
-
-// EMPA: needs to be reset 
-		_oldProgram = null,
-
-
 		camera.matrixAutoUpdate && camera.update();
 
 		camera.matrixWorldInverse.flattenToArray( _viewMatrixArray );
 		camera.projectionMatrix.flattenToArray( _projectionMatrixArray );
 
 		_projScreenMatrix.multiply( camera.projectionMatrix, camera.matrixWorldInverse );
-
-// EMPA: calling camera frustum check
-//		computeFrustum( _projScreenMatrix );
+		computeFrustum( _projScreenMatrix );
 
 		if( THREE.AnimationHandler ) THREE.AnimationHandler.update();
 
@@ -1896,9 +1887,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 			if ( object.visible ) {
 
-// EMPA: calling camera frustum check (probably faster to have inside of WebGLRenderer)
-//				if ( ! ( object instanceof THREE.Mesh ) || isInFrustum( object ) ) {
-				if ( ! ( object instanceof THREE.Mesh ) || camera.frustumContains( object ) ) {
+				if ( ! ( object instanceof THREE.Mesh ) || isInFrustum( object ) ) {
 
 					object.matrixWorld.flattenToArray( object._objectMatrixArray );
 
@@ -1910,13 +1899,10 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 					if ( this.sortObjects ) {
 
-// EMPA: positionScreen.z contains the z-depth in camera space after camera.frustumContains
-//						_vector3.copy( object.position );
-//						_projScreenMatrix.multiplyVector3( _vector3 );
+						_vector3.copy( object.position );
+						_projScreenMatrix.multiplyVector3( _vector3 );
 
-//						webGLObject.z = _vector3.z;
-
-						webGLObject.z = object.positionScreen.z;
+						webGLObject.z = _vector3.z;
 
 					}
 
@@ -1983,7 +1969,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 					material = opaque.list[ i ];
 
-					setDepthTest( material.depth_test );
+					setDepthTest( material.depthTest );
 					renderBuffer( camera, lights, fog, material, buffer, object );
 
 				}
@@ -2009,7 +1995,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 					material = opaque.list[ i ];
 
-					setDepthTest( material.depth_test );
+					setDepthTest( material.depthTest );
 
 					program = setProgram( camera, lights, fog, material, object );
 					object.render( function( object ) { renderBufferImmediate( object, program ); } );
@@ -2039,7 +2025,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 					material = transparent.list[ i ];
 
 					setBlending( material.blending );
-					setDepthTest( material.depth_test );
+					setDepthTest( material.depthTest );
 
 					renderBuffer( camera, lights, fog, material, buffer, object );
 
@@ -2067,7 +2053,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 					material = transparent.list[ i ];
 
 					setBlending( material.blending );
-					setDepthTest( material.depth_test );
+					setDepthTest( material.depthTest );
 
 					program = setProgram( camera, lights, fog, material, object );
 					object.render( function( object ) { renderBufferImmediate( object, program ); } );
@@ -2080,7 +2066,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 		// Generate mipmap if we're using any kind of mipmap filtering
 
-		if ( renderTarget && renderTarget.min_filter !== THREE.NearestFilter && renderTarget.min_filter !== THREE.LinearFilter ) {
+		if ( renderTarget && renderTarget.minFilter !== THREE.NearestFilter && renderTarget.minFilter !== THREE.LinearFilter ) {
 
 			updateRenderTargetMipmap( renderTarget );
 
@@ -2308,14 +2294,9 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 	function setupMatrices ( object, camera ) {
 
-// EMPA: moved inverse * matrixWorld to vertex shader
-//		object._modelViewMatrix.multiplyToArray( camera.matrixWorldInverse, object.matrixWorld, object._modelViewMatrixArray );
-//		THREE.Matrix4.makeInvert3x3( object._modelViewMatrix ).transposeIntoArray( object._normalMatrixArray );
-
+		object._modelViewMatrix.multiplyToArray( camera.matrixWorldInverse, object.matrixWorld, object._modelViewMatrixArray );
+		THREE.Matrix4.makeInvert3x3( object._modelViewMatrix ).transposeIntoArray( object._normalMatrixArray );
 
-// EMPA: the normal update part is only needed when object (or object's parents) have been rotated (could be done inside Mesh.update)
-		object.matrixWorld.flattenToArray( object._modelViewMatrixArray );
-		THREE.Matrix4.makeInvert3x3( object.matrixWorld ).transposeIntoArray( object._normalMatrixArray );
 	};
 
 	this.setFaceCulling = function ( cullFace, frontFace ) {
@@ -2393,16 +2374,15 @@ THREE.WebGLRenderer = function ( parameters ) {
 		_gl.cullFace( _gl.BACK );
 		_gl.enable( _gl.CULL_FACE );
 
-// EMPA: enable only when neccesary
-//		_gl.enable( _gl.BLEND );
-//		_gl.blendFunc( _gl.ONE, _gl.ONE_MINUS_SRC_ALPHA );
+		_gl.enable( _gl.BLEND );
+		_gl.blendFunc( _gl.ONE, _gl.ONE_MINUS_SRC_ALPHA );
 		_gl.clearColor( clearColor.r, clearColor.g, clearColor.b, clearAlpha );
 
 		_cullEnabled = true;
 
 	};
 
-	function buildProgram( fragment_shader, vertex_shader, parameters ) {
+	function buildProgram( fragmentShader, vertexShader, parameters ) {
 
 		var program = _gl.createProgram(),
 
@@ -2418,9 +2398,9 @@ THREE.WebGLRenderer = function ( parameters ) {
 			parameters.fog instanceof THREE.FogExp2 ? "#define FOG_EXP2" : "",
 
 			parameters.map ? "#define USE_MAP" : "",
-			parameters.env_map ? "#define USE_ENVMAP" : "",
-			parameters.light_map ? "#define USE_LIGHTMAP" : "",
-			parameters.vertex_colors ? "#define USE_COLOR" : "",
+			parameters.envMap ? "#define USE_ENVMAP" : "",
+			parameters.lightMap ? "#define USE_LIGHTMAP" : "",
+			parameters.vertexColors ? "#define USE_COLOR" : "",
 
 			"uniform mat4 viewMatrix;",
 			"uniform vec3 cameraPosition;",
@@ -2434,9 +2414,9 @@ THREE.WebGLRenderer = function ( parameters ) {
 			"#define MAX_POINT_LIGHTS " + parameters.maxPointLights,
 
 			parameters.map ? "#define USE_MAP" : "",
-			parameters.env_map ? "#define USE_ENVMAP" : "",
-			parameters.light_map ? "#define USE_LIGHTMAP" : "",
-			parameters.vertex_colors ? "#define USE_COLOR" : "",
+			parameters.envMap ? "#define USE_ENVMAP" : "",
+			parameters.lightMap ? "#define USE_LIGHTMAP" : "",
+			parameters.vertexColors ? "#define USE_COLOR" : "",
 			parameters.skinning ? "#define USE_SKINNING" : "",
 
 			"uniform mat4 objectMatrix;",
@@ -2461,8 +2441,8 @@ THREE.WebGLRenderer = function ( parameters ) {
 			""
 		].join("\n");
 
-		_gl.attachShader( program, getShader( "fragment", prefix_fragment + fragment_shader ) );
-		_gl.attachShader( program, getShader( "vertex", prefix_vertex + vertex_shader ) );
+		_gl.attachShader( program, getShader( "fragment", prefix_fragment + fragmentShader ) );
+		_gl.attachShader( program, getShader( "vertex", prefix_vertex + vertexShader ) );
 
 		_gl.linkProgram( program );
 
@@ -2471,13 +2451,13 @@ THREE.WebGLRenderer = function ( parameters ) {
 			alert( "Could not initialise shaders\n"+
 					"VALIDATE_STATUS: " + _gl.getProgramParameter( program, _gl.VALIDATE_STATUS ) + ", gl error [" + _gl.getError() + "]" );
 
-			//console.log( prefix_fragment + fragment_shader );
-			//console.log( prefix_vertex + vertex_shader );
+			//console.log( prefix_fragment + fragmentShader );
+			//console.log( prefix_vertex + vertexShader );
 
 		}
 
-		//console.log( prefix_fragment + fragment_shader );
-		//console.log( prefix_vertex + vertex_shader );
+		//console.log( prefix_fragment + fragmentShader );
+		//console.log( prefix_vertex + vertexShader );
 
 		program.uniforms = {};
 		program.attributes = {};
@@ -2495,13 +2475,9 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 	function loadUniformsMatrices( uniforms, object ) {
 
-// EMPA: added inverse * matrixWorld to vertex shader
-//		_gl.uniformMatrix4fv( uniforms.modelViewMatrix, false, object._modelViewMatrixArray );
-//		_gl.uniformMatrix3fv( uniforms.normalMatrix, false, object._normalMatrixArray );
-
-//		_gl.uniformMatrix4fv( uniforms.cameraInverseMatrix, false, _viewMatrixArray );
 		_gl.uniformMatrix4fv( uniforms.modelViewMatrix, false, object._modelViewMatrixArray );
 		_gl.uniformMatrix3fv( uniforms.normalMatrix, false, object._normalMatrixArray );
+
 	};
 
 	function loadUniformsGeneric( program, uniforms ) {
@@ -2670,11 +2646,11 @@ THREE.WebGLRenderer = function ( parameters ) {
 				_gl.bindTexture( _gl.TEXTURE_2D, texture.__webGLTexture );
 				_gl.texImage2D( _gl.TEXTURE_2D, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, texture.image );
 
-				_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_WRAP_S, paramThreeToGL( texture.wrap_s ) );
-				_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_WRAP_T, paramThreeToGL( texture.wrap_t ) );
+				_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_WRAP_S, paramThreeToGL( texture.wrapS ) );
+				_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_WRAP_T, paramThreeToGL( texture.wrapT ) );
 
-				_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_MAG_FILTER, paramThreeToGL( texture.mag_filter ) );
-				_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_MIN_FILTER, paramThreeToGL( texture.min_filter ) );
+				_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_MAG_FILTER, paramThreeToGL( texture.magFilter ) );
+				_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_MIN_FILTER, paramThreeToGL( texture.minFilter ) );
 				_gl.generateMipmap( _gl.TEXTURE_2D );
 				_gl.bindTexture( _gl.TEXTURE_2D, null );
 
@@ -2685,11 +2661,11 @@ THREE.WebGLRenderer = function ( parameters ) {
 				_gl.bindTexture( _gl.TEXTURE_2D, texture.__webGLTexture );
 				_gl.texSubImage2D( _gl.TEXTURE_2D, 0, 0, 0, _gl.RGBA, _gl.UNSIGNED_BYTE, texture.image );
 
-				_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_WRAP_S, paramThreeToGL( texture.wrap_s ) );
-				_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_WRAP_T, paramThreeToGL( texture.wrap_t ) );
+				_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_WRAP_S, paramThreeToGL( texture.wrapS ) );
+				_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_WRAP_T, paramThreeToGL( texture.wrapT ) );
 
-				_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_MAG_FILTER, paramThreeToGL( texture.mag_filter ) );
-				_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_MIN_FILTER, paramThreeToGL( texture.min_filter ) );
+				_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_MAG_FILTER, paramThreeToGL( texture.magFilter ) );
+				_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_MIN_FILTER, paramThreeToGL( texture.minFilter ) );
 				_gl.generateMipmap( _gl.TEXTURE_2D );
 				_gl.bindTexture( _gl.TEXTURE_2D, null );
 
@@ -2720,10 +2696,10 @@ THREE.WebGLRenderer = function ( parameters ) {
 			// Setup texture
 
 			_gl.bindTexture( _gl.TEXTURE_2D, renderTexture.__webGLTexture );
-			_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_WRAP_S, paramThreeToGL( renderTexture.wrap_s ) );
-			_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_WRAP_T, paramThreeToGL( renderTexture.wrap_t ) );
-			_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_MAG_FILTER, paramThreeToGL( renderTexture.mag_filter ) );
-			_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_MIN_FILTER, paramThreeToGL( renderTexture.min_filter ) );
+			_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_WRAP_S, paramThreeToGL( renderTexture.wrapS ) );
+			_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_WRAP_T, paramThreeToGL( renderTexture.wrapT ) );
+			_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_MAG_FILTER, paramThreeToGL( renderTexture.magFilter ) );
+			_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_MIN_FILTER, paramThreeToGL( renderTexture.minFilter ) );
 			_gl.texImage2D( _gl.TEXTURE_2D, 0, paramThreeToGL( renderTexture.format ), renderTexture.width, renderTexture.height, 0, paramThreeToGL( renderTexture.format ), paramThreeToGL( renderTexture.type ), null );
 
 			// Setup framebuffer
@@ -3030,7 +3006,7 @@ THREE.Snippets = {
 
 		"varying vec3 vReflect;",
 		"uniform float reflectivity;",
-		"uniform samplerCube env_map;",
+		"uniform samplerCube envMap;",
 		"uniform int combine;",
 
 	"#endif"
@@ -3041,7 +3017,7 @@ THREE.Snippets = {
 
 	"#ifdef USE_ENVMAP",
 
-		"vec4 cubeColor = textureCube( env_map, vec3( -vReflect.x, vReflect.yz ) );",
+		"vec4 cubeColor = textureCube( envMap, vec3( -vReflect.x, vReflect.yz ) );",
 
 		"if ( combine == 1 ) {",
 
@@ -3063,7 +3039,7 @@ THREE.Snippets = {
 	"#ifdef USE_ENVMAP",
 
 		"varying vec3 vReflect;",
-		"uniform float refraction_ratio;",
+		"uniform float refractionRatio;",
 		"uniform bool useRefract;",
 
 	"#endif"
@@ -3079,7 +3055,7 @@ THREE.Snippets = {
 
 		"if ( useRefract ) {",
 
-			"vReflect = refract( normalize( mPosition.xyz - cameraPosition ), normalize( nWorld.xyz ), refraction_ratio );",
+			"vReflect = refract( normalize( mPosition.xyz - cameraPosition ), normalize( nWorld.xyz ), refractionRatio );",
 
 		"} else {",
 
@@ -3164,7 +3140,7 @@ THREE.Snippets = {
 	"#ifdef USE_LIGHTMAP",
 
 		"varying vec2 vUv2;",
-		"uniform sampler2D light_map;",
+		"uniform sampler2D lightMap;",
 
 	"#endif"
 
@@ -3184,7 +3160,7 @@ THREE.Snippets = {
 
 	"#ifdef USE_LIGHTMAP",
 
-		"gl_FragColor = gl_FragColor * texture2D( light_map, vUv2 );",
+		"gl_FragColor = gl_FragColor * texture2D( lightMap, vUv2 );",
 
 	"#endif"
 
@@ -3422,14 +3398,13 @@ THREE.Snippets = {
 		"gl_Position += ( boneGlobalMatrices[ int( skinIndex.y ) ] * skinVertexB ) * skinWeight.y;",
 
 		// this doesn't work, no idea why
-		"gl_Position  = projectionMatrix * cameraInverseMatrix * objectMatrix * gl_Position;",
+		//"gl_Position  = projectionMatrix * cameraInverseMatrix * objectMatrix * gl_Position;",
 
-		// EMPA: Above should work now
-		//"gl_Position  = projectionMatrix * viewMatrix * objectMatrix * gl_Position;",
+		"gl_Position  = projectionMatrix * viewMatrix * objectMatrix * gl_Position;",
 
 	"#else",
 
-		"gl_Position = projectionMatrix * cameraInverseMatrix * mvPosition;",
+		"gl_Position = projectionMatrix * mvPosition;",
 
 	"#endif"
 
@@ -3445,12 +3420,12 @@ THREE.UniformsLib = {
 	"opacity" : { type: "f", value: 1.0 },
 	"map"     : { type: "t", value: 0, texture: null },
 
-	"light_map"       : { type: "t", value: 2, texture: null },
+	"lightMap"       : { type: "t", value: 2, texture: null },
 
-	"env_map" 		  : { type: "t", value: 1, texture: null },
+	"envMap" 		  : { type: "t", value: 1, texture: null },
 	"useRefract"	  : { type: "i", value: 0 },
 	"reflectivity"    : { type: "f", value: 1.0 },
-	"refraction_ratio": { type: "f", value: 0.98 },
+	"refractionRatio": { type: "f", value: 0.98 },
 	"combine"		  : { type: "i", value: 0 },
 
 	"fogDensity": { type: "f", value: 0.00025 },
@@ -3496,7 +3471,7 @@ THREE.ShaderLib = {
 					"opacity" : { type: "f", value: 1.0 }
 				  },
 
-		fragment_shader: [
+		fragmentShader: [
 
 			"uniform float mNear;",
 			"uniform float mFar;",
@@ -3512,11 +3487,11 @@ THREE.ShaderLib = {
 
 		].join("\n"),
 
-		vertex_shader: [
+		vertexShader: [
 
 			"void main() {",
 
-				"gl_Position = projectionMatrix * cameraInverseMatrix * modelViewMatrix * vec4( position, 1.0 );",
+				"gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
 
 			"}"
 
@@ -3528,7 +3503,7 @@ THREE.ShaderLib = {
 
 		uniforms: { "opacity" : { type: "f", value: 1.0 } },
 
-		fragment_shader: [
+		fragmentShader: [
 
 			"uniform float opacity;",
 			"varying vec3 vNormal;",
@@ -3541,7 +3516,7 @@ THREE.ShaderLib = {
 
 		].join("\n"),
 
-		vertex_shader: [
+		vertexShader: [
 
 			"varying vec3 vNormal;",
 
@@ -3550,7 +3525,7 @@ THREE.ShaderLib = {
 				"vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",
 				"vNormal = normalize( normalMatrix * normal );",
 
-				"gl_Position = projectionMatrix * cameraInverseMatrix * mvPosition;",
+				"gl_Position = projectionMatrix * mvPosition;",
 
 			"}"
 
@@ -3562,7 +3537,7 @@ THREE.ShaderLib = {
 
 		uniforms: THREE.UniformsLib[ "common" ],
 
-		fragment_shader: [
+		fragmentShader: [
 
 			"uniform vec3 diffuse;",
 			"uniform float opacity;",
@@ -3587,7 +3562,7 @@ THREE.ShaderLib = {
 
 		].join("\n"),
 
-		vertex_shader: [
+		vertexShader: [
 
 			THREE.Snippets[ "map_pars_vertex" ],
 			THREE.Snippets[ "lightmap_pars_vertex" ],
@@ -3616,7 +3591,7 @@ THREE.ShaderLib = {
 		uniforms: Uniforms.merge( [ THREE.UniformsLib[ "common" ],
 									THREE.UniformsLib[ "lights" ] ] ),
 
-		fragment_shader: [
+		fragmentShader: [
 
 			"uniform vec3 diffuse;",
 			"uniform float opacity;",
@@ -3644,7 +3619,7 @@ THREE.ShaderLib = {
 
 		].join("\n"),
 
-		vertex_shader: [
+		vertexShader: [
 
 			"varying vec3 vLightWeighting;",
 
@@ -3687,7 +3662,7 @@ THREE.ShaderLib = {
 
 								] ),
 
-		fragment_shader: [
+		fragmentShader: [
 
 			"uniform vec3 diffuse;",
 			"uniform float opacity;",
@@ -3720,7 +3695,7 @@ THREE.ShaderLib = {
 
 		].join("\n"),
 
-		vertex_shader: [
+		vertexShader: [
 
 			"#define PHONG",
 
@@ -3766,7 +3741,7 @@ THREE.ShaderLib = {
 
 		uniforms: THREE.UniformsLib[ "particle" ],
 
-		fragment_shader: [
+		fragmentShader: [
 
 			"uniform vec3 psColor;",
 			"uniform float opacity;",
@@ -3787,7 +3762,7 @@ THREE.ShaderLib = {
 
 		].join("\n"),
 
-		vertex_shader: [
+		vertexShader: [
 
 			"uniform float size;",
 
@@ -3799,7 +3774,7 @@ THREE.ShaderLib = {
 
 				"vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",
 
-				"gl_Position = projectionMatrix * cameraInverseMatrix * mvPosition;",
+				"gl_Position = projectionMatrix * mvPosition;",
 				"gl_PointSize = size;",
 				//"gl_PointSize = 10.0 + 6.0 * mvPosition.z;";