Directional Shdaows, no alpha
This commit is contained in:
@@ -1,15 +1,62 @@
|
||||
//*PIXEL*
|
||||
#version 450
|
||||
#version 460
|
||||
|
||||
#extension GL_EXT_scalar_block_layout : enable
|
||||
#extension GL_EXT_nonuniform_qualifier : enable
|
||||
#extension GL_ARB_bindless_texture : require
|
||||
|
||||
const uint DIRECTIONAL_LIGHT = 1;
|
||||
const uint POINT_LIGHT = 2;
|
||||
const uint SPOT_LIGHT = 3;
|
||||
uint INVALID_HYDRA_ID = 4294967295;
|
||||
|
||||
struct MaterialStore
|
||||
{
|
||||
vec4 diffuse_colour;
|
||||
vec4 matalic_rough;
|
||||
uint diffuse_texture_id;
|
||||
uint metallic_rough_texture_id;
|
||||
uint normal_texture_id;
|
||||
uint padding[1];
|
||||
};
|
||||
|
||||
layout(std430, binding = 2) readonly buffer material_buffer
|
||||
{
|
||||
MaterialStore materials[1000];
|
||||
};
|
||||
|
||||
layout(std430, binding = 3) readonly buffer texture_buffer
|
||||
{
|
||||
uvec2 textures[1000];
|
||||
};
|
||||
|
||||
layout (location=0) in GEOM_OUT
|
||||
{
|
||||
vec2 vsUV;
|
||||
flat uint vsMaterialID;
|
||||
}geom_out;
|
||||
|
||||
layout (location=0) out vec4 output_colour;
|
||||
|
||||
void main()
|
||||
{
|
||||
|
||||
//gl_FragDepth = gl_FragCoord.z;
|
||||
MaterialStore mat = materials[geom_out.vsMaterialID];
|
||||
vec4 diffuse_val = mat.diffuse_colour;
|
||||
|
||||
output_colour = vec4(1,0,0,1);
|
||||
|
||||
// if(mat.diffuse_texture_id != INVALID_HYDRA_ID)
|
||||
// {
|
||||
// output_colour = vec4(0,1,0,1);
|
||||
// uvec2 diffuse_handle = textures[mat.diffuse_texture_id];
|
||||
// diffuse_val = diffuse_val * texture(sampler2D(diffuse_handle), geom_out.vsUV.xy);
|
||||
// output_colour = diffuse_val;
|
||||
// }
|
||||
|
||||
// if(diffuse_val[3] <= 0.4)
|
||||
// {
|
||||
// discard;
|
||||
// }
|
||||
// Calculate the accurate, unclamped distance from the light source
|
||||
// output_colour = diffuse_val;
|
||||
// output_colour = vec4(geom_out.vsUV, 1,1);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user