precision mediump float; attribute vec3 vertPosition; attribute vec3 vertColor; uniform mat4 virtualModelViewMatrix; uniform mat4 virtualProjectionMatrix; uniform mat4 realViewMatrix; uniform mat4 realProjectionMatrix; uniform vec3 colorOverride; varying vec3 fragColor; void main() { float colorOverrideActive = step(0.001, length(colorOverride)); fragColor = colorOverride * colorOverrideActive + vertColor * (1.0 - colorOverrideActive); gl_Position = realProjectionMatrix * realViewMatrix * virtualProjectionMatrix * virtualModelViewMatrix * vec4(vertPosition, 1.0); }