aluminium 0.1.0

vulkan-based graphics engine

layout(set = 0, binding = 0) uniform sampler2D textures[512];
layout(set = 0, binding = 1, rgba8) uniform image2D storageImages[128];

struct TransformData {
    vec4 scale;
    vec4 rot;
    vec4 pos;
};

layout(set = 0, binding = 2) uniform Transforms {
    TransformData data[8192];
} transforms;

struct AABBData {
    vec3 max;
    vec3 min;
} aaabb_data;

layout(set = 0, binding = 3) uniform GlobalCamera {
    mat4 model;
    mat4 view;
    mat4 proj;
} camera;

layout(set = 0, binding = 4) readonly buffer AABB {
    AABBData data[8192];
} aabb;

struct AABBList {
    uint count;
    uint indices[8192];
} aabb_list_data;

layout(set = 0, binding = 5) uniform AABB_LIST {
    AABBData list;
} aabb_list;

layout(push_constant) uniform PushConstants {
    uint transform_id;
    uint texture_ids[16];
} pc;

// sampler2D getTextureByID(uint id) {
//     return textures[texture_ids[id]];
// }

mat4 getGlobalCamera() {
    return camera.proj * camera.view * camera.model;
}

mat4 getCameraView() {
    return camera.view;
}

TransformData getTransform() {
    return transforms.data[pc.transform_id];
}

void getAABB() {

}