xash3d-fwgs/ref/vk/shaders/ray_light_direct_poly.comp

38 lines
1.6 KiB
Plaintext

#version 460 core
#extension GL_GOOGLE_include_directive : require
#extension GL_EXT_shader_16bit_storage : require
#extension GL_EXT_ray_query: require
#define GLSL
#include "ray_interop.h"
#undef GLSL
layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
layout(set = 0, binding = 1) uniform accelerationStructureEXT tlas;
layout(set = 0, binding = 2) uniform UBO { UniformBuffer ubo; } ubo;
layout(set = 0, binding = 6) uniform sampler2D textures[MAX_TEXTURES];
layout (set = 0, binding = 7) readonly buffer SBOLights { LightsMetadata m; } lights;
layout (set = 0, binding = 8, align = 1) readonly buffer UBOLightClusters {
LightCluster clusters_[MAX_LIGHT_CLUSTERS];
} light_grid;
layout(set = 0, binding = 10, rgba32f) uniform readonly image2D position_t;
layout(set = 0, binding = 11, rgba16f) uniform readonly image2D normals_gs;
layout(set = 0, binding = 12, rgba8) uniform readonly image2D material_rmxx;
layout(set = 0, binding = 13, rgba8) uniform readonly image2D base_color_a;
layout(set = 0, binding = 20, rgba16f) uniform writeonly image2D out_light_poly_diffuse;
layout(set = 0, binding = 21, rgba16f) uniform writeonly image2D out_light_poly_specular;
layout(set = 0, binding = 30, std430) readonly buffer ModelHeaders { ModelHeader a[]; } model_headers;
layout(set = 0, binding = 31, std430) readonly buffer Kusochki { Kusok a[]; } kusochki;
layout(set = 0, binding = 32, std430) readonly buffer Indices { uint16_t a[]; } indices;
layout(set = 0, binding = 33, std430) readonly buffer Vertices { Vertex a[]; } vertices;
#define RAY_QUERY
#define LIGHT_POLYGON 1
#include "ray_light_direct.glsl"