光看是不行,需要自己写运行看效果,那样记得住。因人而异
需要理解深度、RGBA,深度缓存,深度测试
像素,不止携带有RGBA信息,还有深度值,模板值等。
深度
由于渲染顺序的问题,远处的物体会被近处的物体,所遮挡。 参考画家算法
物体远近,通过系统自动计算。
远近不是物体直接到摄像机的距离,而是做摄像机朝向 垂线的距离
那换个角度,摄像机旋转一下,cube坐标没有变动,深度值,只是参考
当你看到这个肯定不陌生
,
控制物体深度,与Zwrite 、ZText 关键字有关,Cull控制物体渲染面 后几个文章写。
如果要绘制半透明效果,关闭深度缓冲off
Zwrite
参数 On/Off 开启/关闭深度写入
ZText
Greater GEqual Equal Less LEqual NotEqual Always Never分别对应
> >= == < <= != 总是 从不
像素对比GBuffer中的像素,满足条件则替换。否则舍弃
,物体的像素渲染并不是直接就到屏幕上,需要计算,符合条件则通过测试,最终到屏幕上。
总结,只有ZWrite打开,ZText通过时,才会写入深度、颜色缓存,
只有ztext通过,zwrite关闭,只会写入颜色缓存
其他情况都是不写入
这是工程源码,我会放在Git上
https://github.com/Timor666/ProjectCode
自己多做测试。