● 沙子-沙漠效应,我早说了要见两次的
受影响最深的,也可能是最致命的,就是整个光栅化的发展进程。光栅化过程说到底就是材质和颜色的过程。纹理和像素本应该是一对共同发展的好兄弟,适度搭配的纹理操作可以提升整个体系的操作效率,降低操作难度,而适当的像素则可以进一步表达正确的效果。问题是现实往往是残酷的,在现代半导体工业中,可用晶体管的数量总是有限的。这就导致了像素和纹理最终不可能得到平等的发展。本来要好的两兄弟,现在要为了各自的生存前景搏命了。
不管出于天命也好,人为也罢,总之在这个回合的较量中,材质的操作显然占据了上风。图形界既然没有沿着微软规划好的更高效shader为主的路线前进,接下来的发展方向自然就要发生变化。游戏编程界长时间停留在以材质、半透明和光照操作以及贴图表现为主的方向上,这势必会对今后程序员习惯使用的表现手法产生深远的影响。烘焙含有精确效果的纹理本身是需要时间的,高精确度的纹理经常需要几十甚至上百机时才可以完成。如果程序员开始习惯性的依赖起了预制烘焙纹理,结果会怎么样呢?
高精度毛发纹理贴图
程序员通过和美工联动,用十几小时时间烘焙出了几十M漂亮的含有高光效果的材质,您眼前一亮。
接下来,简单的高光效果您看多了,于是希望别的真实的效果,于是程序员再次和美工联动,用几十小时烘焙出了几百M含有半透明效果的高光材质,您的眼前又是一亮。
然后,新的效果您又看烦了,为了满足您的眼睛,程序员开始绞尽脑汁开发纹理压缩算法,而美工们则熬红了双眼为您校正着各种光线的表现,终于在经历了几百小时的精心烘焙之后,您眼前的带漫反射效果的材质终于让您满意了。
现在,光有这些已经完全不够了,您还要阴影表现,还要更加真实的光照效果,还要求影子里的光度都不能出错,甚至要求所有场景都能够100%的依据您害死猫的好奇心正确的进行表达。结果,烘焙材质的时间变成了几千机时,材质大小直奔G为单位计而去,程序员对美工们在初始颜色上的精确要求让美工们抓了狂,而美工们所要求的完全无损的高比例纹理压缩算法则让程序员们发了疯。
下次,会怎么样呢?
我在前面的文章中提到过,我们会遇到两次沙子-沙漠效应。这就是第二次。而不同于上次的是,这次我们没有解决的办法……
纹理不同于像素,提升纹理的操作效率同时控制其对输出端资源和存储带宽的疯狂吞噬的唯一手段,就是高比例无损或者低损压缩算法。很显然,这又是一个纯数学方向上前进缓慢的领域。对像素我们可以透过结构来进行优化以换取快速执行效率,同时通过更新的API来改善编程环境减轻程序员的负担。对纹理我们不仅没有任何的办法,而且还要拉上完全无辜的美工们一起遭殃。当一个领域的发展直接受到了来自纯基础理论的束缚的时候,问题通常都是暂时无解的,CPU的并行化就是个极好的例子。既然问题无解,那这个方向显而易见是危险的不归路。
材质无损压缩示例
我们目前的编程界,似乎正在向着这个危险的方向滑落过去,甚至连标榜业界领先的图形表现测试基准的futuremark,也在3DMARK11中丢开了对更加灵活的shader的追求,直接大肆采用了各种高质量贴图来完成效果的表达。
我们说过,材质操作必不可少,他是提升系统执行效率的一个重要手段。但现在的材质操作正处在不均衡的过度发展状态,它更像是一个肿瘤,如果任其肆意生长下去,早晚有一天会压垮整个光栅化过程。
三秦IT网的官方微信:更多资讯请关注:三秦IT网官方微博