File tree Expand file tree Collapse file tree 2 files changed +8
-12
lines changed Expand file tree Collapse file tree 2 files changed +8
-12
lines changed Original file line number Diff line number Diff line change @@ -2204,11 +2204,13 @@ THREE.GLTFLoader = ( function () {
22042204
22052205 pending . push ( parser . assignTexture ( material , 'normal' , materialDef . normalTexture . index ) ) ;
22062206
2207- material . normalScale = new THREE . FloatNode ( 1.0 ) ;
2207+ // Normal map textures use OpenGL conventions:
2208+ // https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#materialnormaltexture
2209+ material . normalScale = new THREE . Vector2Node ( 1.0 , - 1.0 ) ;
22082210
22092211 if ( materialDef . normalTexture . scale !== undefined ) {
22102212
2211- material . normalScale . value = materialDef . normalTexture . scale ;
2213+ material . normalScale . value . multiplyScalar ( materialDef . normalTexture . scale ) ;
22122214
22132215 }
22142216
@@ -2246,14 +2248,6 @@ THREE.GLTFLoader = ( function () {
22462248
22472249 if ( materialDef . name !== undefined ) material . name = materialDef . name ;
22482250
2249- // Normal map textures use OpenGL conventions:
2250- // https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#materialnormaltexture
2251- // if ( material.normalScale ) {
2252-
2253- // material.normalScale.y = - material.normalScale.y;
2254-
2255- // }
2256-
22572251 if ( materialDef . extras ) material . userData = materialDef . extras ;
22582252
22592253 if ( materialDef . extensions ) addUnknownExtensionsToUserData ( extensions , material , materialDef ) ;
Original file line number Diff line number Diff line change @@ -141,8 +141,10 @@ THREE.NodeLib.add( new THREE.FunctionNode( [
141141 " vec3 q1 = dFdy( eye_pos );" ,
142142 " vec2 st0 = dFdx( mUv.st );" ,
143143 " vec2 st1 = dFdy( mUv.st );" ,
144- " vec3 S = normalize( q0 * st1.t - q1 * st0.t );" ,
145- " vec3 T = normalize( -q0 * st1.s + q1 * st0.s );" ,
144+ " float factor = sign( st1.t * st0.s - st0.t * st1.s );" ,
145+ " factor *= float( gl_FrontFacing ) * 2.0 - 1.0;" ,
146+ " vec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * factor );" ,
147+ " vec3 T = normalize( ( -q0 * st1.s + q1 * st0.s ) * factor );" ,
146148 " vec3 N = normalize( surf_norm );" ,
147149 " vec3 mapN = map * 2.0 - 1.0;" ,
148150 " mapN.xy = scale * mapN.xy;" ,
You can’t perform that action at this time.
0 commit comments