画家算法(列表优先算法)
本算法不能处理的情况: 多边形循环遮挡 多边形相互穿透
解决办法:分割成两个
Z-Buffer算法
➢由来: 帧缓冲器 – 保存各像素颜色值 Z缓冲器 --保存各像素处物体深度值 Z缓冲器中的单元与帧缓冲器中的单元一一对应
屏幕
帧缓冲器
Z缓冲器
每个单元存放对应 象素的颜色值
每个单元存放对应 象素的深度值
射线方程为
x y
d1t d2t
x0 y0
把射线方程代入直线方程得到
(ad1 bd2)t ax0 by0c 0
当 线与a直d线1 重b合d。2 当0a时d,1直线b与d2射线0平时行,,若则还有 ad0 bd0 c 0 ,则整条射
t1 (ax0 by0 c) /(ad1 bd2)
方法:将投影平面上的窗口分成若干小区域;为每个小 区域建立相关物体表,表中物体的投影于该区域有相交 部分;则在小区域中判断那个物体可见时,只要对该区 域的相关物体表中的物体进行比较即可。
方法6-物体分层表示
表示形式:模型变换中的树形表示方式
原理:减少场景中物体的个数,从而降低算法复杂度。
方法6-物体分层表示
当 t1 0 时,二者交点为 (d1t1 x0, d2t1 y0 ) ,当 t1 0 时,无交
点
射线与线段求交问题
假定射线方程如上一样,线段的两端点为 p1(x1, y1), p2(x2, y2) ,则线段的方程为
x y
( x2 ( y2
x1)s y1)s
x1 (0 y1
s
1)
射线方程代入上式得到
则该射线方程为
x y
d1t d2t
x0 y0
(t