提交 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 */ `
mat3 vTBN = mat3( tangent, bitangent, clearCoatNormal );
vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;
mapN.xy = normalScale * mapN.xy;
mapN.xy = clearCoatNormalScale * mapN.xy;
clearCoatNormal = normalize( vTBN * mapN );
#else
......@@ -15545,7 +15545,7 @@ var clearcoat_normalmap_pars_fragment = /* glsl */ `
#ifdef USE_NORMALMAP
//uniform sampler2D normalMap;
//uniform vec2 normalScale;
uniform vec2 clearCoatNormalScale;
// Per-Pixel Tangent Space Normal Mapping
// http://hacksoflife.blogspot.ch/2009/11/per-pixel-tangent-space-normal-mapping.html
......@@ -15568,7 +15568,7 @@ var clearcoat_normalmap_pars_fragment = /* glsl */ `
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 );
return normalize( tsn * mapN );
......@@ -26672,11 +26672,19 @@ function WebGLRenderer( parameters ) {
uniforms.clearCoat.value = material.clearCoat;
uniforms.clearCoatRoughness.value = material.clearCoatRoughness;
uniforms.clearCoatGeometryNormals.value = material.clearCoatGeometryNormals;
uniforms.clearCoatNormalMap.value = material.clearCoatNormalMap;
uniforms.clearCoatNormalScale.value = material.clearCoatNormalScale;
uniforms.clearCoatGeometryNormals.value = material.clearCoatGeometryNormals;
if ( material.normalMap || material.clearCoatNormalMap) {
if(material.clearCoatNormalMap){
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 ) {
......@@ -73,7 +73,7 @@
const sphereSpacing = 1.25 * sphereSize * 2;
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);
......
......@@ -2275,11 +2275,19 @@ function WebGLRenderer( parameters ) {
uniforms.clearCoat.value = material.clearCoat;
uniforms.clearCoatRoughness.value = material.clearCoatRoughness;
uniforms.clearCoatGeometryNormals.value = material.clearCoatGeometryNormals;
uniforms.clearCoatNormalMap.value = material.clearCoatNormalMap;
uniforms.clearCoatNormalScale.value = material.clearCoatNormalScale;
uniforms.clearCoatGeometryNormals.value = material.clearCoatGeometryNormals;
if ( material.normalMap || material.clearCoatNormalMap) {
if(material.clearCoatNormalMap){
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 ) {
......
......@@ -5,7 +5,7 @@ export default /* glsl */ `
mat3 vTBN = mat3( tangent, bitangent, clearCoatNormal );
vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;
mapN.xy = normalScale * mapN.xy;
mapN.xy = clearCoatNormalScale * mapN.xy;
clearCoatNormal = normalize( vTBN * mapN );
#else
......
......@@ -2,7 +2,7 @@ export default /* glsl */ `
#ifdef USE_NORMALMAP
//uniform sampler2D normalMap;
//uniform vec2 clearCoatNormalScale;
uniform vec2 clearCoatNormalScale;
// Per-Pixel Tangent Space Normal Mapping
// http://hacksoflife.blogspot.ch/2009/11/per-pixel-tangent-space-normal-mapping.html
......@@ -25,7 +25,7 @@ export default /* glsl */ `
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 );
return normalize( tsn * mapN );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册