计算器图形学基础第四版读书笔记

1 介绍

2 数学基础

介绍了集合、一元二次方程、三角学、向量等知识

3 光栅图像

介绍了RGB图像的基础知识

4 光线追踪

基本光线追踪知识,包括透视投影和正交投影、光线和三角形求交、基本着色模型等。

5 线性代数

矩阵的基础知识以及奇异值分解。

6 变换矩阵

旋转、平移、缩放等矩阵。

快速求局部坐标系和全局坐标系互相转换矩阵的方法:

\textup{P}=\textup{e}+u_p\mathbf{u}+v_p\mathbf{v}+w_p\mathbf{w}

\begin{pmatrix} x_p\\ y_p\\ z_p\\ 1 \end{pmatrix}=\begin{pmatrix} 1 & 0 & 0 &x_e \\ 0&1 & 0& y_e\\ 0& 0 & 1 &z_e \\ 0& 0 & 0 &1 \end{pmatrix} \begin{pmatrix} x_u &x_v &x_w &0 \\ y_u&y_v &y_w &0 \\ z_u& z_v & z_w &0 \\ 0& 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} u_p\\ v_p\\ w_p\\ 1 \end{pmatrix}

\begin{pmatrix} u_p\\ v_p\\ w_p\\ 1 \end{pmatrix}= \begin{pmatrix} x_u &y_u & z_u &0 \\ x_v&y_v &z_v &0 \\ x_w& y_w & z_w &0 \\ 0& 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} 1 & 0 & 0 &-x_e \\ 0&1 & 0& -y_e\\ 0& 0 & 1 &-z_e \\ 0& 0 & 0 &1 \end{pmatrix} \begin{pmatrix} x_p\\ y_p\\ z_p\\ 1 \end{pmatrix}

7 观察矩阵

视口矩阵:从NDC空间到屏幕空间

投影矩阵:从相机空间到NDC空间

相机矩阵:从世界空间到相机空间

8 图形管线

找到图像中被一个几何基元占据的所有像素的过程称为光栅化。

对象顺序渲染也可以称为光栅化渲染。

从对象开始到更新图像中的像素结束所需的操作序列称为图形管线。

对象顺序渲染中需要完成的工作分为光栅化本身的任务、光栅化之前对几何图形执行的操作以及光栅化之后对像素执行的操作。

最常见的几何操作是应用矩阵变换,如将定义几何的点从对象空间映射到屏幕空间,以产生屏幕空间的像素坐标作为光栅化器的输入。

最常见的像素操作是隐藏表面去除,它将靠近观察者的表面安排在距观察者较远的表面前面。每个阶段还可以包括许多其他操作,从而使用相同的通用过程实现各种不同的渲染效果。

几何对象从应用程序中输入图形管线后以顶点集描述。顶点在顶点处理阶段进行操作,然后使用这些顶点的图元被发送到光栅化阶段。光栅化器将每个图元分解为多个片段,一个片段对应于图元覆盖的一个像素。在片段处理阶段对片段进行处理,然后在片段混合阶段将每个像素对应的各个片段进行组合。

线光栅化:中点算法

三角形光栅化:重心坐标

裁剪:世界空间或齐次坐标空间

2D渲染:顶点或片段阶段不执行任何操作,混合阶段每个片段的颜色直接覆盖前一个片段的值。应用程序直接以像素坐标提供图元,光栅化器完成所有工作。

3D渲染:顶点处理阶段将传入的顶点位置乘以模型、相机、投影和视口矩阵的乘积,从而生成屏幕空间三角形,然后以与直接在 2D 中指定的方式相同的方式绘制这些三角形。

剔除方法:视锥剔除、遮挡剔除、背面剔除

9 信号处理

放大或缩小图像时会引入了明显视觉伪像,称为混叠。解释混叠发生的原因以及了解如何防止混叠需要采样理论的数学知识。

高频信号被采样为低频信号的现象称为混叠(aliasing)。在图像中,混叠通常以摩尔纹的形式出现。

高斯滤波是一种可分离卷积,时间复杂度可以从O(n^2)降到O(n)n为滤波器半径。

傅立叶变换背后的基本思想是通过将所有频率的正弦波(正弦波)相加来表达任何函数。

两个函数卷积的傅里叶变换是两个函数傅里叶变换的乘积。

两个函数傅里叶变换的卷积是两个函数乘积的傅里叶变换。

信号使用了太低的采样频率会导致不同频率的信息不可逆地混合在一起。

奈奎斯特准则:信号中存在的最高频率必须小于采样频率的一半。最高允许频率称为奈奎斯特频率或奈奎斯特极限。带宽限制为奈奎斯特频率的信号可以从样本中精确重建。

如果特定信号的采样率足够高就不需要使用采样滤波器。如果遇到包含广泛频率的信号(例如具有锐利边缘的图像),则必须使用采样滤波器对信号进行带宽限制,然后才能对其进行采样。

10 表面着色

漫反射和 Phong 着色

11 纹理映射

各种建模和渲染系统都提供了一些纹理映射方法:使用图像(纹理)来存储要在表面上显示的细节,然后以数学方式将图像“映射”到表面上。

定义纹理坐标的两种方法是从表面点的空间坐标进行几何计算,或者对于网格表面,存储顶点处的纹理坐标值并将它们插值到整个表面。

