#version 330 core out vec4 FragColor; flat in float v_VoxelKind; // [NEW] This variable will be set from your C++ code uniform vec3 u_Color; void main() { // Use the color from C++ // You can now use v_VoxelKind to modify the color // Example: Different colors for different voxel types vec3 color = u_Color; if (v_VoxelKind == 1.0) { // Dirt - brownish color *= vec3(0.6, 0.4, 0.2); } else if (v_VoxelKind == 2.0) { // Stone - grayish (keep as is) } FragColor = vec4(color, 1.0); }