物理渲染从理论到实现(第2版)

作者:[美]Matt Pharr,Greg Humpherys

出版社: 清华大学出版社

出版时间: 2017-1

定价: 139.00

页数: 892

ISBN: 9787302449812

内容简介

    编辑推荐:

    本书曾获得软件界Jolt图书类大奖,在计算机图形学界鼎鼎大名!同时也是一本重量级巨著!

    内容简介:

    本书详细阐述了与物理渲染相关的高效解决方案,主要包括几何形状和转换,图元和相交加速计算,颜色和辐射度,相机模型,采样和重构,反射模型,材质、纹理、体散射、光源、蒙特卡罗积分、光线传输等内容。此外,本书还提供了相应的算法、代码以及伪代码,以帮助读者进一步理解相关方案的实现过程。

    本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考 手册。

目录

        第1章  概述	1
        1.1  文学编程	1
        1.2  照片级渲染和光线跟踪算法	3
        1.2.1  相机	4
        1.2.2  光线-对象相交	5
        1.2.3  光照分布	6
        1.2.4  可见性	7
        1.2.5  表面散射	7
        1.2.6  递归光线跟踪	8
        1.2.7  光线传播	9
        1.3  pbrt系统概述	11
        1.3.1  执行阶段	14
        1.3.2  场景表达	15
        1.3.3  渲染器接口与SamplerRenderer	17
        1.3.4  主渲染循环	19
        1.3.5  pbrt的并行机制	27
        1.3.6  WHITTED光线跟踪积分器	31
        1.4  如何阅读本书	35
        1.5  使用并理解程序代码	36
        1.5.1  指针或引用	36
        1.5.2  代码优化	36
        1.5.3  本书网站	37
        1.5.4  系统扩展	37
        1.5.5  Bug	37
        1.6  进一步阅读	38
        1.7  本章练习	39
        第2章  几何形状和转换	40
        2.1  坐标系	40
        2.2  向量	41
        2.2.1  运算	42
        2.2.2  缩放操作	43
        2.2.3  点积和叉积计算	44
        2.2.4  标准化计算	46
        2.2.5  基于向量的坐标系	46
        2.3  点	47
        2.4  法线	49
        2.5  射线	50
        2.6  三维包围盒	53
        2.7  转换操作	56
        2.7.1  齐次坐标	57
        2.7.2  基本操作	58
        2.7.3  平移	59
        2.7.4  缩放操作	61
        2.7.5  x,y,z轴旋转	62
        2.7.6  围绕任意轴的旋转行为	63
        2.7.7  视见转换	65
        2.8  转换应用	66
        2.8.1  点	67
        2.8.2  向量	67
        2.8.3  法线	68
        2.8.4  射线	68
        2.8.5  包围盒	69
        2.8.6  复合转换	69
        2.8.7  转换和坐标系的左右手规则	70
        2.9  动画转换	70
        2.9.1  四元数	72
        2.9.2  四元数插值	74
        2.9.3  AnimatedTransform实现	75
        2.10  微分几何	79
        2.11  进一步阅读	82
        2.12  本章练习	83
        第3章  几何形状	84
        3.1  基本的Shape接口	84
        3.1.1  包围机制	85
        3.1.2  细化操作	86
        3.1.3  相交行为	87
        3.1.4  避免自相交行为	88
        3.1.5  几何体着色	88
        3.1.6  表面积	89
        3.1.7  多面性	89
        3.2  球体	89
        3.2.1  构建过程	91
        3.2.2  包围体	91
        3.2.3  相交	92
        3.2.4  局部球体	94
        *3.2.5  法线向量的偏导数	96
        3.2.6  DifferentialGeometry的初始化操作	97
        3.2.7  表面积	98
        3.3  圆柱体	99
        3.3.1  圆柱体的构造过程	99
        3.3.2  圆柱体的包围机制	101
        3.3.3  圆柱体的相交计算	101
        3.3.4  局部圆柱体	102
        3.3.5  圆柱体的表面积	103
        3.4  圆盘	103
        3.4.1  圆盘的构建过程	104
        3.4.2  圆盘的包围机制	105
        3.4.3  圆盘的相交计算	105
        3.4.4  圆盘的表面积	106
        3.5  其他二次表面	107
        3.5.1  圆锥体	107
        3.5.2  抛物面	108
        3.5.3  双曲面	108
        3.6  三角形和网格	109
        3.6.1  三角形	112
        3.6.2  三角形相交计算	113
        3.6.3  网格表面积	117
        3.6.4  着色几何体	118
        *3.7  表面细分	120
        3.7.1  网格表达方式	122
        3.7.2  网格边界	130
        3.7.3  网格细分	130
        3.7.4  计算新的顶点位置	132
        3.7.5  更新网格拓扑结构	137
        3.7.6  极限表面和输出结果	139
        3.8  进一步阅读	142
        3.9  本章练习	143
        第4章  图元和相交加速计算	148
        4.1  图元接口和几何图元	148
        4.1.1  几何图元	151
        4.1.2  TransformedPrimitive:对象实例和动画图元	152
        4.2  集合体	155
        4.3  网格加速结构	158
        4.3.1  构建过程	159
        4.3.2  遍历操作	164
        4.4  包围体层次结构	169
        4.4.1  BVH构建过程	170
        4.4.2  启发式表面积计算	176
        4.4.3  遍历过程中的紧凑BVH	180
        4.4.4  遍历	182
        4.5  kd树加速结构	185
        4.5.1  树形结构的表达方式	186
        4.5.2  树形结构的构造方式	188
        4.5.3  遍历操作	196
        4.6  调试聚合体	200
        4.6.1  寻找聚合体中的bug	201
        4.6.2  修复几何体中的bug	204
        4.6.3  聚合体性能问题	204
        4.7  进一步阅读	205
        4.7.1  网格	205
        4.7.2  包围体层次结构	205
        4.7.3  kd树	207
        4.7.4  启发式表面积方案	207
        4.7.5  其他加速结构	208
        4.8  本章练习	209
        第5章  颜色和辐射度	212
        5.1  光谱表达方式	212
        5.1.1  Spectrum类型	213
        5.1.2  CoefficientSpectrum实现	214
        5.2  SampledSpectrum类	216
        5.2.1  XYZ颜色	219
        5.2.2  RGB颜色	222
        5.3  RGBSpectrum实现	227
        5.4  辐射度测量学的基本知识	229
        5.4.1  基本量值	230
        5.4.2  入射和出射辐射度函数	233
        5.4.3  亮度和光度测定	233
        5.5  与辐射积分协同工作	234
        5.5.1  投影立体角的积分运算	235
        5.5.2  球体坐标的积分运算	235
        5.5.3  面积积分运算	237
        5.6  表面反射	239
        5.6.1  BRDF	239
        5.6.2  BSSRDF	240
        5.7  进一步阅读	241
        5.8  本章练习	242
        第6章  相机模型	243
        6.1  相机模型概述	243
        6.2  投影相机模型	246
        6.2.1  正交相机	247
        6.2.2  透视相机	250
        6.2.3  景深	253
        6.3  环境相机	257
        6.4  进一步阅读	258
        6.5  本章练习	259
        第7章  采样和重构	260
        7.1  采样理论	260
        7.1.1  频率范围和傅里叶变换	261
        7.1.2  理想采样状态和重构	263
        7.1.3  锯齿	266
        7.1.4  抗锯齿技术	267
        7.1.5  图像合成技术	269
        7.1.6  渲染中的锯齿来源	269
        7.1.7  理解像素数据	270
        7.2  图像采样接口	271
        7.3  分层采样	277
        7.4  低偏差采样	287
        *7.4.1  偏差定义	288
        7.4.2  HAMMERSLEY和HALTON序列	289
        7.4.3  [0,2]序列	295
        7.4.4  低偏差采样器	298
        *7.5  最佳候选采样模式	303
        7.6  自适应采样	309
        7.7  图像重构	314
        7.8  Film类和成像管线	323
        7.8.1  Film接口	323
        7.8.2  ImageFilm类	325
        7.9  进一步阅读	333
        7.10  本章练习	336
        第8章  反射模型	339
        8.1  基本接口	342
        8.1.1  反射率	344
        8.1.2  BRDF→BTDF适配器	345
        8.1.3  BxDF缩放适配器	345
        8.2  镜面反射和透射	346
        8.2.1  菲涅耳反射率	347
        8.2.2  镜面反射	351
        8.2.3  镜面透射	354
        8.3  Lambertian反射	358
        8.4  微面元模型	358
        8.4.1  Oren-Nayar漫反射	360
        8.4.2  Torrance-Sparrow模型	361
        8.4.3  Blinn微面元分布	364
        8.4.4  各项异性微面元模型	366
        8.5  菲涅耳入射效果	368
        8.6  测算BRDF	370
        8.6.1  不规则的各向同性测算BRDF	371
        8.6.2  规则半角格式	374
        8.7  进一步阅读	376
        8.8  本章练习	378
        第9章  材质	380
        9.1  BSDF	380
        9.2  Material接口和实现	385
        9.2.1  MatteMaterial类	386
        9.2.2  PlasticMaterial类	387
        9.2.3  混合材质	389
        9.2.4  测算材质	390
        9.2.5  其他材质	391
        9.3  凹凸贴图	392
        9.4  进一步阅读	396
        9.5  本章练习	397
        第10章  纹理	399
        10.1  采样和抗锯齿操作	400
        10.1.1  计算纹理采样率	400
        10.1.2  滤波纹理函数	404
        *10.1.3  镜面反射和透射的光线微分	405
        10.2  纹理坐标生成	408
        10.2.1  2D(u,v)映射	409
        10.2.2  球体映射	410
        10.2.3  圆柱体映射	411
        10.2.4  平面映射	412
        10.2.5  3D映射	413
        10.3  纹理接口和基本纹理	413
        10.3.1  固定纹理	414
        10.3.2  混合纹理	415
        10.3.3  线性插值	416
        10.4  图像纹理	417
        10.4.1  纹理缓存	418
        10.4.2  纹理链	421
        10.4.3  各向同性三角形滤波器	428
        *10.4.4  椭圆加权平均值	430
        10.5  体纹理和过程纹理	435
        10.5.1  UV纹理	436
        10.5.2  棋盘纹理	436
        10.5.3  体棋盘纹理	441
        10.6  噪声	442
        10.6.1  Perlin噪声	443
        10.6.2  随机波尔卡圆斑	446
        10.6.3  频谱合成	448
        10.6.4  凹凸和褶皱纹理	451
        10.6.5  风力波形	452
        10.6.6  大理石纹理	453
        10.7  进一步阅读	454
        10.8  本章练习	456
        第11章  体散射	459
        11.1  体散射处理过程	459
        11.1.1  吸收过程	460
        11.1.2  放射过程	461
        11.1.3  外散射和衰减	462
        11.1.4  内散射	463
        11.2  相位函数	464
        11.3  体接口和均一介质	467
        11.4  密度变化的空间体	470
        11.4.1  3D网格	471
        11.4.2  指数密度	473
        11.5  体聚合	475
        11.6  BSSRDF类	476
        11.7  进一步阅读	478
        11.8  本章练习	479
        第12章  光源	481
        12.1  Light接口	481
        12.2  点光源	484
        12.2.1  聚光灯	486
        12.2.2  纹理投射光照	488
        12.2.3  测角光度图光照	491
        12.3  平行光照	494
        12.4  区域光照	495
        12.5  无穷远区域光源	499
        12.6  进一步阅读	501
        12.7  本章练习	503
        第13章  蒙特卡罗积分I:基本概念	504
        13.1  背景知识和概率回顾	505
        13.1.1  连续随机变量	505
        13.1.2  期望值和方差	506
        13.2  蒙特卡罗估算函数	507
        13.3  随机变量的基本采样	508
        13.3.1  反演法	509
        13.3.2  舍选法	514
        *13.4  METROPOLIS采样	516
        13.4.1  基本算法	516
        13.4.2  选取突变策略	517
        13.4.3  初始偏差	518
        13.4.4  基于Metropolis采样的积分	519
        13.4.5  示例:一维设置	519
        13.5  分布间的转换	522
        13.5.1  多维转换	523
        13.5.2  极坐标	523
        13.5.3  球体坐标	523
        13.6  包含多维转换的2D采样	524
        13.6.1  示例:半球均匀采样	524
        13.6.2  单位圆盘对象采样	526
        13.6.3  余弦加权半球采样	529
        13.6.4  示例:三角形采样	530
        13.6.5  示例:分段-常量2D分布	531
        13.7  进一步阅读	534
        13.8  本章练习	535
        第14章  蒙特卡罗积分II:效率改善	536
        14.1  俄罗斯轮盘赌和划分机制	537
        14.2  采样置放	538
        14.2.1  分层采样	538
        14.2.2  quasi蒙特卡罗技术	540
        14.2.3  采样翘曲和变形	541
        14.3  偏差	541
        14.4  重要性采样	542
        14.5  多重重要性采样机制	544
        14.6  采样反射函数	547
        14.6.1  Blinn微面元分布采样	548
        14.6.2  各向异性微面元模型的采样	551
        14.6.3  FresnelBlend采样	553
        14.6.4  镜面反射和透射	553
        14.6.5  应用:反射率估算	555
        14.6.6  BSDF采样	556
        14.7  光源采样	559
        14.7.1  基本接口	560
        14.7.2  包含奇点的光源	562
        14.7.3  区域光源	565
        14.7.4  ShapeSet采样	571
        14.7.5  无穷大区域光源	572
        *14.8  体散射	577
        14.8.1  相位函数采样	577
        14.8.2  计算光学厚度	578
        14.9  进一步阅读	579
        14.10  本章练习	580
        第15章  光线传输I:表面反射	583
        15.1  直接光照	584
        15.2  光线传输方程	592
        15.2.1  基本推导过程	593
        15.2.2  LTE的解析解	594
        15.2.3  LTE的表面形式	595
        15.2.4  路径积分	596
        15.2.5  被积函数中的delta分布	597
        15.2.6  划分被积函数	598
        15.2.7  测量方程和重要性	599
        15.3  路径跟踪	600
        15.3.1  概述	600
        15.3.2  路径采样	601
        15.3.3  递增式路径构造	603
        15.3.4  实现过程	603
        15.3.5  双向路径跟踪	607
        15.4  实时全局光照	608
        15.4.1  创建虚拟光源	611
        15.4.2  利用虚拟光源进行渲染	615
        15.5  辐射度缓存机制	619
        15.5.1  利用辐射度缓存进行渲染	622
        15.5.2  查找和插值	624
        15.5.3  添加新值	627
        15.6  粒子跟踪和光子贴图	629
        *15.6.1  粒子跟踪的理论基础	630
        15.6.2  光子积分器	632
        15.6.3  构造光子贴图	634
        15.6.4  使用光子贴图	645
        15.6.5  光子插值和密度估算	654
        *15.7  METROPOLIS光线传输算法	658
        15.7.1  采样表达方式	661
        15.7.2  突变行为	663
        15.7.3  生成路径	665
        15.7.4  路径影响作用	667
        15.7.5  MetropolisRenderer实现	674
        15.7.6  渲染操作	677
        15.8  进一步阅读	681
        15.9  本章练习	684
        *第16章  光线传输II:体渲染	688
        16.1  传输方程	688
        16.2  体积分器接口	690
        16.3  发射积分器	690
        16.4  单散射积分器	695
        16.5  子表面散射	697
        16.5.1  采样点的泊松分布	700
        16.5.2  构建采样点八叉树	707
        16.5.3  偶极漫反射近似计算	711
        16.5.4  基于层次结构积分的渲染行为	716
        16.5.5  设置散射属性	719
        16.6  进一步阅读	721
        16.7  本章练习	723
        *第17章  光线传输III:光线传输的预计算	727
        17.1  基础函数:理论	728
        17.1.1  分段式-常数基	729
        17.1.2  基上的投影	730
        17.1.3  正交基函数	731
        17.2  球谐函数	732
        17.2.1  高效计算	734
        17.2.2  光源投影	740
        17.2.3  投影入射辐射度函数	746
        17.2.4  减少环状效果	747
        17.2.5  旋转	748
        17.3  辐射度探测器	752
        17.3.1  创建辐射度探测器	753
        17.3.2  使用辐射度探测器	759
        17.4  漫反射传输预计算	763
        17.5  光泽传输预计算	766
        17.5.1  传输矩阵	768
        17.5.2  BSDF矩阵	769
        17.5.3  GlossyPRTIntegrator实现	771
        17.6  进一步阅读	774
        17.7  本章练习	775
        第18章  回顾和展望	777
        18.1  设计回顾	777
        18.1.1  抽象与效率	778
        18.1.2  其他设计方案:仅使用三角形	778
        18.1.3  提升场景复杂度	779
        18.2  吞吐量处理器	779
        18.2.1  未来发展状况	781
        18.2.2  参考资源	781
        18.3  总结	782
        附录A  实用工具	783
        A.1  主要包含的文件	783
        A.1.1  工具函数	783
        A.1.2  伪随机数	786
        A.2  图形文件的输入和输出	786
        A.3  与用户的通信	787
        A.3.1  错误报告	788
        A.3.2  进度报告	788
        A.3.3  简单的浮点文件读取器	789
        A.4  探测器和统计	789
        A.5  内存管理	791
        A.5.1  可变栈的分配	791
        A.5.2  引用计数对象	792
        A.5.3  以缓存友好方式使用内存	794
        A.5.4  Arena内存分配	796
        A.5.5  2D块数组	798
        A.6  数学计算例程	801
        A.6.1  2×2线性方程组	801
        A.6.2  4×4矩阵	801
        A.7  八叉树	802
        A.8  kd树	807
        A.9  并行机制	813
        A.9.1  内存一致性模型以及性能	813
        A.9.2  原子操作	814
        A.9.3  互斥体	817
        A.9.4  任务系统	818
        A.10  进一步阅读	820
        A.11  本章练习	821
        附录B  场景描述接口	822
        B.1  参数集	823
        B.1.1  ParamSetItem结构	824
        B.1.2  添加参数集	824
        B.1.3  在参数集查找数据值	825
        B.2  初始化和渲染选项	827
        B.2.1  状态跟踪	828
        B.2.2  转换操作	829
        B.2.3  选项	831
        B.3  场景描述	834
        B.3.1  层次图形状态	834
        B.3.2  纹理和材质参数	836
        B.3.3  表面和材质描述	837
        B.3.4  光源	839
        B.3.5  形状和体区域	840
        B.3.6  对象实例化操作	843
        B.3.7  场景结束与渲染操作	845
        B.4  添加新的对象实现	847
        B.5  进一步阅读	847
        B.6  本章练习	848
        参考文献	850
     · · · · · ·     (收起)

Copyright © 游戏人+ All Rights Reserved.