zoukankan      html  css  js  c++  java
  • [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)处
                }
            }
        }
    }
    


  • 相关阅读:
    关于两次fork
    阻塞非阻塞与同步异步的区别
    函数调用堆栈
    数组
    64位操作系统与32位操作系统数据类型的字节数
    Redis 键(key)
    Redis 命令
    Redis 安装
    Redis 配置
    MongoDB 安装
  • 原文地址:https://www.cnblogs.com/WAoyu/p/13160735.html
Copyright © 2011-2022 走看看