fix memory layout

This commit is contained in:
2026-02-05 22:18:34 +00:00
parent 5533f461cd
commit 3282724f81
3 changed files with 9 additions and 9 deletions
+1
View File
@@ -32,6 +32,7 @@ for shader in normal_shaders:
f"-I{SHADERS_INCLUDE}", f"-I{SHADERS_INCLUDE}",
"--spirv-val", "--spirv-val",
"-gVS", "-gVS",
# "-q",
"--target-env", "--target-env",
TARGET_ENV, TARGET_ENV,
"-o", "-o",
+7 -8
View File
@@ -45,6 +45,9 @@ layout(set = 0, binding = 3, std430) restrict readonly buffer Indicies {
} indicies; } indicies;
struct Object { struct Object {
// TRANSFORM
uint transform_offset;
// MESH // MESH
uint vert_offset; uint vert_offset;
uint index_offset; uint index_offset;
@@ -55,7 +58,6 @@ struct Object {
uint subdivision_log2; uint subdivision_log2;
// MATERIAL // MATERIAL
vec4 colour_and_roughness;
float metallic; float metallic;
float subsurface; float subsurface;
float specular; float specular;
@@ -64,9 +66,7 @@ struct Object {
float sheen_tint; float sheen_tint;
float clear_coat_gloss; float clear_coat_gloss;
float clear_coat; float clear_coat;
vec4 colour_and_roughness;
// TRANSFORM
uint transform_offset;
}; };
layout(set = 0, binding = 4, std430) restrict readonly buffer Objects { layout(set = 0, binding = 4, std430) restrict readonly buffer Objects {
@@ -74,10 +74,9 @@ layout(set = 0, binding = 4, std430) restrict readonly buffer Objects {
} objects; } objects;
struct Transform { struct Transform {
vec3 x; vec4 x;
vec3 y; vec4 y;
vec3 z; vec4 z;
vec3 w;
}; };
layout(set = 0, binding = 5, std430) restrict readonly buffer Transforms { layout(set = 0, binding = 5, std430) restrict readonly buffer Transforms {
+1 -1
View File
@@ -26,7 +26,7 @@ void main() {
// transform to world space // transform to world space
Transform t = transforms.transforms[obj.transform_offset]; Transform t = transforms.transforms[obj.transform_offset];
mat3 object_transform = mat3(t.x, t.y, t.z); mat3 object_transform = mat3(t.x.xyz, t.y.xyz, t.z.xyz);
vec3 normal = normalize((inverse(object_transform) * local_normal).xyz); vec3 normal = normalize((inverse(object_transform) * local_normal).xyz);
hit_value.normal = normal; hit_value.normal = normal;