71 lines
1.7 KiB
Plaintext
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
|