光线追踪器挑战
The Ray Tracer Challenge
第一个 3D 渲染器的测试驱动指南
准备好迎接有趣的挑战:从头开始构建逼真的 3D 渲染器!这比你想象的要容易。在短短几周内,构建一个光线追踪器,它可以渲染美丽的场景,包括阴影、反射、出色的折射效果,以及由各种图形基元组成的主题:球体、立方体、圆柱体、三角形等。在每一章中,实现另一块拼图并将渲染器向前移动。在您喜欢的任何语言和环境中执行所有这些操作,并且完全先测试,这样您就知道它是正确的。用这个项目在个人探索、实验和发现方面的巨大潜力来为自己充电。
全彩 印刷。
渲染器是一个光线追踪器,这意味着它通过追踪场景周围的光线路径来模拟光的物理特性。每个激动人心的章节都呈现出一小块拼图,以前面的章节为基础,为后面的章节奠定基础。要求与语言无关;您可以使用您喜欢的任何语言将它们翻译成测试和代码。项目完成后,您将回顾并意识到您已经构建了一个完整的系统测试优先!
没有必要的研究——所有必要的公式和算法都在这里展示和说明。从向量和矩阵等基本概念深入研究有趣的主题;模拟光线与球体、平面、立方体、圆柱体和三角形相交的算法;几何图案,如棋盘格和圆环。光照和阴影效果(例如阴影和反射)使您的场景栩栩如生,而构造立体几何 (CSG) 使您能够以简单的方式组合图形基元以生成复杂的形状。
在发现编写光线追踪器的乐趣时进行游戏和实验。接受今天的挑战!
你需要什么
除了计算机、操作系统和编程环境之外,您还需要一种显示 PPM 图像文件的方法。在 Windows 上,像 Photoshop 这样的程序可以运行,或者像 IrfanView 这样的免费程序。在 Mac 上,不需要特殊软件,因为 Preview 可以打开 PPM 文件。
资源
- 勘误、错别字、建议
- 源代码(压缩文件)
发布:
- P1.0 2019/02/26
- B6.0 2019/02/13
- B5.0 2018/12/11
- B4.0 2018/11/14
内容和摘录
- 入门
- 这本书是给谁看的
- 如何阅读本书
- 需要注意的事情
- 元组、点和向量
- 元组
- 运营
- 把它放在一起
- 在画布上绘图
- 代表颜色
- 实现颜色操作
- 创建画布
- 保存画布
- 把它放在一起
- 矩阵 摘录
- 创建矩阵
- 乘法矩阵
- 身份矩阵
- 转置矩阵
- 反转矩阵
- 把它放在一起
- 矩阵变换
- 翻译
- 缩放
- 回转
- 剪切
- 链接转换
- 把它放在一起
- 射线球交点
- 创建射线
- 与球体相交的光线
- 跟踪路口
- 识别命中
- 变换光线和球体
- 把它放在一起
- 灯光和阴影
- 表面法线
- 反射向量
- Phong 反射模型
- 把它放在一起
- 制作场景
- 建设世界
- 定义视图转换
- 实现相机
- 把它放在一起
- 阴影
- 阴影中的照明
- 测试阴影
- 渲染阴影
- 把它放在一起
- 飞机
- 重构形状
- 实现平面
- 把它放在一起
- 模式
- 制作条纹图案
- 转换模式
- 泛化模式
- 制作渐变图案
- 制作环形图案
- 制作 3D 棋盘格图案
- 把它放在一起
- 反射和折射
- 反射
- 透明度和折射
- 菲涅耳效应
- 把它放在一起
- 立方体
- 将射线与立方体相交
- 在立方体上寻找法线
- 把它放在一起
- 气缸
- 将射线与圆柱相交
- 在圆柱体上找到法线
- 截断圆柱体
- 带盖气缸
- 锥体
- 把它放在一起
- 团体
- 实施小组
- 在子对象上找到法线
- 使用边界框优化大场景
- 把它放在一起
- 三角形
- 三角形
- 波前 OBJ 文件
- 平滑三角形
- OBJ 文件中的平滑三角形
- 把它放在一起
- 构造实体几何 (CSG)
- 实施 CSG
- 着色 CSG 形状
- 把它放在一起
- 下一步
- 区域光和柔和阴影
- 聚光灯
- 焦点模糊
- 运动模糊
- 抗锯齿
- 纹理贴图
- 正常扰动
- 圆环原语
- 把它包起来
- 渲染封面图片
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)