123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- /* SET 0, static data that does not change between any call */
- layout(set = 0, binding = 0) uniform BakeParameters {
- vec3 world_size;
- float bias;
- vec3 to_cell_offset;
- int grid_size;
- vec3 to_cell_size;
- uint light_count;
- mat3x4 env_transform;
- ivec2 atlas_size;
- float exposure_normalization;
- uint bounces;
- float bounce_indirect_energy;
- }
- bake_params;
- struct Vertex {
- vec3 position;
- float normal_z;
- vec2 uv;
- vec2 normal_xy;
- };
- layout(set = 0, binding = 1, std430) restrict readonly buffer Vertices {
- Vertex data[];
- }
- vertices;
- struct Triangle {
- uvec3 indices;
- uint slice;
- vec3 min_bounds;
- uint pad0;
- vec3 max_bounds;
- uint pad1;
- };
- struct ClusterAABB {
- vec3 min_bounds;
- uint pad0;
- vec3 max_bounds;
- uint pad1;
- };
- layout(set = 0, binding = 2, std430) restrict readonly buffer Triangles {
- Triangle data[];
- }
- triangles;
- layout(set = 0, binding = 3, std430) restrict readonly buffer TriangleIndices {
- uint data[];
- }
- triangle_indices;
- #define LIGHT_TYPE_DIRECTIONAL 0
- #define LIGHT_TYPE_OMNI 1
- #define LIGHT_TYPE_SPOT 2
- struct Light {
- vec3 position;
- uint type;
- vec3 direction;
- float energy;
- vec3 color;
- float size;
- float range;
- float attenuation;
- float cos_spot_angle;
- float inv_spot_attenuation;
- float indirect_energy;
- float shadow_blur;
- bool static_bake;
- uint pad;
- };
- layout(set = 0, binding = 4, std430) restrict readonly buffer Lights {
- Light data[];
- }
- lights;
- struct Seam {
- uvec2 a;
- uvec2 b;
- };
- layout(set = 0, binding = 5, std430) restrict readonly buffer Seams {
- Seam data[];
- }
- seams;
- layout(set = 0, binding = 6, std430) restrict readonly buffer Probes {
- vec4 data[];
- }
- probe_positions;
- layout(set = 0, binding = 7) uniform utexture3D grid;
- layout(set = 0, binding = 8) uniform texture2DArray albedo_tex;
- layout(set = 0, binding = 9) uniform texture2DArray emission_tex;
- layout(set = 0, binding = 10) uniform sampler linear_sampler;
- layout(set = 0, binding = 11, std430) restrict readonly buffer ClusterIndices {
- uint data[];
- }
- cluster_indices;
- layout(set = 0, binding = 12, std430) restrict readonly buffer ClusterAABBs {
- ClusterAABB data[];
- }
- cluster_aabbs;
- // Fragment action constants
- const uint FA_NONE = 0;
- const uint FA_SMOOTHEN_POSITION = 1;
|