Shader之三大测试——深度测试(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35030499/article/details/82892559

 光看是不行,需要自己写运行看效果,那样记得住。因人而异

需要理解深度、RGBA,深度缓存,深度测试

像素,不止携带有RGBA信息,还有深度值,模板值等。

深度

由于渲染顺序的问题,远处的物体会被近处的物体,所遮挡。  参考画家算法

物体远近,通过系统自动计算。

远近不是物体直接到摄像机的距离,而是做摄像机朝向 垂线的距离

那换个角度,摄像机旋转一下,cube坐标没有变动,深度值,只是参考

当你看到这个肯定不陌生

控制物体深度,与Zwrite  、ZText  关键字有关,Cull控制物体渲染面   后几个文章写。

如果要绘制半透明效果,关闭深度缓冲off

Zwrite

  参数 On/Off    开启/关闭深度写入

ZText 

 Greater  GEqual  Equal Less LEqual  NotEqual  Always  Never分别对应

>                 >=       ==      <         <=        !=             总是   从不

像素对比GBuffer中的像素,满足条件则替换。否则舍弃

,物体的像素渲染并不是直接就到屏幕上,需要计算,符合条件则通过测试,最终到屏幕上。

总结,只有ZWrite打开,ZText通过时,才会写入深度缓存

这是工程源码,我会放在Git上边。

自己多做测试。

猜你喜欢

转载自blog.csdn.net/qq_35030499/article/details/82892559