Files
HydraV3/HydraEngine/source/ShaderFiles/forward_shader.frag
T

57 lines
1.1 KiB
GLSL

//*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);
}