[computer graphics]消隐算法Z-Buffer深度测试

Posted waoyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[computer graphics]消隐算法Z-Buffer深度测试相关的知识,希望对你有一定的参考价值。

Z缓冲区算法(Z-Buffer)

将多边形投影到2D平面上时,还需要解决一个问题,就是遮挡问题,也就是消除隐藏面,常用的是Z-Buffer算法。

一个帧缓来村像素的颜色,一个深度缓存来存放每个像素对应物体的深度值。
总的思想是,如果当前操作的像素值的深度值大于深度缓存中对应的深度值(因为往-Z方向看,所以值大的离视点近,也就是在前面),那么帧缓存存入这个颜色值,并把对应的深度缓存也修改成此像素的深度值。

伪代码

Z-Buffer()
{
    帧缓存置为背景色;
    深度缓存全置为最小Z值;
    for(每个多边形)
    {
        扫描转换该多边形;
        for(该多边形覆盖的每个像素(x,y))
        {
            计算该多边形在该像素的深度值Z(x,y);
            if(Z(x,y)>Z buffer在(x,y)的值)//深度测试
            {
                把Z(x,y)存入Z缓存中(x,y)处;
                把多边形在(x,y)处的颜色值存入帧缓存(x,y)处
            }
        }
    }
}

技术图片
技术图片



以上是关于[computer graphics]消隐算法Z-Buffer深度测试的主要内容,如果未能解决你的问题,请参考以下文章

区间扫描线算法

Z-buffer算法

消隐算法

消隐算法二

消隐算法的总结与展望

6GEN715 – Computer Graphics