4121bfb468
It is not at all clear whether this is an improvement or not
31 lines
1.0 KiB
GLSL
31 lines
1.0 KiB
GLSL
#version 450 core
|
|
//struct PosColNorm { vec4 pos; vec4 norm;uint col; uint dummy; };
|
|
struct PosColNorm { vec4 pos; uint norm;uint col; };
|
|
// I don't know if the dummy is necessary
|
|
layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ;
|
|
layout (std430, binding = 3) readonly buffer Data { PosColNorm data[]; };
|
|
layout (std430, binding = 4) readonly buffer Indices { uint indices[]; };
|
|
out vec4 vCol;
|
|
out vec4 vPos;
|
|
out vec4 vNorm;
|
|
void main() {
|
|
vPos = data[indices[gl_VertexID]].pos;
|
|
vCol = unpackUnorm4x8(data[indices[gl_VertexID]].col);
|
|
vec4 n = unpackUnorm4x8(data[indices[gl_VertexID]].norm);
|
|
vNorm = n *2 - vec4(1,1,1,1);
|
|
gl_Position = theMat * vec4(vPos.xyz,1);
|
|
}
|
|
//layout (location = 0) in vec4 pos;
|
|
//layout (location = 1) in vec4 col;
|
|
//layout (location = 2) in vec4 norm;
|
|
//layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ;
|
|
//out vec4 vCol;
|
|
//out vec4 vPos;
|
|
//out vec4 vNorm;
|
|
//void main() {
|
|
// gl_Position = theMat * vec4(pos.xyz,1);
|
|
// vCol = col;
|
|
// vPos = pos;
|
|
// vNorm = norm;
|
|
//}
|