5 个版本

0.2.4 2023 年 3 月 15 日
0.2.3 2023 年 3 月 15 日
0.2.2 2023 年 3 月 15 日
0.2.1 2023 年 3 月 14 日
0.2.0 2023 年 3 月 14 日

#69数据格式

Download history 4/week @ 2024-03-31

每月下载量 51 次

MIT 许可证

23KB
528

rendersloth - CLI 的独特 Rust 3D 渲染器

pikachu

在您的终端或应用程序中渲染 3D 模型。Sloth 是一个软件光栅化器,将三角形转换为字符像素(字符 + 颜色)。它通过简单的三角形网格交点方法确定三角形是否在字符内。然后使用一个非常简单的着色比例确定基于亮度的哪个字符使用。颜色由 OBJ 的顶点颜色和 STL 的模型颜色确定。

入门


作为库

cargo add rendersloth
use rendersloth::*;

let mut context = Rasterizer::new(40, 40);

// Convert your OBJ to a simpler format for rendering
let mut meshes: Vec<SimpleMesh> = vec![];
let obj_model = tobj::load_obj("file.obj", &tobj::GPU_LOAD_OPTIONS);
let obj_mesh = obj_model.0;
let obj_materials = obj_model.1.expect("Expected to have materials.");
for model in {
    meshes.push(model.mesh.to_simple_mesh_with_materials(&materials));
}

// Scale the camera to the model
context.update(&meshes)?;
let transform = Mat4::IDENTITY;
// Draw the meshes to the context's built-in framebuffer
context.draw_all(transform, meshes)?;

// Print the screen's contents
context.flush()?;

作为 CLI 应用使用

cargo install rendersloth --features build-cli

渲染皮卡丘

rendersloth --file-name models/Pikachu.obj

感谢贡献者!

Maxgy – Rustfmt 检查 donbright – 添加 STL 模型加载,Rustfmt 检查 jonathandturner – Crossterm 端口

依赖关系

~5–14MB
~201K SLoC