From 7cf43ccb8b8b1726c2697188b9138847780cd08e Mon Sep 17 00:00:00 2001 From: Lorenzo Torres Date: Mon, 24 Mar 2025 19:49:49 +0100 Subject: [PATCH] glTF models now take buffer lengths at runtime --- assets/models/block.glb | Bin 1944 -> 69684 bytes src/rendering/gltf.zig | 6 ++---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/assets/models/block.glb b/assets/models/block.glb index 879f0aca7f3ff8c026b384aa28c15848a0518f45..74ea15f30b1fbb4b6248b245661f498c65a51aa6 100644 GIT binary patch literal 69684 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 literal 1944 zcmb7EZBH6O5FV?o*0$Q(x36SBU+LX}3iqK@siw5bH9$-gW9k75UIKS!Z?QFmgrCuW z)Bd#1?AzN3HFv@f>B(vM&L7R(A<-MD^$Y>VZOHmOI#ZzuzC37hMv%TIx$wPS%+?ME%^t7&ZQf>%6a$VN zae~7Hmo-fb4|m=ahg^ESp5Lm4gYH?tBV-t|rWf&Y*bBwJ*HV=pn^=t+mQ}RPqFprZ zW3lLHNdirUg$teQ%9h<6sWPxWRrpm$s6u^M;rD&%UnBreO5ryLlGGvl=GH5Xid$9P zsk*hpodf1r25annFS~B-(+`t5Hg?|++J1{da@S46n2~C<*Fskminxo-L8rsTk^#^pKQ)uv@{8LSl!0(=#Ap4fijjadeMsA?at{P>+^s4p6%ieg85i3|_(l&SiKEk6;7W4R{T2;T5dmx&|-cIV`~{uB-3{9>N1y!F2_mz&bod J!gZXB@DDO;&~^X- diff --git a/src/rendering/gltf.zig b/src/rendering/gltf.zig index 888191d..32a632a 100644 --- a/src/rendering/gltf.zig +++ b/src/rendering/gltf.zig @@ -157,10 +157,8 @@ pub fn parseFile(allocator: Allocator, name: []const u8) !struct { vertices: [][ const data = (try std.json.parseFromSlice(Model.JsonChunk, allocator, @constCast(all[Model.Chunk.offset .. Model.Chunk.offset + json_chunk.length]), .{ .ignore_unknown_fields = true })).value; const binary = Model.Binary{ .data = all[Model.Chunk.offset + json_chunk.length + 8 ..] }; - const vertices = try binary.readVec3(allocator, data.bufferViews.?[data.meshes.?[0].primitives.?[0].attributes.?.POSITION.?], 24); - const indices = try binary.readU16(allocator, data.bufferViews.?[data.meshes.?[0].primitives.?[0].indices.?], 36); - std.debug.print("vertices: {any}\n", .{vertices}); - std.debug.print("indices: {any}\n", .{indices}); + const vertices = try binary.readVec3(allocator, data.bufferViews.?[data.meshes.?[0].primitives.?[0].attributes.?.POSITION.?], data.accessors.?[data.meshes.?[0].primitives.?[0].attributes.?.POSITION.?].count); + const indices = try binary.readU16(allocator, data.bufferViews.?[data.meshes.?[0].primitives.?[0].indices.?], data.accessors.?[data.meshes.?[0].primitives.?[0].indices.?].count); return .{ .vertices = vertices, .indices = indices }; }