清华科技大讲堂 从“1”开始3D编程
作者: 徐星 编著
出版时间:2020年版
丛编项: 清华科技大讲堂
内容简介
本书推导解释了3D世界的1的具体含义,包括3D编程最常使用的5个坐标1的意义。对于透视投影的3D坐标1,推导了用户使用的透视投影变换。原创性地提出了一个透视投影的一般模型。基于这个一般模型做了一些数学算法上的改进,得到了基于透视除法的透视投影。此外,也分析了模型视图变换,窗口变换,纹理映射等对3D世界的1的影响。对于正交投影,则分析了基于正交投影的Skia的顶点坐标,纹理坐标特点,一些高级的3D编程概念如光线追踪,延迟渲染,阴影纹理等。
目录
目录
第1章3D程序分析方法
1.1输入顶点数据
1.1.1描述顶点
1.1.2传递顶点
1.1.3绑定顶点缓冲区
1.2输入MVP数据
1.3输入纹理
1.3.1创建并传递纹理
1.3.2绑定纹理
1.4输出帧缓冲
1.5数据处理过程
1.6TensorFlow JS的输入输出
1.7Vulkan的输入输出
1.8GL和Vulkan的线程模型
1.9源码下载和编译
小结
第2章3D图形学基础
2.1符号和约定
2.2向量的基本运算
2.3齐次坐标
2.3.14×4齐次矩阵
2.3.2平行线相交
2.4顶点、三角形、片元
2.5光栅化原语
2.6视景体
2.7光照模型
小结
第3章透视投影
3.1左右手坐标系
3.23D坐标和坐标系
3.33D流水线
3.4小孔成像
3.5模型变换和世界变换的意义
3.6透视投影的几何模型
3.6.1眼睛坐标到投影坐标
3.6.2投影坐标到NDC坐标——xy分量
3.6.3眼睛坐标到NDC坐标——xy分量
3.6.4眼睛坐标到NDC坐标——z分量
3.6.5裁剪
3.6.6透视投影的几何模型
3.6.7几何模型的算法分析
3.7透视投影的透视除法模型
3.7.1眼睛坐标到裁剪坐标——xy分量
3.7.2眼睛坐标到NDC坐标——zw分量
3.7.3透视除法
3.7.4裁剪
3.7.5FOV表示透视投影矩阵
3.7.6真实深度
小结
第4章视图变换和眼睛坐标系
4.1平移
4.2旋转
4.3视图变换矩阵
4.4示例
小结
第5章正交投影
5.1坐标系和坐标变换
5.2正交投影变换
小结
第6章视口变换
6.1NDC到窗口的变换
6.2NDC到[0, 1]的变换
小结
第7章3D顶点——3D世界的1
7.1眼睛坐标
7.2正交投影
7.3透视投影
小结
第8章纹理坐标
8.1像素和多重采样
8.2三角形插值
8.2.1最近距离法
8.2.2加权距离法
8.2.3重心坐标法
8.3纹理映射和纹理坐标
8.3.1环绕模式
8.3.2非全窗口输出
8.3.3全窗口输出: NDC顶点坐标1,uv小于1
8.3.4全窗口输出: NDC顶点坐标1,uv大于1
8.3.5非归一化的纹理坐标
8.4点原语及其纹理坐标
8.5网格和纹理映射
8.5.1Blender介绍
8.5.2平面纹理映射
8.5.3球体纹理映射
小结
第9章VR枕形畸变
9.1理想薄凸透镜的放大率
9.2厚凸透镜的畸变
9.2.1厚凸透镜的基点和焦距公式
9.2.2厚凸透镜的畸变
9.2.3厚凸透镜放大率的泰勒级数
9.3畸变校正
9.3.1像差畸变校正
9.3.2像比例畸变校正
小结
第10章一种特殊的全窗口显示的方法
10.1三个顶点实现全窗口显示
10.20顶点实现全窗口显示
小结
第11章光线追踪
11.1正向追踪和逆向追踪
11.2光线追踪过程
11.3射线生成
11.4FOV、像的大小、占屏比
11.5光线追踪实现远小近大
11.6光线追踪平面
11.6.1射线和平面的关系
11.6.2射线和平面相交的实现
11.6.3Skybox
11.7光线追踪三角形
11.7.1射线和三角形的相交
11.7.2光线追踪三角形实现
11.8光线追踪球
11.8.1射线和球的相交
11.8.2光照计算
11.8.3光线追踪的1
11.9光线追踪的阴影实现
11.10光线追踪和光栅化对比
11.11示例
小结
第12章透视投影的其他应用
12.1双摄像头立体成像
12.2延迟渲染
12.2.1深度测试剔除所有被遮挡的点
12.2.2示例
12.3阴影
12.3.1生成最近深度纹理
12.3.2使用深度纹理
12.3.3示例
小结
第13章Skia
13.1Skia基础
13.1.1常用接口
13.1.2Skia矩阵
13.1.3测试方法
13.2Skia物体坐标和世界坐标
13.2.1物体坐标
13.2.2模型变换
13.3Skia纹理坐标
13.3.1顶点坐标不包含模型变换
13.3.2顶点坐标包含模型变换
13.4Skia正交投影
13.4.1正交投影
13.4.2窗口映射
13.4.3窗口映射对原点的影响
13.5Skia图像边缘检测
13.5.1Sobel算子
13.5.2实现边缘检测
小结
第14章一种通用的GPU多进程、多线程框架
14.1资源
14.2纹理Mailbox扩展
14.3同步Sync标记扩展
14.4资源的生命周期
14.4.1显示客户端生产资源
14.4.2显示客户端到显示合成器的IPC
14.4.3显示合成器使用资源
14.4.4删除资源
小结
参考文献