//*PIXEL* #version 460 core #extension GL_ARB_bindless_texture : require uint INVALID_HYDRA_ID = 4294967295; struct MaterialStore { vec4 diffuse_colour; uint diffuse_texture_id; uint padding[3]; }; layout(binding = 2, std430) readonly buffer MaterialBuffer { MaterialStore materials[1000]; }; layout( std430, binding = 3) readonly buffer TextureBuffer { uvec2 textures[1000]; }; layout (location=0) in VS_OUT { vec2 vsUV; vec4 vsWorldPos; flat uint vsChunkID; flat uint vsMaterialID; }vs_out; layout (location=0) out vec4 uFragColor; void main() { MaterialStore mat = materials[vs_out.vsMaterialID]; //uvec2 tex_handle = textures[mat.diffuse_texture_id]; uvec2 handle = textures[mat.diffuse_texture_id]; // 2. Explicitly cast the 64-bit integer handle to a sampler type // sampler2D tex = sampler2D(handle); // 3. Sample the texture normally vec4 output_colour = texture(sampler2D(handle), vs_out.vsUV.xy); if(output_colour[3] <= 0.1) { discard; } uFragColor = output_colour; //uFragColor = vec4(vs_out.vsUV.x, vs_out.vsUV.y, 1, 1); }