写在前面
早在使用ramp texture控制diffuse光照一文就提到了这篇著名的论文。Valve公司发表的其他成果可见这里。这是Valve在2007年发表的一篇非常具有影响力的文章,我的导师也提到过这篇,既然这么有名,我就去拜读了下,结果真是读到头大啊啊啊啊!其实半年前就读了这篇文章,差一点读完,后来一比赛一考试一放假就没完成,对自己很愧疚。。。时隔这么久希望能把之前的理解整理出来,顺便看看能不能有更多收获。(又要读一遍E文!)
这篇博客在翻译这篇论文的基础上,会在Unity Shader里面尝试自己实现一下效果。若有出入,还请指出,不胜感谢。
摘要
在2007年,《要塞军团2》这样画质的游戏应该是比较少见的,这篇论文就说明了这个游戏里面使用的Shader技术。一个好的游戏一定是美术人员和工程师之间的完美合作,因此这篇论文里将会讨论他们是如何用技术支持美术目标和游戏限制的。而且,为了得到引人入胜的效果,他们的shading技术使用了边缘高光技术(rim highlights)以及在亮度和色彩方面的变化来快速传递不同的几何信息。
关键词:非真实感渲染(有点像卡通、插画那样的渲染效果),光照模型,着色器,硬件渲染,电子游戏
1. 介绍
在这之前,大部分非真实感渲染技术都只能在一个特定的模型下工作,而这篇文章介绍了一系列可交互的渲染技术,而且还添加了在光照和色彩方面的变化,使得玩家可以在不同的光照条件下直观地分别不同的场景。
在《要塞军团2》中,他们选择了20世纪中期几名插画师的艺术风格,这种风格的插画角色使用了强烈而且鲜明的轮廓,并且强调衣服褶皱。他们加重了对象的内部形状,使用边缘高光而非黑色的轮廓来强调对象轮廓,如上图图(a)那样。
这篇论文的主要贡献是整理的这种商业插画风格到游戏的转换。技术有,实现了一种diffuse light warping function的插画式渲染函数,rim lighting的公式,以及一个总体说来在真实感和非真实感之间获得平衡的shading技术。
2. 相关工作
非真实感的渲染风格变化多样,但是它们都是来自真实世界的艺术风格,前提是这些技术是由人类发展而来,是具有内在价值的。《要塞军团2》使用的商业插画风格是和1998年的Gooch紧密相关的。在Gooch shading中,传统的Phong模型[Phong 1975]被一种由冷到暖的色彩变化所修改,来暗示在某个光源下的平面方向。因此,非常明亮和黑暗的区域被保留为边缘线条以及高光。相比于传统的光照模型,在一些困难的光照条件下,这种方法得到了更清晰的3D视觉。
3. 商业插画技巧
根据20世纪早期的插画家J. C. Leyendecker, Dean Cornwell , Norman Rockwell 以及他们自己的概念原画,他们得到了下面的一致性来定义《要塞军团2》中的风格:
- Shading遵循一个由暖到冷的色彩转换。阴影是趋于冷色,而非黑色。
- 在特定光源的明暗交替处,饱和度增加。交替处通常是偏红色的。
- 高频度的细节尽可能省略。
- 对于角色,内部细节,像衣服褶皱等,重复轮廓线条。
- 在轮廓处使用边缘高光,而非深色的线,进行强调。
4. 创建美术资源
本节介绍3D人物和世界模型的建模,以及生成贴图时遵循的规范。
4.1 人物建模
在像《军团要塞2》这样的多人战斗游戏中,我们需要在各种距离