소스 검색

Merge branch 'dev' into bumpmap

alteredq 13 년 전
부모
커밋
9391780293
3개의 변경된 파일16개의 추가작업 그리고 5개의 파일을 삭제
  1. 0 2
      build/Three.js
  2. 0 2
      build/custom/ThreeExtras.js
  3. 16 1
      src/extras/ShaderUtils.js

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 2
build/Three.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 2
build/custom/ThreeExtras.js


+ 16 - 1
src/extras/ShaderUtils.js

@@ -132,6 +132,8 @@ THREE.ShaderUtils = {
 				"uShininess": { type: "f", value: 30 },
 				"uOpacity": { type: "f", value: 1 },
 
+				"useRefract": { type: "i", value: 0 },
+				"uRefractionRatio": { type: "f", value: 0.98 },
 				"uReflectivity": { type: "f", value: 0.5 },
 
 				"uOffset" : { type: "v2", value: new THREE.Vector2( 0, 0 ) },
@@ -164,6 +166,9 @@ THREE.ShaderUtils = {
 				"uniform samplerCube tCube;",
 
 				"uniform float uNormalScale;",
+
+				"uniform bool useRefract;",
+				"uniform float uRefractionRatio;",
 				"uniform float uReflectivity;",
 
 				"varying vec3 vTangent;",
@@ -485,7 +490,17 @@ THREE.ShaderUtils = {
 
 					"if ( enableReflection ) {",
 
-						"vec3 vReflect = reflect( normalize( vWorldPosition ), normal );",
+						"vec3 vReflect;",
+
+						"if ( useRefract ) {",
+
+							"vReflect = refract( normalize( vWorldPosition - cameraPosition ), normal, uRefractionRatio );",
+
+						"} else {",
+
+							"vReflect = reflect( normalize( vWorldPosition - cameraPosition ), normal );",
+
+						"}",
 
 						"vec4 cubeColor = textureCube( tCube, vec3( -vReflect.x, vReflect.yz ) );",
 

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.