Byte World
Graphics from Scratch2026-08-12

纯 Python 实现 CPU 光栅渲染器

仅借助 SDL2 和 NumPy,从窗口与像素输出开始,逐步实现可实时交互的 CPU 软光栅渲染器。

Computer GraphicsPythonRasterization

该项目实现参考 TinyRenderer,感谢开源社区的贡献。项目得到 GAMES101 课程 的启发,旨在完整从零实现一个功能完整的 CPU 软光栅渲染器。

总体实现目标

  1. 仅借助 SDL2 和 NumPy 实现
  2. 实时渲染、视角可变化
  3. 支持纹理贴图、光照、法线贴图等功能
  4. 尽可能简洁明了

运行效果

CPU 光栅渲染器运行效果 1
CPU 光栅渲染器运行效果 2

由于没有专门针对大量三角面进行特定优化,实时渲染在三角面数量较多时会出现卡顿现象,但优化这一点并不是本项目的重点。在上面展示的两个实例中,右侧实例可以达到 60-80 FPS,左侧则可能只有 2-3 FPS。

章节

每一讲只处理一个明确的问题,正文、代码和实验分别放在独立页面中,后续内容会按实现进度继续补充。