计算机图形学基础 : 可见面判别算法

可见面判别算法分为两种类型, 称为物空间算法和像空间算法。物空间算法将场景中的各对象和对象的各个组成部件相互进行比较,从而最终判别出哪些面是可见的; 而像空间算法则在投影平面上逐点判断各像素所对应的可见面。


后向面判别

快速简便的判别多面体后向面,设点(x, y, z)满足:
Ax + By + Cz + D < 0
则该点在多边形面的后面,A、B、C、D是多边形面的平面参数。

可以通过考察多边形面的法向量 N的方向来简化后向面测试, Vview为下图左所示由相机位置出发的观察向量,则当   Vview ● N > 0 时,该多边形为后向面。然后,如果将对象描述转换到投影坐标系后,观察方向平行于观察坐标系中的Zv轴,这时候仅需考虑 N在Z轴上的z分量即可。



在沿着Zv轴反向观察的右手观察系统中(上图右),若法向量 N的z分量C 满足 C < 0,则该多边形为一个后向面。同时,我们无法观察到法向量的z分量 C = 0的所有多边形面, 因为观察方向与该面相切。 因此,一旦某多边形面的法向量的z分量值: C <= 0, 即可判定其为一个后向面。 如果采用的是左手坐标系, 以上方法同样适用,平面参数A、B、C、D可由顺时针方向标识的多边形顶点坐标计算出来(右手坐标系中为逆时针方向),同样的,如果观察方向与z轴正向一致,则后向面的法向量为远离试点的方向,由 C >= 0来进行判别。



深度缓存算法(Z-Buffer算法)

该算法沿着观察系统的z轴来计算各对象距离观察平面的深度,在这个算法里,不仅需要有帧缓冲区来存放每个像素的亮度值, 还需要有一个Z缓冲区来存放每个像素的深度值,算法的大概流程是 :

帧缓冲区置为背景色;
Z缓冲区置为最小Z值;
for (各个多边形)
{
扫面转换该多边形;
for (多边形所覆盖的每个像素(x, y) )
  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值