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 在 数据格式
每月下载量 51 次
23KB
528 行
rendersloth - CLI 的独特 Rust 3D 渲染器
在您的终端或应用程序中渲染 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