第l部分自然效果
简介
第1章用物理模型进行高效的水模拟
1.1目标和范围
1.2正弦近似值的加和
1.2.1波的选择
1.2.2法线和切线
1.2.3)L何波
1.2.4纹理波
1.3编辑
1.3.1深度的使用
1.3.2重载
1.3.3边长的过滤
l.3.4纹理坐标
1.4运行时的处理
1.4.1凹凸环境映射参数
1.4.2顶点和像素的处理
1.5小结
1.6参考文献
第2章水刻蚀的渲染
2.1引言
2.2刻蚀的计算
2.3方法
2.4使用OpenGL实现
2.5使用高级着色语言实现
2.6小结
2.7参考文献
第3章Dawn演示中的皮肤
3.1引言
3.2皮肤着色
3.3场景的照明
3.3.1高动态范围的环境
3.3.2遮挡
3.4皮肤如何对光进行响应
3.5实现
3.5.1顶点Shader
3.5.2像素Shader
3.6小结
3.7参考文献
第4章Dawn演示中的动画
4.1髑食
4.2网格的动画
4.3变形网格对象
4.3.1高级语言中的变形网格对象
4.3.2变形网格对象的实现
4.4蒙皮
4.5小结
4.6参考文献
第5章改良的Perlin噪声的实现
5.1噪声函数
5.2最初的实现
5.3最初实现的缺点
5.4对噪声函数的改进
5.5如何在像素shader中产生好的假噪声
5.6不考虑相邻顶点制作凹凸贴图
5.7小结
5.8参考文献
第6章Vulcan演示中的火
6.1创建逼真的火焰
6.2动画精灵的实现
6.2.1火焰和烟的动画
6.2.2使火焰增加多样性
6.2.3动画的存储
6.2.4火焰和烟的混合
6.3粒子运动
6.4性能
6.4.1层次合成
6.4.2 定制的精灵
6.5渲染后的效果
6.5.1辉光
6.5.2热微光
6.5.3粒
6.5.4最终的程序
6.6小结
第7章无数波动草叶的渲染
7.1引言
7.2概述
7.3草体的准备
7.3.1草的纹理
7.3.2草体
7.4动画
7.4.1一般思路
7.4.2每丛草体的动画
7.4.3每个顶点的动画
7.4.4每个草体的动画
7.5小结
7.6参考文献
第8章衍射的模拟
8.1什么是衍射
8.1.1波动光学
8.1.2衍射的物理学
8.2实现
8.3结果
8.4小结
8.5参考文献
第2部分光照和阴影
简介
第9章有效的阴影体渲染
9.1引言
9.2程序结构
9.2.1多遍渲染
9.2.2顶点缓冲器结构
9.2.3在无限远处工作
9.3详细的讨论
9.3.1数学
9.3.2代码
9.3.3markShadows方法
9.3.4findBackfaces方法
9.3.5亮罩和暗罩
9.3.6侧面
9.4调试
9.5几何优化
9.5.1方向光
9.5.2点光源和聚光灯
9.5.3剔除阴影体
9.5.4除罩操作
9.6填充率的优化
9.6.1有限的体积
9.6.2XY裁剪
9.6.3Z-边界
9.7将来的阴影
9.8参考文献
第10章电影级的光照
10.1引言
10.2直射光照明模型
10.2.1选择
10.2.2颜色
10.2.3造型
10.2.4阴影
10.2.5纹理
10.2.6结果
10.3泛光Shade r
10.4性能分析
10.4.1速度
10.4.2开销
10.4.3优化
10.5小结
10.6参考文献
第11章阴影贴图反走样
11.1引言
11.2靠近的百分比过滤
11.3平滑滤波的实现
11.4较少地取样
11.5T作原理
11.6小结
11.7参考文献
第12章全方位的阴影映射
12.1引言
12.1.1模板阴影
12.1.2N影映射
12.2阴影映射的算法
12.2.1条件
12.2.2算法
12.2.3纹理格式
12.2.4阴影贴图的尺寸
12.2.5几何体的数值范围
12.3实现
12.3.1系统需求
12.3.2资源创建
12.3.3渲染阶段l:渲染到阴影贴图
12.3.4渲染阶段2:基本渲染
12.3.5光照计算
12.3.6阴影的计算
12.3.7技巧和窍门
12.3.8最终的着色遍(LightingxShadow)
12.4添加模糊的阴影
12.5小结
12.6参考文献
第13章使用遮挡区间映射产生模糊的阴影
13.1加油站
13.2算法
13.3创建映射
13.4渲染
13.5局限性
13.6小结
13.7参考文献
第14章透视阴影贴图
14.1引言
14.2PSM算法的问题
14.2.1虚拟摄像机
14.2.2光源摄像机
14.2.3偏置
14.3获得更好阴影映射的技巧
14.3.I过滤器
14.3.2模糊
14.4结果
14.5参考文献
第15章逐像素光照的可见性管理
15.1GPU书中的可见性
15.2批和逐像素光照
15.2.1逐像素光照的例子
15.2.2究竟需要多少j比
15.3作为集合的可见性
15.3.1可见集合
15.3.2光源集合
15.3.3照明集合
15.3.4阴影集合
15.4各集合的生成
15.4.1可见集合的生成
15.4.2光源集合的生成
15.4.3照明集合的生成
15.4.4阴影集合的生成
15.5可见性改善填充率
15.6实际的应用
15.7小结
15.8参考文献
第3部分材质
简介
第16章次表面散射的实时近似
16.1次表面散射的视觉效果
16.2简单的散射近似
16.3用深度映射模拟吸收
16.3.1实现细节
l6.3.2更精密的散射模型
16.4纹理空间的漫反散
16.5小结
16.6参考文献
第17章环境遮挡.
第18章空间的BRDFs
18.1什么是SBRDF
18.2表达式的详述
18.3使用离散光的渲染
18.4使用环境贴图的渲染
18.4.1算法.
18.4.2shader代码
18.5小结
18.6参考文献
第19章基于图像的光照
19.1基于图像光照的局部化
l9.2]页点Shader
19.3片元Shader
19.4漫反射IBL
19.5影子
19.6使用局部立方体贴图作背景
19.7小结
19.8参考文献
第20章纹理爆炸
20.1纹理爆炸
20.1.1求单元
20.1.2对图像采样
20.1.3相邻单元中的图像
20.1.4图像优先级
20.1.5程序化图像
20.1.6图像的随机选择
20.2技术上的考虑
20.3高级特性
20.3.1缩放和转动
20.3.2可控的变量密度
20.3.3程序化的3D爆炸
20.3.4随时间变化的纹理
20.3.5Voronoi相关的细胞法
20.4小结
20.5参考文献
第4部分图像处理
简介
第2l章实时辉光
21.1技术概述
21.2渲染辉光的步骤
21.2.1辉光源的指定和渲染
21.2.2模糊辉光源
21.2.3分步卷积
21.2.4GPU上的卷积
2l.3特定硬件的实现
21.3.1Direct3D9
21.3.2Direct3D8
21.3.3Direct3D7
21.4模糊的其他用途
21.5把效果加入一个游戏引擎
21.5.1渲染场景
21.5.2走样问题
21.5.3DirectX7的精度问题
21.5.4残留图像效应
21.5.5渐变效果
21.6小结
21.7参考文献
第22章颜色控制
22.1引言
22.2基于通道的颜色校正
22.2.1 级别
22.2.2曲线
22.3多通道的彩色校正和变换
22.3.1灰度变换
22.3.2彩色空间的变换
22.4参考文献
第23章景深:技术综述
23.1什么是景深
23.1.1模糊圈的计算
23.1.2主要技术
23.2光线跟踪的景深
23.3累积缓冲区的景深
23.4分层的景深
23.5向前映射的z缓冲区景深
23.6反向映射的z缓冲区景深
23.7小结
23.8参考文献
第24章高质量的过滤
24.1质量与速度
24.2对GPU求导的理解
24.3解析的反走样和纹理化
24.4小结
24.5参考文献
第25章用纹理贴图进行快速过滤宽度的计算
25.1在shader中求导的需求
25.2用纹理计算过滤宽度
25.3讨论
25.4参考文献
第26章openEXR图像文件格式
26.1什么是OpenEXR
26.1.1高动态范围图像
26.1.2“半精度”(Half)格式
26.1.3可表示的数值范围
26.1.4彩色分辨率
26.1.5C++接口
26.2OpenEXR文件结构
26.2.1文件头
26.2.2像素
26.3OpenEXR数据压缩
26.4OpenEXR的使用
26.4.1OpenEXR图像的读和显示
26.4.2一个OpenEXR图像的渲染和写入
26.5线性像素值
26.6创建和使用HDR图像
26.7小结
26.8参考文献
第27章图像处理的框架
27.1引言
27.2框架设计
27.2.1操作器和过滤器
27.2.2图像数据
27.2.3丢失的块
27.3实现
27.3.1Image类
27.3.2lmageFilter类
27.3.3过滤的实现
27.4一个示例应用程序
27.5性能和局限性
27.6小结
27.7参考文献
第5部分性能及实践
简介
第28章图形流水线性能
28.1概述
28.1.1流水线
28.1.2方法
28.2定位瓶颈
28.2.1光栅操作
28.2.2纹理带宽
28.2.3片元着色
28.2.4顶点处理
28.2.5顶点和索引传输
28.3优化
28.3.1在CPU上优化
28.3.2减少顶点传输的开销
28.3.3顶点处理的优化
28.3.4加速片元着色
28.3.5减小纹理带宽
28.3.6优化帧缓冲带宽
28.4小结
28.5参考文献
第29章有效的遮挡剔除
29.1什么是遮挡剔除
29.1.1遮挡查询
29.1.2早期z值拒绝
29.2遮挡查询如何工作
29.3初步使用遮挡查询
29.3.1恰当地使用遮挡查询
29.3.2遮挡物和被遮挡物的比较
29.4更进一步的应用
29.4.1将物体排序
29.4.2一个防止误解的说明
29.5关于包围盒
29.5.1静态的物体
29.5.2动画的物体
29.6其他问题
29.6.1CPU消耗太高
29.6.2高分辨率的渲染
29.6.3快速深度写入的性能
29.6.4锥体剔除
29.7一点小忠告
29.8一个应用:透镜耀斑
29.8.1渲染透镜耀斑的旧方法
29.8.2渲染透镜耀斑的新方法
29.9小结
29.10参考文献
第30章FXComposer的设计
30.1工具的开发
30.2设计初衷和使用对象”
30.3对象设计
30.4文件格式
30.5用户接口
30.6Direct3D图形的实现
30.6.1设备窗口
30.6.2Direct3D效果
30.6.3ID3DXEfiectC0mpiler
30.6.4ID3DXEffect
30.7场景管理
30.8小结
30.9参考文献
第3l章FXComposer的使用
31.1开始
31.1.1材质面板
31.1.2场景图形面板
31.1.3编辑窗口
31.1.4ShaderPerf面板
31.1.5属性面板
31.1.6场景面板
31.1.7纹理面板
31.1.8任务面板
31.1.9日志面板
31.2项目示例
31.3小结
第32章Shader接口入门
32.1shader接口的基础
32.2一个灵活的光源描述
32.3材质树
32.4小结
32.5参考文献
第33章将产品的RenderManshader转化为实时的shader
33.1引言
33.2光照
33.2.1光源
33.2.2光源shader
33.2.3其他的光源参数
33.3顶点程序与片元程序的比较
33.4使用顶点和片元程序
33.5片元程序的优化技术
33.5.1把代码转移到应用层
33.5.2把代码转移到顶点程序
33.5.3通过纹理查询优化
33.5.4向量化的优化
33.5.5最终的优化
33.6小结
33.7参考文献
第34章将硬件着色整合进Cinema4D
34.1引言
34.2把Cinema4D连接到CgFX上去
34.3shader和参数管理
34.4模拟离线渲染
34.5结果和性能
34.6收获和教训
34.7参考文献
第35章在实时应用程序中使用高质软件渲染效果
35.1引言
35.2用于硬件渲染的内容流水线
35.3硬件渲染的组件
35.3.1几何数据
35.3.2属性映射
35.4组件的产生
35.4.创建几何图形
35.4.2对纹理和顶点的渲染
第36章将Shader整合到应用程序中去
36.1引言
36.2关于shader
36.3一个effect文件的剖析
36.3.1变量
36.3.2结构体
36.3.3pass
36.3.4technique
36.3.5评注
36.4shader数据的类型
36.4.1场景信息
36.4.2材质
36.4.3渲染的场景
36.4.4顶点数据
36.5与shader的通信
36.5.1场景信息
36.5.2材质的参数
36.5.3顶点格式
36.5.4场景
36.5.5就场景对technique和pass的比较
36.6effect文件格式的扩展
36.6.1对预处理程序的支持
36.6.2对shader变化的支持
36.6.3shader继承的添加
36.7小结
36.8参考文献
第6部分超越三角形
简介
第37章用于GPU计算的工具箱
37.1用GPU进行计算
37.1.1编程模型
37.1.2并行编程
37.1.3高级的GPU程序
37.2约减
37.2.1并行的约减
37.2.2有关约减的注意事项
37.3排序和搜索
37.3.1Bitonic归并排序
37.3.2二分搜索
37.4挑战
37.4.1有限的输出
37.4.2缓慢的回读
37.4.3GPU和CPU的比较
37.5小结
37.6参考文献
第38章在GPU上的快速流体动力学模拟
38.1引言
38.1.1目的
38.1.2假设
38.1.3方法
38.2数学背景
38.2.1不可压缩流体的Navier.Stokes方程式
38.2.2Navier.Stokes方程式的各项
38.2.3矢量微积分的简要复习
38.2.4解Navier.Stokes方程式
38.3实现
38.3.1CPU.GPU的类比
38.3.2片运算
38.3.3片元程序的实现
38.4应用
38.4.1模拟液体和气体
38.4.2浮力和对流
38.5扩展
38.5.1旋涡状态的限制
38.5.2三维
38.5.3交错排列的网格
38.5.4任意边界
38.5.5流体的自由表面
38.6小结
38.7参考文献
第39章体渲染技术
39.1引言
39.2体渲染
39.3基于纹理的体渲染
39.4实现细节
39.4.1数据的表达和处理
39.4.2代理几何体
39.4.3渲染
39.5高级技术
39.5.1体光照
39.5.2程序化渲染
39.6对性能的考虑
39.7小结
39.8参考文献
第40章用于三维超声波可视化的实时着色
40.1背景
40.2引言
40.2.1笛卡尔网格数据的体渲染
40.2.2体渲染锥体网格中的数据
40.3结果
40.4小结
40.5参考文献
第4l章实时立体图
41.1什么是立体图
41.1.1立体摄影
41.1.2随机点立体图
41.1.3单个图像的立体图
41.2单个图像立体图的创建
41.2.1参数
41.2.2渲染
41.2.3动画的单个图像立体图的创建
41.2.4片元程序
41.3示例应用程序
41.4.参考文献
第42章变形
42.1什么是变形
42.2在GPU上的变形
42.2.1变形的公式
42.2.2写顶点程序
42.2.3法线的变形
42.3局限性
42.4性能
42.5例子:波浪变形
42.6小结