Files
loop/shader/pull/cloud.vert
T
2025-11-13 18:09:12 +00:00

28 lines
823 B
GLSL

#version 450 core
//struct CloudPosCol { vec4 pos; vec4 col; };
//struct CloudPosCol { vec3 pos; uint colx; vec4 col; };
struct CloudPosCol { vec3 pos; uint colx; };
layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ;
layout (std430, binding = 6) readonly buffer CPos { CloudPosCol data[]; };
const vec2 indices[6] =
{vec2(-1,-1) // 0 2--3
,vec2( 1,-1) // 1 | |
,vec2( 1, 1) // 3 0--1
,vec2(-1,-1) // 0
,vec2(-1, 1) // 2
,vec2( 1, 1) // 3
};
out vec4 vCol;
out vec2 vControls;
out vec3 vPos;
void main()
{
uint i = gl_VertexID / 6;
uint k = gl_VertexID % 6;
//vCol = data[i].col;
vCol = unpackUnorm4x8(data[i].colx);
vControls = indices[k];
vPos = vec3(data[i].pos.xy + 20*vControls, data[i].pos.z);
gl_Position = theMat * vec4(vPos,1);
}