You can do this with a custom shader. Here is an example that just renders the vertex color.
shader_type spatial;
render_mode unshaded;
void fragment() {
ALBEDO = COLOR.rgb;
}
On the last line (in the fragment/pixel shader) the ALBEDO out parameter is what sets the color on the screen. In the code example, I am just setting it to the vertex color. But you can sample the texture and then multiply it by the vertex color to combine them (or some other math, whatever you want).
shader_type spatial;
render_mode unshaded;
uniform sampler2D texture_map;
void fragment() {
ALBEDO = COLOR.rgb * texture(texture_map, UV).rgb;
}
Here this is a ShaderMaterial and you would set the texture on the shader param section.