parodyband/zassimp
Clean, idiomatic Zig wrapper around Assimp's C API
8c92bc97241a2bf9b6dcb0fbb8af80b798e37b38.tar.gz
Modern Zig bindings for Assimp (Open Asset Import Library).
Requires Zig 0.15.1
Add to build.zig.zon
:
.dependencies = .{
.zassimp = .{
.url = "https://github.com/parodyband/zassimp/archive/main.tar.gz",
.hash = "...", // Use `zig build --fetch` to get the hash
},
},
Add to build.zig
:
const dep_zassimp = b.dependency("zassimp", .{ .target = target, .optimize = optimize });
const zassimp = dep_zassimp.module("zassimp");
// Then add module like normal :)
const std = @import("std");
const zassimp = @import("zassimp");
pub fn main() !void {
var importer = zassimp.Importer.init();
defer importer.deinit();
const scene = try importer.importFile("model.obj",
zassimp.PostProcessSteps.Triangulate |
zassimp.PostProcessSteps.GenNormals);
const meshes = scene.getMeshes();
std.debug.print("Loaded {} meshes\n", .{meshes.len});
}
See the examples/
directory for reference code:
basic.zig
- Basic model loading and information displayanimation.zig
- Animation loading and keyframe interpolationBSD 3-Clause (via Assimp)