提交 244d91aa 编写于 作者: A arobertson0

(Mostly) Working independent scale

Scale is fine as long as cc scale <= normal scale
上级 1da6ad43
此差异已折叠。
...@@ -15468,7 +15468,7 @@ var clearcoat_normal_fragment_maps = /* glsl */ ` ...@@ -15468,7 +15468,7 @@ var clearcoat_normal_fragment_maps = /* glsl */ `
mat3 vTBN = mat3( tangent, bitangent, clearCoatNormal ); mat3 vTBN = mat3( tangent, bitangent, clearCoatNormal );
vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;
mapN.xy = normalScale * mapN.xy; mapN.xy = clearCoatNormalScale * mapN.xy;
clearCoatNormal = normalize( vTBN * mapN ); clearCoatNormal = normalize( vTBN * mapN );
#else #else
...@@ -15545,7 +15545,7 @@ var clearcoat_normalmap_pars_fragment = /* glsl */ ` ...@@ -15545,7 +15545,7 @@ var clearcoat_normalmap_pars_fragment = /* glsl */ `
#ifdef USE_NORMALMAP #ifdef USE_NORMALMAP
//uniform sampler2D normalMap; //uniform sampler2D normalMap;
//uniform vec2 normalScale; uniform vec2 clearCoatNormalScale;
// Per-Pixel Tangent Space Normal Mapping // Per-Pixel Tangent Space Normal Mapping
// http://hacksoflife.blogspot.ch/2009/11/per-pixel-tangent-space-normal-mapping.html // http://hacksoflife.blogspot.ch/2009/11/per-pixel-tangent-space-normal-mapping.html
...@@ -15568,7 +15568,7 @@ var clearcoat_normalmap_pars_fragment = /* glsl */ ` ...@@ -15568,7 +15568,7 @@ var clearcoat_normalmap_pars_fragment = /* glsl */ `
vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;
mapN.xy *= normalScale; mapN.xy *= clearCoatNormalScale;
mapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 ); mapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );
return normalize( tsn * mapN ); return normalize( tsn * mapN );
...@@ -26672,11 +26672,19 @@ function WebGLRenderer( parameters ) { ...@@ -26672,11 +26672,19 @@ function WebGLRenderer( parameters ) {
uniforms.clearCoat.value = material.clearCoat; uniforms.clearCoat.value = material.clearCoat;
uniforms.clearCoatRoughness.value = material.clearCoatRoughness; uniforms.clearCoatRoughness.value = material.clearCoatRoughness;
uniforms.clearCoatGeometryNormals.value = material.clearCoatGeometryNormals; if ( material.normalMap || material.clearCoatNormalMap) {
uniforms.clearCoatNormalMap.value = material.clearCoatNormalMap;
uniforms.clearCoatNormalScale.value = material.clearCoatNormalScale; if(material.clearCoatNormalMap){
uniforms.clearCoatGeometryNormals.value = material.clearCoatGeometryNormals; uniforms.clearCoatNormalMap.value = material.clearCoatNormalMap;
}
uniforms.clearCoatNormalScale.value.copy( material.clearCoatNormalScale );
if ( material.side === BackSide ) uniforms.clearCoatNormalScale.value.negate();
}
uniforms.clearCoatGeometryNormals.value = material.clearCoatGeometryNormals;
} }
function refreshUniformsMatcap( uniforms, material ) { function refreshUniformsMatcap( uniforms, material ) {
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
const sphereSpacing = 1.25 * sphereSize * 2; const sphereSpacing = 1.25 * sphereSize * 2;
const variationsX = [ const variationsX = [
(mat, scale, map) => { }, (mat, scale, map) => { mat.clearCoatNormalScale.copy( mat.normalScale); },
(mat, scale, map) => { mat.clearCoatNormalScale = new THREE.Vector2(scale, scale); }, (mat, scale, map) => { mat.clearCoatNormalScale = new THREE.Vector2(scale, scale); },
(mat, scale, map) => { (mat, scale, map) => {
mat.clearCoatNormalScale = new THREE.Vector2(scale, scale); mat.clearCoatNormalScale = new THREE.Vector2(scale, scale);
......
...@@ -2275,11 +2275,19 @@ function WebGLRenderer( parameters ) { ...@@ -2275,11 +2275,19 @@ function WebGLRenderer( parameters ) {
uniforms.clearCoat.value = material.clearCoat; uniforms.clearCoat.value = material.clearCoat;
uniforms.clearCoatRoughness.value = material.clearCoatRoughness; uniforms.clearCoatRoughness.value = material.clearCoatRoughness;
uniforms.clearCoatGeometryNormals.value = material.clearCoatGeometryNormals; if ( material.normalMap || material.clearCoatNormalMap) {
uniforms.clearCoatNormalMap.value = material.clearCoatNormalMap;
uniforms.clearCoatNormalScale.value = material.clearCoatNormalScale; if(material.clearCoatNormalMap){
uniforms.clearCoatGeometryNormals.value = material.clearCoatGeometryNormals; uniforms.clearCoatNormalMap.value = material.clearCoatNormalMap;
}
uniforms.clearCoatNormalScale.value.copy( material.clearCoatNormalScale );
if ( material.side === BackSide ) uniforms.clearCoatNormalScale.value.negate();
}
uniforms.clearCoatGeometryNormals.value = material.clearCoatGeometryNormals;
} }
function refreshUniformsMatcap( uniforms, material ) { function refreshUniformsMatcap( uniforms, material ) {
......
...@@ -5,7 +5,7 @@ export default /* glsl */ ` ...@@ -5,7 +5,7 @@ export default /* glsl */ `
mat3 vTBN = mat3( tangent, bitangent, clearCoatNormal ); mat3 vTBN = mat3( tangent, bitangent, clearCoatNormal );
vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;
mapN.xy = normalScale * mapN.xy; mapN.xy = clearCoatNormalScale * mapN.xy;
clearCoatNormal = normalize( vTBN * mapN ); clearCoatNormal = normalize( vTBN * mapN );
#else #else
......
...@@ -2,7 +2,7 @@ export default /* glsl */ ` ...@@ -2,7 +2,7 @@ export default /* glsl */ `
#ifdef USE_NORMALMAP #ifdef USE_NORMALMAP
//uniform sampler2D normalMap; //uniform sampler2D normalMap;
//uniform vec2 clearCoatNormalScale; uniform vec2 clearCoatNormalScale;
// Per-Pixel Tangent Space Normal Mapping // Per-Pixel Tangent Space Normal Mapping
// http://hacksoflife.blogspot.ch/2009/11/per-pixel-tangent-space-normal-mapping.html // http://hacksoflife.blogspot.ch/2009/11/per-pixel-tangent-space-normal-mapping.html
...@@ -25,7 +25,7 @@ export default /* glsl */ ` ...@@ -25,7 +25,7 @@ export default /* glsl */ `
vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;
mapN.xy *= normalScale; mapN.xy *= clearCoatNormalScale;
mapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 ); mapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );
return normalize( tsn * mapN ); return normalize( tsn * mapN );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册