您当前的位置: 首页 > 

Jave.Lin

暂无认证

  • 3浏览

    0关注

    704博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

深度测试

Jave.Lin 发布时间:2016-04-15 00:31:49 ,浏览量:3

继上篇:深度缓存

其实在上篇中的新版优化,可知,如果没开启深度缓存,就不可能有深度测试的所以这在相关优化版来说,这篇的内容是不必要的,因为已实现在新优版中的写法会更合理一些,而且内存占用也会少很多,但保留这些久版内容,是未优化的,可读性,理解上会好很快,而且也比较有空间感
// @author Jave.Lin
// @date 2016-04-14 23:38

// 以下伪代码,纯属个人的一些片面理解写下的
// 后面再不断学习现有的渲染架构,或是新的架构
// 再逐个重构架构
// 欢迎大家指点

// 深度测试
public class ZTest
{
    public function ZTest()
    {

    }

    // 测试指定的x,y坐标对应z深度要不要绘制
    public function test(x:int, y:int, z:Number, zbuff:ZBuffer):Boolean
    {
        var a:int;
        for (var i:int = 0; i < zbuff.vec.length; ++i)
        {
            var lBuff:ZLayerBuffer = zbuff.vec[i];
            if (lBuff.z > z) // 后面的深度不用比较
            {
                break;
            }
            a += (lBuffer.read(x, y) & 0xff000000) >> 24;
            if (a >= 255) // 前面的所有深度最结果为完全不透明
            {
                return false;
            }
        }
        return true;
    }
}
关注
打赏
1664331872
查看更多评论
立即登录/注册

微信扫码登录

0.0445s