如果纹理仅覆盖表面的一部分,但纹理坐标已设置为将整个表面映射到单位正方形,则一种选择是准备一个大部分为空白且内容位于小区域的纹理图像。但这可能需要非常高分辨率的纹理图像才能在相关区域获得足够的细节。另一种选择是放大所有纹理坐标,单位正方形缩小到表面的一部分区别。

插值纹理坐标前需要把纹理坐标和世界空间坐标一起进行透视变换,插值后还需要通过除法恢复原始的纹理坐标。

特定图像空间位置处的过滤纹理样本应该是由该点的纹理坐标导数定义的平行四边形覆盖区上纹理贴图的平均值。

纹理过滤的主要问题随着足迹大小的变化而变化。对于小足迹,需要在像素之间进行插值以避免块状伪影;对于大足迹,需要找到许多像素的平均值。

由于mipmap第 k 层的纹素覆盖宽度为 2^k 的正方形,当像素足迹为宽度为 D 的正方形时,应该选择第log_2 D层mipmap。

当足迹不是正方形时一个易于计算的实用折衷方案是使用最长边的长度作为“宽度”D。

通过环境贴图可以实现镜面反射而不需要进行光线追踪。

环境贴图的更高级用法是计算所有光照,而不仅仅是镜面反射。可以在光线追踪器中使用蒙特卡罗积分进行计算,也可以在光栅化中通过使用点源集合来近似环境并计算许多阴影贴图来进行计算。

3D 纹理的缺点是将它们存储为 3D 光栅图像或体积会消耗大量内存。因此,3D 纹理坐标最常与程序纹理一起使用,其使用数学过程而不是从纹理图像中查找来获得纹理值。

12 图形数据结构

二维流形是一个表面,其中任何点周围的一个小邻域都可以被平滑成一个平坦的表面。

对网格拓扑最简单且最具限制性的要求是表面是流形:每条边都由两个三角形共享,每个顶点周围都有一个完整的三角形环。

可以将流形网格的要求放宽到具有边界的流形的要求,而不会导致大多数网格处理算法出现问题。放宽的条件是:每条边都由一个或两个三角形使用,每个顶点都连接到一组单条边连接的三角形。

当且仅当每对相邻三角形的朝向一致时,网格是朝向一致的。

在朝向一致的三角形对中,两个共享顶点在两个三角形的顶点列表中以相反的顺序出现。

任何具有非流形边的网格都无法一致地定向。但网格也可能是具有边界的有效流形,但没有一致的方法来定向三角形,例如莫比乌斯环。

索引网格是三角形网格最常见的内存表示形式。大网格中三角形的数量通常是顶点的两倍,因此使用索引网格可将存储需求减少一半。

为了有效地编辑网格,需要更复杂的数据结构支持以下查询:

给定一个三角形,三个相邻的三角形是什么?

给定一条边,哪两个三角形共享它?

给定一个顶点,哪些面共享它?

给定一个顶点,哪些边共享它?

三角形相邻结构:在索引网格基础上,通过两个附加数组来实现,一个存储每个三角形的三个邻居,另一个存储每个顶点的单个相邻三角形。

翼边数据结构是一种广泛使用的网格数据结构,它存储边而不是面的连接信息。

半边数据结构,在翼边结构的基础上为每个半边存储数据。共享一条边的两个三角形各有一个半边,并且这两个半边的方向相反,每个半边的朝向与三角形朝向一致。

三角形网格管理构成场景中对象的三角形集合,但图形应用程序中的另一个普遍问题是将对象排列在所需的位置。复杂的场景可以包含大量变换,良好地组织它们使场景更容易操作。大多数场景都允许分层组织,并且可以使用场景图根据此层次结构来管理转换。应用于对象的变换矩阵是从这个对象到数据结构的根构成的链上的所有矩阵的乘积。

三种空间划分结构:包围体层次结构、均匀空间划分和二叉空间划分树。

13 更多光线追踪

介绍透射和折射、实例化、通过分布光线追踪实现抗锯齿、软阴影、景深、光泽反射、运动模糊。

14 采样

介绍积分、连续概率、蒙特卡罗积分。

15 曲线

介绍曲线、立方体。计算机图形学中两种最重要的近似曲线类型是贝塞尔曲线和B样条曲线。

16 计算机动画

介绍关键帧、变形、角色动画、物理动画等。

17 使用图形硬件

介绍OpenGL的使用。

18 光源

介绍辐射度量学。

19 颜色

介绍色彩、颜色空间等。

20 视觉感知

介绍视觉科学、视觉灵敏度、空间视觉等。

21 色调映射

为了在低动态范围显示设备上显示高动态范围图像而压缩图像值范围的过程称为色调映射。

22 隐式建模

介绍模型的隐式表示。

23 全局光照

介绍路径追踪算法。

24 反射模型

介绍一些材质的BRDF。

25 游戏中的计算机图形学

纹理通常是最大的内存消耗者,其次是几何图形(顶点数据),最后是其他类型的图形数据(例如动画)。并非所有内存都可以用于图形——音频也占用相当一部分,并且游戏逻辑可能使用相当大的数据结构。

26 可视化

介绍可视化的相关知识。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值