diff --git a/build/Three.js b/build/Three.js index 107024d7..5e638f25 100644 --- a/build/Three.js +++ b/build/Three.js @@ -120,7 +120,7 @@ c(k,q,p,O,Y,C)}else Y&&c(k,q,p,O,Y,C)}}}else if(O instanceof THREE.RenderableFac THREE.WebGLRenderer=function(a){function c(e,g){var n;if(e=="fragment")n=b.createShader(b.FRAGMENT_SHADER);else if(e=="vertex")n=b.createShader(b.VERTEX_SHADER);b.shaderSource(n,g);b.compileShader(n);if(!b.getShaderParameter(n,b.COMPILE_STATUS)){alert(b.getShaderInfoLog(n));return null}return n}var f=document.createElement("canvas"),b,d,j=new THREE.Matrix4,o;a=function(e,g){if(e){var n,h,k,q=pointLights=maxDirLights=maxPointLights=0;n=0;for(h=e.lights.length;n= 0.0 )": "",g?"pointSpecularWeight = pow( pointDotNormalHalf, mShininess );":"",g?"pointDiffuse += mColor * pointDiffuseWeight;":"",g?"pointSpecular += mSpecular * pointSpecularWeight;":"",g?"}":"",e?"vec4 dirDiffuse = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"vec4 dirSpecular = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"vec3 dirVector = normalize( lDirection.xyz );":"",e?"vec3 dirHalfVector = normalize( lDirection.xyz + vViewPosition );": "",e?"float dirDotNormalHalf = dot( normal, dirHalfVector );":"",e?"float dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );":"",e?"float dirSpecularWeight = 0.0;":"",e?"if ( dirDotNormalHalf >= 0.0 )":"",e?"dirSpecularWeight = pow( dirDotNormalHalf, mShininess );":"",e?"dirDiffuse += mColor * dirDiffuseWeight;":"",e?"dirSpecular += mSpecular * dirSpecularWeight;":"",e?"}":"","vec4 totalLight = mAmbient;",e?"totalLight += dirDiffuse + dirSpecular;":"",g?"totalLight += pointDiffuse + pointSpecular;": diff --git a/build/ThreeDebug.js b/build/ThreeDebug.js index dfb042bf..fa75a68e 100644 --- a/build/ThreeDebug.js +++ b/build/ThreeDebug.js @@ -120,7 +120,7 @@ c(k,q,p,O,Y,C)}else Y&&c(k,q,p,O,Y,C)}}}else if(O instanceof THREE.RenderableFac THREE.WebGLRenderer=function(a){function c(e,g){var n;if(e=="fragment")n=b.createShader(b.FRAGMENT_SHADER);else if(e=="vertex")n=b.createShader(b.VERTEX_SHADER);b.shaderSource(n,g);b.compileShader(n);if(!b.getShaderParameter(n,b.COMPILE_STATUS)){alert(b.getShaderInfoLog(n));return null}return n}var f=document.createElement("canvas"),b,d,j=new THREE.Matrix4,o;a=function(e,g){if(e){var n,i,k,q=pointLights=maxDirLights=maxPointLights=0;n=0;for(i=e.lights.length;n= 0.0 )": "",g?"pointSpecularWeight = pow( pointDotNormalHalf, mShininess );":"",g?"pointDiffuse += mColor * pointDiffuseWeight;":"",g?"pointSpecular += mSpecular * pointSpecularWeight;":"",g?"}":"",e?"vec4 dirDiffuse = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"vec4 dirSpecular = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"vec3 dirVector = normalize( lDirection.xyz );":"",e?"vec3 dirHalfVector = normalize( lDirection.xyz + vViewPosition );": "",e?"float dirDotNormalHalf = dot( normal, dirHalfVector );":"",e?"float dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );":"",e?"float dirSpecularWeight = 0.0;":"",e?"if ( dirDotNormalHalf >= 0.0 )":"",e?"dirSpecularWeight = pow( dirDotNormalHalf, mShininess );":"",e?"dirDiffuse += mColor * dirDiffuseWeight;":"",e?"dirSpecular += mSpecular * dirSpecularWeight;":"",e?"}":"","vec4 totalLight = mAmbient;",e?"totalLight += dirDiffuse + dirSpecular;":"",g?"totalLight += pointDiffuse + pointSpecular;": diff --git a/examples/materials_cubemap_refraction.html b/examples/materials_cubemap_refraction.html new file mode 100644 index 00000000..3643fbb6 --- /dev/null +++ b/examples/materials_cubemap_refraction.html @@ -0,0 +1,238 @@ + + + + three.js - cube map WebGL + + + + + +
+

Three.js cube map refraction demo + +

Lucy model from Stanford 3d scanning repository +

Texture by Humus +

+ +

+
+		 
+
+		
+		
+		
+
+		
+
+		
+
+	
+
diff --git a/examples/materials_cubemap_sky_refraction.html b/examples/materials_cubemap_sky_refraction.html
new file mode 100644
index 00000000..a3c69c90
--- /dev/null
+++ b/examples/materials_cubemap_sky_refraction.html
@@ -0,0 +1,197 @@
+
+
+	
+		three.js - webgl cube refraction
+		
+		
+	
+
+	
+		
three.js - webgl cube refraction demo. skybox by Jochum Skoglund
+ + + + + + + + + + + + + diff --git a/examples/textures/cube/Park3Med/nx.jpg b/examples/textures/cube/Park3Med/nx.jpg new file mode 100644 index 00000000..5315f4bf Binary files /dev/null and b/examples/textures/cube/Park3Med/nx.jpg differ diff --git a/examples/textures/cube/Park3Med/ny.jpg b/examples/textures/cube/Park3Med/ny.jpg new file mode 100644 index 00000000..f45e5f03 Binary files /dev/null and b/examples/textures/cube/Park3Med/ny.jpg differ diff --git a/examples/textures/cube/Park3Med/nz.jpg b/examples/textures/cube/Park3Med/nz.jpg new file mode 100644 index 00000000..0237b575 Binary files /dev/null and b/examples/textures/cube/Park3Med/nz.jpg differ diff --git a/examples/textures/cube/Park3Med/px.jpg b/examples/textures/cube/Park3Med/px.jpg new file mode 100644 index 00000000..5caa2b3b Binary files /dev/null and b/examples/textures/cube/Park3Med/px.jpg differ diff --git a/examples/textures/cube/Park3Med/py.jpg b/examples/textures/cube/Park3Med/py.jpg new file mode 100644 index 00000000..c910907a Binary files /dev/null and b/examples/textures/cube/Park3Med/py.jpg differ diff --git a/examples/textures/cube/Park3Med/pz.jpg b/examples/textures/cube/Park3Med/pz.jpg new file mode 100644 index 00000000..cef9ef62 Binary files /dev/null and b/examples/textures/cube/Park3Med/pz.jpg differ diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index 7446cde6..603a7508 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -887,7 +887,7 @@ THREE.WebGLRenderer = function ( scene ) { "if ( enableCubeMap ) {", - "cubeColor = textureCube( tCube, vReflect );", + "cubeColor = textureCube( tCube, vec3( -vReflect.x, vReflect.yz ) );", "}",