/tiny-renderer

A tiny software renderer written in Rust.

Primary LanguageRustMIT LicenseMIT

English

tiny-renderer 简单的光栅化软渲染器

  • 基础数学库
  • Bresenham画线算法
  • Cohen-Sutherland线段裁剪算法
  • glTF模型加载
  • 模型/视图/投影变换
  • 背面剔除
  • 视椎剔除
  • 齐次空间裁剪
  • 深度测试
  • 顶点和片段着色器
  • 重心坐标插值
  • 透视矫正
  • Blinn–Phong反射模型
  • 纹理映射
  • 相机控制

运行

  1. bresenham画线算法
cargo run --example bresenham_line
  1. 渲染
cargo run --example rendering

控制

  • F1 切换线框渲染
  • F2 切换顶点颜色插值
  • F3 切换片段着色
  • F4 切换投影方式
  • F5 切换模型
  • W/A/S/D/Q/E 控制相机移动

截图

视频演示:B站

bresenham_line wireframe_rendering vertex_color_interpolation texture_mapping blinn_phong_texture blinn_phong_color

参考