// 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