22 lines
584 B
GLSL
22 lines
584 B
GLSL
#version 430
|
|
|
|
// No SSBO — vertices are already in world space.
|
|
// Just read vertex color for object ID and output it.
|
|
|
|
in vec4 p3d_Vertex;
|
|
in vec4 p3d_Color;
|
|
|
|
uniform mat4 p3d_ModelViewProjectionMatrix;
|
|
|
|
flat out int v_instance_id;
|
|
|
|
void main() {
|
|
// Decode object ID from vertex color R/G channels
|
|
int low_byte = int(p3d_Color.r * 255.0 + 0.5);
|
|
int high_byte = int(p3d_Color.g * 255.0 + 0.5);
|
|
v_instance_id = low_byte + (high_byte << 8);
|
|
|
|
// Standard transform — vertices already in world space
|
|
gl_Position = p3d_ModelViewProjectionMatrix * p3d_Vertex;
|
|
}
|