计算机高级图形学复习(二)
计算机高级图形学复习(二)
渲染部分
第四章
1.pipeline渲染通道
Modeling Transform>>>Illuminate>>>viewing Transform>>>Clip>>>Project>>>Rasterize
Modeling Transform:建模坐标系转换为世界坐标系
Illuminate:明暗光线处理
View Transform:世界坐标系转换为视点坐标系
Clip:删除视图之外的几何图形
Project:投影
Rasterize:光栅化
第五章
2.齐次坐标系
使用n+1维表示一个n维向量
好处:
1.防止浮点数溢出
举例:二维点(x, y),用(X, Y, w)表示
(2, 3)的齐次坐标表示可以是(4, 6, 2)、(3, 4.5, 1.5)
w可以任意选取,所以当X,Y过大时用w来调整
2.统一变换矩阵(方便平移操作)
看下面二维平移旋转举例。
3.二维平移旋转缩放变换矩阵
4.三维变换流程
投影变化:
一点,两点,三点透视
分别是透视矩阵中的p,q,r中有1个,2个,3个非零元素
第六章
5.裁剪
先裁剪后变换可以省去许多不必要的扫描转换的工作
二维剪裁在光栅化,三维剪裁在消影
6.线段裁剪
6.1Cohen-Sutherland裁剪算法
使用编码方法快速判断线段与视窗的位置关系:
若某线段两个端点的四位二进制编码全为0000,线段在窗口内,全部显示
若某线段两端点的四位二进制编码进行逻辑与运算(&)结果不为0,则线段位于窗口之外,直接舍弃。
剩下的情况为线段与窗口有交点,按固定顺序求线段与窗口的交点。
7.多边形裁剪
7.1Sutherland-Hodgman算法
特点:分治策略,但是在凹多边形裁剪时可能出错(解决方法是将凹多边形切割成凸多边形)
7.2Weiler-Atherton多边形裁剪
第七章 光栅化
8.种子填充算法
递归实现
9.扫描线算法
扫描线连贯性+边连贯性=区域连贯性
奇异点处理
10.活化边链表
第八章 消影
10.z-buffer
优点:不排序;任意几何图形;可以处理穿插;硬件加速
缺点:占内存;走样;不好处理透明物体
11.画家算法
需要排序,由远到进绘制物体
处理穿插物体时,需要切割
物体面数少是选择z-buffer,面数多时选择画家
12.BSP二叉空间剖分树
中序遍历
第九章
13.光照模型
Lambert漫反射模型
Phong镜面反射模型
Whitted整体光照模型(Phong+折射光线追踪+反射光线追踪)
14.明暗处理模型
Flat Shading(每个面计算一个亮度)
Gouraud Shading(对于每个顶点计算出法向后,计算亮度,然后光的亮度插值)亮度插值
Phong Shading(对于每个点计算法向,然后计算亮度)法向插值
15.光线跟踪算法
从视点出发,对屏幕上的每一个像素进行算法计算
递归:
终止条件:交点不存在;亮度过小;递归到一定深度
遇到物体面,衍射出镜面反射和透射的光线。
最后通过Whitted模型计算每一个像素点的颜色
优点:效果好;有消影功能;有影子效果;可以并行(每条线独立);
缺点:计算量大,显示速度慢;走样(像素级,解决方法:超采样)
加速方法:
包围盒技术和空间分割技术
只有追踪的光线和包围盒或空间相交,光线才和里面的面片做求交运算
16.纹理分类
17.纹理映射的两种方法
纹理扫描;像素次序扫描
18.纹理反走样的方法
前置滤波;超采样;Mipmap(选两个分辨率与屏幕最接近的,求均值)
19.辐射度系统方程
20.辐射度算法
Gathering:对于每一面片,收集场景中其它面片对它辐射的光能,更新该面片的辐射度

Shooting:
1.选取辐射源面片(具有最大待辐射光能),将其辐射光能发送到其他面片,更新各面片的辐射度。
2.选取新的辐射源面片

21.本影和半影
22.Depth Pass和Depth Fail
也叫作zpass和zfail。分别是用z值也就是判断物体与阴影体正面背面和视点之间的深度关系。pass的意思是物体比阴影体背面或正面离视点更远,fail就是更近。zpass是在pass的时候分别+-1,fail同理。pass算法当视点在阴影中时失效。
23.LOD技术
简单理解就是物体距离视点越进的时候就用面数更多的模型来显示,也就是说离得越近看上去越精致。这样可以节省空间。
缺点是一个特别大的模型,比如体育场,你站在体育场的东门,可能他的东边部分离视点近,西边部分却很远。但不可以近的一部分用面数多的,远的一部分用面数少的,因为模型是一个整体。

浙公网安备 33010602011771号