Gears/src/shaders/structures.layout

71 lines
1.7 KiB
Plaintext

// DEFINES
#define OIT_LAYERS 16
#define IMG_MAX 100
#define BUF_MAX 25
#define UNI_MAX 50
// SPEC CONSTANTS
layout (constant_id = 0) const bool ALBEDO_TEX = false;
layout (constant_id = 1) const bool AMBIENT_TEX = false;
layout (constant_id = 2) const bool SPECULAR_TEX = false;
layout (constant_id = 3) const bool ALPHA_TEX = false;
// SET 0
layout (rgba16f, set = 0, binding = 0) uniform image2D DrawImage;
layout ( set = 0, binding = 1) uniform sampler SamplerNearest;
// SET 1
layout (set = 1, binding = 0) uniform Globals {
mat4 view;
mat4 projection;
vec4 light_color;
vec4 ambient_color;
vec3 light_direction;
vec2 res;
} G;
layout (set = 1, binding = 1, rg32ui) uniform coherent uimageBuffer ImageABuffer;
layout (set = 1, binding = 2, r32ui) uniform coherent uimage2D ImageAux;
// SET 2
layout (set = 2, binding = 0) uniform texture2D AlbedoTex;
layout (set = 2, binding = 1) uniform texture2D AmbientTex;
layout (set = 2, binding = 2) uniform texture2D SpecularTex;
layout (set = 2, binding = 3) uniform texture2D AlphaTex;
layout (set = 2, binding = 4) uniform MaterialData {
vec4 ambient;
vec4 diffuse;
vec4 specular;
float shininess;
float alpha;
} Material;
layout (set = 3, binding = 0) uniform ModelState {
mat4 model_matrix;
} State;
// PUSH CONSTANTS
layout (push_constant) uniform PushConstants {
uint t0;
uint t1;
uint t2;
uint t3;
uint m0;
uint s0;
} PC;
// ALIAS MACROS
#define ModelMatrix State.model_matrix
#define ModelAmbient Material.ambient
#define ModelDiffuse Material.diffuse
#define ModelSpecular Material.specular
#define ModelShininess Material.shininess
#define ModelAlpha Material.alpha