一套免费在线书籍,带你用 C++ 从零实现光线追踪渲染器,并附各阶段完整源码。
1.1万1016HTMLCC0-1.0更新于 3个月前
一门通过约 500 行纯 C++ 从零实现软件渲染器的图形学入门课程。
Tinyrenderer 是一套教程,通过从零编写软件渲染器来讲解 OpenGL、Vulkan、Metal 和 DirectX 等 3D 图形 API 的工作原理。项目不调用 GPU 接口,而是用纯软件实现直线绘制、三角形光栅化、重心坐标、深度缓冲、相机处理、着色、纹理与法线贴图、阴影映射和环境光遮蔽等内容。
代码约 500 行 C++,不依赖任何第三方图形库,唯一的辅助类只用于读写 TGA 图片。它的核心是按顺序展开的课程笔记,源码更适合作为学习材料阅读,而不是直接当作库使用。
程序输入三角网格 3D 模型和纹理,输出渲染图像,没有图形界面,使用 CMake 构建。
克隆仓库
git clone https://github.com/ssloy/tinyrenderer.git进入项目目录
cd tinyrenderer使用 CMake 配置并编译
cmake -Bbuild && cmake --build build -j对示例模型运行渲染器,输出保存为 framebuffer.tga
build/tinyrenderer obj/diablo3_pose/diablo3_pose.obj obj/floor.obj概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
一套免费在线书籍,带你用 C++ 从零实现光线追踪渲染器,并附各阶段完整源码。
Blender 是免费开源的 3D 创作套件,覆盖建模、绑定、动画、模拟、渲染、合成、运动跟踪和视频剪辑。
面向 Android、iOS、桌面端和 WebGL2 的实时物理渲染引擎,在 Android 上力求小巧高效。
一本开源的现代 C++ 教程,按主题介绍从 C++11 到 C++26 的新特性。
将单张参考图重建为可动画的程序化 Three.js 代码模型,而不是网格文件。
面向游戏程序员和技术负责人的中文知识库,涵盖基础技术、游戏研发、生产管线、团队管理与上线运营。