RealTimeRendering能推荐必为精品!
YCoCg在图像压缩里广泛使用,在游戏里第一次听到这个词是在寒霜引擎的Five Rendering Idea里用来做后处理优化,当时是第一次听到这个方法觉得很牛逼:)第二次在游戏里应用YCoCg就是这篇Paper了。这篇Paper展示了通过YCoCg将RGB压缩成2个通道进行渲染,从而降低带宽的目的。
个人觉得带宽根本不是个问题,倒是觉得这个方法用在Deferred Lighting的Lighting buffer里面非常合适,这样的话Lighting buffer的四个通道RG可以保存Diffuse Lighting,BA可以保存specular,解决的传统Deferred Lighting只用一个buffer带来的Specular只是亮度的问题。
用Impostor来优化渲染也是经常采用的一个手段,现代的引擎大多都是光的方向会变化,而且Deferred的引擎很流行,所以Impostor不能只保存一个计算光照的结果,需要把GBuffer保存进来,但是考虑到Impostor只会用到稍微远一点的物体,那么Specular可以干掉了,只需要Diffuse和Normal,这样这个技术可以美美的发挥一下了,只需要一张贴图把Diffuse和Normal压缩进去就可以了(用2个通道压缩Normal后面会专门来一篇解释一下)
另外这个方法用在Deferred Shading的GBuffer压缩上也会起到非常积极地作用,对于GBuffer可以将3个Buffery压缩到2个Buffer.不费话了,Demo时间。