在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例Clojure → 基于物理的渲染-从理论到实现

基于物理的渲染-从理论到实现

Clojure

下载此实例
  • 开发语言:Others
  • 实例大小:60.32M
  • 下载次数:30
  • 浏览次数:122
  • 发布时间:2022-05-02
  • 实例类别:Clojure
  • 发 布 人:1231231fff
  • 文件格式:.pdf
  • 所需积分:2
 相关标签: 物理 实践 渲染 原理

实例介绍

【实例简介】基于物理的渲染-从理论到实现

【实例截图】

【核心代码】

绪论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.1 文学编程 19
1.2 逼真渲染和光线追踪算法 21
1.2.1 相机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.2.2 光线-物体相交 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.2.3 光分布 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.2.4 可见性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.2.5 表面散射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.2.6 间接光传输 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.2.7 光线传播 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.3 pbrt:系统概述 31
1.3.1 执行阶段 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.3.2 场景表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1.3.3 积分器接口与采样积分器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
1.3.4 主渲染循环 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1.3.5 Whitted 光线追踪积分器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
1.4 pbrt 的并行化 54
1.4.1 数据竞争与协调 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
1.4.2 pbrt 中的约定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
1.4.3 pbrt 中的线程安全要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
1.5 如何继续阅读本书 58
1.5.1 关于习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
1.6 使用和理解代码 59
1.6.1 指针还是引用? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
1.6.2 抽象与效率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
1.6.3 代码优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
1.6.4 本书网站 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
1.6.5 扩展系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
1.6.6 反馈错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
1.7 基于物理的渲染简史 61
1.7.1 研究 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
1.7.2 制作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
1.8 扩展阅读 66
1.9 习题 67
II 主要几何功能
2 几何与变换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.1 坐标系 71
2.1.1 坐标系惯用手 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.2 向量 72
2.2.1 点积与叉积 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
2.2.2 规范化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2.2.3 其他操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2.2.4 来自向量的坐标系 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.3 点 80
2.4 法线 84
2.5 射线 85
2.5.1 射线差分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
2.6 边界框 88
2.7 变换 93
2.7.1 齐次坐标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
2.7.2 基本运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
2.7.3 平移 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
2.7.4 缩放 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
2.7.5 x,y 和 z 轴旋转 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
2.7.6 绕任意轴旋转 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
2.7.7 注视变换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
2.8 施加变换 104
2.8.1 点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
2.8.2 向量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
2.8.3 法线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
2.8.4 射线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
2.8.5 边界框 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
2.8.6 变换的合成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
2.8.7 变换与坐标系惯用手 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
2.9 动画变换 107
2.9.1 四元数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
2.9.2 四元数插值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
2.9.3 动画变换实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
2.9.4 定界移动边界框 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
2.10 交互作用 124
2.10.1 表面交互 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
2.11 扩展阅读 129
2.12 习题 130
2.13 译者补充:四元数 131
2.13.1 四元数的定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
2.13.2 四元数的运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
2.13.3 四元数与旋转变换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
2.14 译者补充:分解旋转矩阵 142
2.14.1 收敛性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
2.14.2 最优性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
2.15 译者补充:牛顿迭代法 145
2.15.1 基本定义与定理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
2.15.2 简单迭代法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
2.15.3 牛顿迭代法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
3 形状 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
3.1 基本形状接口 151
3.1.1 边界 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
3.1.2 光线-边界相交 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
3.1.3 相交测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
3.1.4 表面积 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
3.1.5 面性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
3.2 球体 158
3.2.1 边界 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
3.2.2 相交测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
3.2.3 法向量的偏导数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
3.2.4 SurfaceInteraction 初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
3.2.5 表面积 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
3.3 圆柱体 168
3.3.1 边界 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
3.3.2 相交测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
3.3.3 表面积 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
3.4 圆盘 172
3.4.1 边界 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
3.4.2 相交测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
3.4.3 表面积 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
3.5 其他二次曲面 176
3.5.1 圆锥体 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
3.5.2 抛物面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
3.5.3 双曲面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
3.6 三角形网格 178
3.6.1 三角形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
3.6.2 三角形相交 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
3.6.3 着色几何 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
3.6.4 表面积 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
3.7 曲线 193
3.8 细分曲面 206
3.8.1 网格表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
3.8.2 细分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
3.9 控制舍入误差 229
3.9.1 浮点算术 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
3.9.2 保守的光线-边界框相交 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
3.9.3 稳定的三角形相交 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
3.9.4 定界交点误差 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
3.9.5 稳定触发的射线端点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
3.9.6 避免射线端点之后的相交 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
3.9.7 讨论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
3.10 扩展阅读 255
3.11 习题 257
3.12 译者补充:微分几何基础 261
3.12.1 曲线的概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
3.12.2 曲面的概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
3.12.3 曲面的基本公式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
4 图元和相交加速 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
4.1 图元接口与几何图元 270
4.1.1 几何图元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
4.1.2 TransformedPrimitive:物体实例化与动画基元 . . . . . . . . . . . . . . . . . 273
4.2 聚合 275
4.3 包围盒层次 276
4.3.1 BVH 构建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
4.3.2 表面积启发法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
4.3.3 线性包围盒层次 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
4.3.4 为遍历而压实的 BVH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
4.3.5 遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
4.4 kd 树加速器 303
4.4.1 树状表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
4.4.2 树的构建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
4.4.3 遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
4.5 扩展阅读 319
4.5.1 网格 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
4.5.2 包围盒层次 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
4.5.3 kd 树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
4.5.4 表面积启发法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
4.5.5 加速结构的其他话题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
4.6 习题 324
III 成像过程
5 颜色和辐射度学 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
5.1 光谱表示 329
5.1.1 光谱类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
5.1.2 系数光谱实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
5.2 类 SampledSpectrum 333
5.2.1 XYZ 颜色 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
5.2.2 RGB 颜色 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
5.3 RGBSpectrum 的实现 347
5.4 辐射度学 349
5.4.1 基本量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
5.4.2 入射与出射辐亮度函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
5.4.3 光亮度与光度学 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
5.5 处理辐射积分 357
5.5.1 投影立体角上的积分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
5.5.2 球坐标上的积分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
5.5.3 面积上的积分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
5.6 表面反射 361
5.6.1 BRDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
5.6.2 BSSRDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
5.7 扩展阅读 365
5.8 习题 366
5.9 译者补充:辐射度学、光度学与色度学 366
5.9.1 辐射度量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
5.9.2 光度学 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
5.9.3 色度学 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
6 相机模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
6.1 相机模型 384
6.1.1 相机坐标空间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
6.2 投影相机模型 386
6.2.1 正交相机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
6.2.2 透视相机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
6.2.3 薄透镜模型与景深 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
6.3 环境相机 402
6.4 逼真相机 404
6.4.1 透镜系统表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
6.4.2 追踪穿过透镜的光线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
6.4.3 厚透镜近似 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
6.4.4 对焦 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
6.4.5 出射瞳 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
6.4.6 生成光线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
6.4.7 相机测量方程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
6.5 扩展阅读 423
6.6 习题 424
6.7 译者补充:几何光学 425
6.7.1 光学背景知识 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
6.7.2 透镜 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
6.7.3 光圈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
7 采样与重构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
7.1 采样接口 447
7.1.1 基本采样器接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
7.2 分层采样 448
7.3 Halton 采样器 448
7.3.1 Hammersley 和 Halton 序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
7.4 图像重构 449
7.4.1 滤波器函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
7.5 㬵片与成像管道 449
7.5.1 㬵片类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
7.5.2 为㬵片提供像素值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
7.5.3 图像输出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
IV 光的散射
8 反射模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
8.1 基本接口 455
8.2 镜面反射与透射 456
8.2.1 菲涅尔反射率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
8.2.2 镜面反射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
8.2.3 镜面透射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
9 材质 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
9.1 BSDF 457
9.1.1 BSDF 内存管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
9.2 材质接口与实现 458
9.2.1 哑光材料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
10 纹理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
10.1 采样与抗锯齿 461
10.1.1 寻找纹理采样率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
10.1.2 镜面反射和透射的射线差分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
10.2 纹理坐标生成 461
10.3 纹理接口与基本纹理 462
10.4 图像纹理 462
10.4.1 MIP 映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
11 体积散射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
11.1 介质 463
11.1.1 介质交互 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
11.2 BSSRDF 463
12 光源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
12.1 光的发射 465
12.1.1 标准光源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
12.2 光源接口 465
12.2.1 可见性测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
12.3 面光源 466
12.4 无限面光源 467
V 光传输算法
13 蒙特卡洛积分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
13.1 蒙特卡洛估计器 471
13.2 2D 采样的多维变换 471
13.2.1 采样单位圆盘 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
13.2.2 采样相机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
14 光传输 I:表面反射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
14.1 采样反射函数 473
14.1.1 采样 BSDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
14.2 光传输方程 473
15 光传输 II:体积渲染 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
15.1 转移方程 475
15.2 使用扩散方程的次表面散射 475
16 光传输 III:双向方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
16.1 路径-空间测量方程 477
16.1.1 采样相机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
16.1.2 非对称散射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
16.2 随机渐进光子映射 477
VI 回顾与未来
17 回顾与未来 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
17.1 设计回顾 481
17.1.1 只有三角形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
17.2 替代的硬件架构 481
17.2.1 包追踪 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
VII 附录
A 实用工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
A.1 主要包含文件 485
A.1.1 实用函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
A.1.2 伪随机数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
A.2 图像文件输入与输出 487
A.3 用户交互 487
A.3.1 报错 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
A.4 内存管理 488
A.4.1 可变堆栈分配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
A.4.2 基于 Arena 的分配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
A.5 数学例程 489
A.5.1 求解二次方程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
A.5.2 2×2 线性系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
A.5.3 4×4 矩阵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
A.6 并行化 490
A.6.1 内存连续模型与性能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
A.6.2 原子操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
A.6.3 原子浮点值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
A.6.4 并行的 for 循环 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
B 场景描述接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
B.1 初始化和渲染选项 493
B.1.1 变换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
B.1.2 选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
B.2 场景定义 494
B.2.1 形状 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
B.2.2 物体实例化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
B.2.3 世界端和渲染 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
B.3 添加新对象的实现 494
参考文献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
索引 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525

实例下载地址

基于物理的渲染-从理论到实现

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警