- 2
- 0
- 约2.93千字
- 约 34页
- 2017-05-20 发布于浙江
- 举报
第八章_沼腈实感图形的生成技术
第八章 真实感图形显示;Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.;Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.;真实感图形绘制:
通过综合利用数学、物理学、计算机以及心理学等知识在计算机图形输出设备上绘制出能够以假乱真的美丽景象。
涉及的技术有消隐、光照、纹理等。
;8.1 消隐技术;要消除二义性,就必须在绘制时消除被遮挡的不可见的线或面,习惯上称作消除隐藏线和隐藏面,简称为消隐。
计算机生成的图要能真实的反应这一问题,因此必须把隐藏部分消除。
消隐结果与观察物体有关,也与视点有关。;消隐分类
根据处理场景时是直接对物体定义进行处理还是处理它们的投影图像分类
物空间消隐(Object space algorithms)
投影之前直接在三维空间中对物体进行消隐。把n个对象中的每一个与其它(n-1)个对象比较,消去不可见的对象:
像空间消隐(Image space algorithms)
投影到二维显示空间并光栅化(图象空间)后进行消隐。
;物体空间的消隐算法
将场景中每一个面与其他每个面比较,求出所有点、边、面遮挡关系。
以场景中的物体为处理单元;
for (场景中的每一个物体)
{
将其与场景中的其它物体比较,确定其表面的可见部分;
显示该物体表面的可见部分;
} ;图像空间的消隐算法
对屏幕上每个象素进行判断,决定哪个多边形在该象素可见。
以窗口内的每个像素为处理单元;
for (窗口内的每一个像素)
{
确定距视点最近的物体,以该物体表面的颜色来显示像素
};8. 2 多面体的消隐处理;为了提高算法的效率,需要设法减少求交的工作量。
1、消除自隐藏面
设V为由视点出发的观察向量,N为某多边形面的法向量。
若V· N0,称该多边形为后向面。
若V· N0,称该多边形为前向面。
;;2 包围盒测试
排除不相交的线段。
定义:一个形体的包围盒指的是包围它的简单形体。该技术常用于: 避免盲目的求交测试;各种物体间的比较等。
空间点Vi在oxy平面上的投影记为:Qi(xi,yi) 。
则值线段Q1Q2的边界盒为包含Q1Q2这一直线的边平行于坐标轴的最小矩形: ;很明显xmin=min(x1,x2) ymin=min(y1,y2)
xmax=max(x1,x2) ymax=max(y1,y2)来确定。
如果两个边界盒的参数为
xmini,ymini,xmaxi,ymaxi,i=1,2
当它们满足
(xmin1xmax2)或(ymin1ymax2) (8.1)
或(xmin2xmax1)或(ymin2ymax1)时
两边界盒不相交,则原来的两条边也不相交。
式8.1只是一个充分条件,上图中Q1Q2和Q3Q4虽然不相交,但是他们不满足8.1。;大量的不相交线段是可以用边界盒的方法判断出来。
边界盒的方法还可用于判断两个多边形或两个多面体是否相交。;3、深度测试
在观察坐标系下判断线段与多边形的前后关系。如多边形完全在线段之后,则线段完全可见,无需就线段和多边形的遮挡关系进行进一步判断。
以上措施有效地减少了直线段求交的次数。;8. 3 Z缓冲器消隐算法;Z缓冲器算法
帧缓存来存放每个象素的颜色值
初值可放对应背景颜色的值
深度缓存来存放每个象素的深度值,即相应象素所对应的物体上的点在观察坐标系下的Z坐标值。
初值取成z的极小值。;z缓冲器中的单元与帧缓冲器中的单元一一对应
算法思路:先将z缓冲器中个单元的初始值置为-1(规范视见体的最小n值)。当要改变某个像素的颜色值时,首先检查当前多边形的深度值是否大于该像素原来的深度值(保存在该像素所对应的Z缓冲器的单元中),如果大于,说明当前多边形更靠近观察点,用它的颜色替换像素原来的颜色;否则说明在当前像素处,当前多边形被前面所绘制的多边形遮挡了,是不可见的,像素的颜色值不改变。;Z-Buffer算法()
{ 帧缓存全置为背景色
深度缓存全置为最小Z值
for(每一个多边形)
{ 扫描转换该多边形
for(该多边
原创力文档

文档评论(0)