diff --git a/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js index ecdf15b7d9c08f4425f939da47d46d26202637c0..19c95b24c1166d1ef1b7e61264106733ed403272 100644 --- a/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js @@ -1,5 +1,5 @@ export default /* glsl */` -#ifdef USE_UV +#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) ) varying vec2 vUv; diff --git a/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js b/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js index fd918927e9eb818bd73119a176c411044b245ccb..0e6a84c9fc3cb7d21f2c150c9c581438efb216af 100644 --- a/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +++ b/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js @@ -1,7 +1,16 @@ export default /* glsl */` #ifdef USE_UV - varying vec2 vUv; + #ifdef UVS_VERTEX_ONLY + + vec2 vUv; + + #else + + varying vec2 vUv; + + #endif + uniform mat3 uvTransform; #endif diff --git a/src/renderers/webgl/WebGLProgram.js b/src/renderers/webgl/WebGLProgram.js index 7d6935f1d8b9b08f40e6b14f401a7999b8747961..b79151e02f3eff2c2a21f38bea6e2e5758c81dd7 100644 --- a/src/renderers/webgl/WebGLProgram.js +++ b/src/renderers/webgl/WebGLProgram.js @@ -470,6 +470,7 @@ function WebGLProgram( renderer, extensions, code, material, shader, parameters parameters.vertexTangents ? '#define USE_TANGENT' : '', parameters.vertexColors ? '#define USE_COLOR' : '', parameters.vertexUvs ? '#define USE_UV' : '', + parameters.uvsVertexOnly ? '#define UVS_VERTEX_ONLY' : '', parameters.flatShading ? '#define FLAT_SHADED' : '', @@ -595,6 +596,7 @@ function WebGLProgram( renderer, extensions, code, material, shader, parameters parameters.vertexTangents ? '#define USE_TANGENT' : '', parameters.vertexColors ? '#define USE_COLOR' : '', parameters.vertexUvs ? '#define USE_UV' : '', + parameters.uvsVertexOnly ? '#define UVS_VERTEX_ONLY' : '', parameters.gradientMap ? '#define USE_GRADIENTMAP' : '', diff --git a/src/renderers/webgl/WebGLPrograms.js b/src/renderers/webgl/WebGLPrograms.js index 13ac64c8099689ff082ce1a5a253f174a98798dd..6aa48cd9cae7fb58d51080909b65f06d23111e32 100644 --- a/src/renderers/webgl/WebGLPrograms.js +++ b/src/renderers/webgl/WebGLPrograms.js @@ -39,7 +39,7 @@ function WebGLPrograms( renderer, extensions, capabilities ) { "map", "mapEncoding", "matcap", "matcapEncoding", "envMap", "envMapMode", "envMapEncoding", "envMapCubeUV", "lightMap", "aoMap", "emissiveMap", "emissiveMapEncoding", "bumpMap", "normalMap", "objectSpaceNormalMap", "tangentSpaceNormalMap", "clearcoatNormalMap", "displacementMap", "specularMap", "roughnessMap", "metalnessMap", "gradientMap", - "alphaMap", "combine", "vertexColors", "vertexTangents", "vertexUvs", "fog", "useFog", "fogExp2", + "alphaMap", "combine", "vertexColors", "vertexTangents", "vertexUvs", "uvsVertexOnly", "fog", "useFog", "fogExp2", "flatShading", "sizeAttenuation", "logarithmicDepthBuffer", "skinning", "maxBones", "useVertexTexture", "morphTargets", "morphNormals", "maxMorphTargets", "maxMorphNormals", "premultipliedAlpha", @@ -186,6 +186,7 @@ function WebGLPrograms( renderer, extensions, capabilities ) { vertexTangents: ( material.normalMap && material.vertexTangents ), vertexColors: material.vertexColors, vertexUvs: !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatNormalMap || !! material.displacementMap, + uvsVertexOnly: ! ( !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatNormalMap ) && !! material.displacementMap, fog: !! fog, useFog: material.fog,