From fd81ff39f990cc5f7ebcc41f42db648229421bad Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Mon, 15 Jan 2024 12:23:13 -0600 Subject: [PATCH] fix(LineMaterial): don't multiply unset vertexColors (#338) --- src/lines/LineMaterial.js | 44 ++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/src/lines/LineMaterial.js b/src/lines/LineMaterial.js index 064b3456..728beb17 100644 --- a/src/lines/LineMaterial.js +++ b/src/lines/LineMaterial.js @@ -46,14 +46,16 @@ class LineMaterial extends ShaderMaterial { attribute vec3 instanceStart; attribute vec3 instanceEnd; - #ifdef USE_LINE_COLOR_ALPHA - varying vec4 vLineColor; - attribute vec4 instanceColorStart; - attribute vec4 instanceColorEnd; - #else - varying vec3 vLineColor; - attribute vec3 instanceColorStart; - attribute vec3 instanceColorEnd; + #ifdef USE_COLOR + #ifdef USE_LINE_COLOR_ALPHA + varying vec4 vLineColor; + attribute vec4 instanceColorStart; + attribute vec4 instanceColorEnd; + #else + varying vec3 vLineColor; + attribute vec3 instanceColorStart; + attribute vec3 instanceColorEnd; + #endif #endif #ifdef WORLD_UNITS @@ -100,7 +102,11 @@ class LineMaterial extends ShaderMaterial { void main() { - vLineColor = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd; + #ifdef USE_COLOR + + vLineColor = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd; + + #endif #ifdef USE_DASH @@ -303,10 +309,12 @@ class LineMaterial extends ShaderMaterial { #include #include - #ifdef USE_LINE_COLOR_ALPHA - varying vec4 vLineColor; - #else - varying vec3 vLineColor; + #ifdef USE_COLOR + #ifdef USE_LINE_COLOR_ALPHA + varying vec4 vLineColor; + #else + varying vec3 vLineColor; + #endif #endif vec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) { @@ -417,10 +425,12 @@ class LineMaterial extends ShaderMaterial { #endif vec4 diffuseColor = vec4( diffuse, alpha ); - #ifdef USE_LINE_COLOR_ALPHA - diffuseColor *= vLineColor; - #else - diffuseColor.rgb *= vLineColor; + #ifdef USE_COLOR + #ifdef USE_LINE_COLOR_ALPHA + diffuseColor *= vLineColor; + #else + diffuseColor.rgb *= vLineColor; + #endif #endif #include