广义上讲的“次时代游戏”其实就是当前世代游戏中,加入了一些还未普及的先进技术运用,这些开发技术层面的东西是超前于当前世代的。比如我们经常会听到一些大作宣传的:高清分辨率画质、动态天气效果、毛发渲染技术等。其实,次时代游戏本身最大的特点就是体现在视听的强劲表现效果上!而从游戏开发的阶段中,次时代游戏大都是通过美术与引擎的配合来实现的。不过呢,在不了解次时代美术前你可能会稀里糊涂地在那些自己认为特真实的世界中满地跑。其实不然,所谓的次时代表现效果都是一种“视觉欺骗”!
首先得说一个事儿:在游戏中,无论是角色、场景、道具以及其他七七八八的,考验最终呈现效果的都是“三分靠模型,七分靠贴图”!当然,如果是在影视动画以及游戏CG中,模型则是占主要的。归根到底,游戏中需要更多用贴图来表现的原因是模型面数问题。倘若游戏中把模型本身做的特别精细(即高模),面数也就会增多。最终所占的资源会非常大,引擎无法支撑。所以,贴图才是表现游戏模型的关键。褪去了贴图之后,你会发现很多游戏的原始模型只是个Box或者plane!那么问题来了,既然不能直接使用高模放到游戏中,那为何次时代游戏中的模型仍然有着非常精细的纹理和凹凸效果呢?这就得说到今天要聊的核心点:“法线贴图(normal map)”了。
法线贴图与颜色贴图(color map)、高光贴图(specular map)以及凹凸贴图(bump map)共同为次时代游戏美术中的一套完整贴图。当然,你也可以加个自发光贴图或者AO进来。而法线贴图本身是属于凹凸贴图的一种(凹凸贴图存储的是高度),用来增加低面数模型的细节,可以理解为“光线拦截”贴图。法线本身是垂直于一个平面的直线,通过计算光线和这条法线的角度就可以知道光线与面的角度,这个是不是想起了物理学里面“光的反射定律”?我们可以把法线贴图上的每一个像素都看成是模型中一个面的部分,用RGB三原色就可以记录每个像素的法线方向了,同时模型就会出现明暗的变化产生立体感。
而法线贴图可以实现把一个平面的所有像素的法线都存储在一张纹理贴图上。然后将这张带有纹理效果的法线贴图赋予给游戏中的低模,就可以模拟出接近高模的凹凸效果了,实际上你在游戏中看到的精细模型只是一个平面而已。这点对于美术设计师来说是最清楚不过的,只要在3D建模软件中显示出模型的布线或者面数,立马就露馅了。之所以次时代游戏中会广泛使用“法线贴图”,也是出于能够以最低的面数表现出更真实的细节,同时也省去了一些手绘贴图的时间。
你可能会有点疑问:“游戏中的贴图是如何制作出来的呢?”这里先简单科普一下传统颜色贴图(漫反射贴图)的制作流程:传统贴图大都运用在网游中,一个低模+展UV+画贴图就完工了,所有的明暗细节、层次立体都是靠手绘功底来体现的。三个字——“画就行!”再回到法线贴图上,这张赋予模型凹凸感细节的贴图是如何生成的呢?这里就得说到“烘焙”这个概念了,注意,可不是指的烤面包哦!
另外,需要补充一下:“烘焙”做法主要运用在3dmax或maya等常规三维软件中。前文已经说到游戏中的法线贴图是赋予低模上呈现出接近高模的效果。那么,在生成法线贴图的时候必然的需要对同一个模型制作出一个高模(smooth细分之后)加一个低模(简单的poly布线)出来。接下来和传统网游一样,需要展开低模的UVmap并在UV编辑器中摆好(你可以理解为把一个立体的模型盒子剪开成平铺形状,目的是为了方便后面的贴图绘制)。然后就是比较关键的一步:将高模等比例缩放,尽量与低模包裹在一起至基本重合。最后你需要在渲染(Render)面板中调好一些参数,譬如指定高模对象集的纹理给低模对象集,还要设置好烘焙模型的外包围框的宽高数值,选择生成normals map并设置好渲染的纹理图像素大小(一般来说用2048*2048比较多)。这样渲染出来的就是一张拥有高模纹理效果的法线贴图了。当然,你也可以用CrazyBump工具把高光、凹凸等贴图一并生成放到PS里面去做手绘加工。
但有时候,要制作细节非常多、纹理图案特别复杂的模型,如角色皮肤皱纹、毛发、布料褶皱以及道具上的精细纹理和刮痕等不可能全部依靠max或者maya建模来完成,那得把人累死。所以有了另外一个神器出现—Zbrush(数字模型雕刻软件,以下简称ZB)!我们曾经玩过的《战神3》、《使命召唤》、《刺客信条》、《神秘海域》等游戏中的角色或生物在绘制模型细节部分时都有用到ZB。区别于max或maya,在ZB中建模是完全依靠笔刷手绘雕刻出模型细节的。当然,在进行这一步之前,也可以先在max或maya中完成中模轮廓出来再导入OBJ文件到ZB中雕刻。ZB中可以实现百万面数级别的多边形建模,完成细节部分后再降低smooth细分级别,尽量拓扑出一个低模出来,因为ZB雕好的高模往往是不会考虑布线的规则。最后使用Zmapper插件烘焙出法线贴图。
前面已经将法线贴图的运用和实现方式做了基本描述,这终究是一套做“假”的技术手段,现在带你看看法线贴图在游戏中是如何给你视觉欺骗的,并来将其拆穿。
虽然法线贴图可以利用灯光照射到模型上被它拦截,产生低模没有的凹凸细节。但法线贴图本身是存在着一定弊端,它无法实现细节遮挡和外轮廓起伏。好比法线贴图可以使一个平面从视觉上产生a、b两个起伏点,并且a的高度要高于b,那么从a往b的方向看时,a应该要挡住b,才能保持真实不露陷。但法线贴图并没有这种效果,仍然会看到b点。就像上图《无尽之剑》游戏中的角色手持的盾牌和武器一样,你从两种不同视角观察它们的法线纹理,直接就能看出破绽。这就和上文说到的光源与模型形成的夹角极低时,法线向量是无法反馈出凹凸的细节,模型表面也会显得非常暗。
在《生化危机5》中,克里斯和夏娃来到了被感染的非洲原住民的村落里。那里一片都是湿地沼泽 ,而且剧本将这关卡中的水面场景与主角做了非常多的交互,鳄鱼的袭击就是非常经典的触发桥段。在这个场景中,主角站在水中可以清晰地看到水下凹凸不平的地面。而且水波自身也有波动的动态效果,这依旧是利用动态生成的法线贴图和特效加入来模拟水面纹理的波动。一旦不显示法线贴图后,我们可以明显看到水面的原型只是一张面片多边形。
来看看《EVE》中这个特殊的船舱内景,你会发现整个场景模型用到了大量的法线贴图。如同上图中,这个小品模型本来没有做厚度,随着观察视角产生光源的变化,反射效果也就越来越弱了。无论显卡怎么计算,模型表面始终是平整的,无法解决高低遮挡问题,这还是属于视觉欺骗的。
另外,在其他一些并不用来游戏美术制作的软件中也可以实现建模和贴图效果,比如初音家的MMD。如上图,给MMD中的角色模型加了法线贴图之后。从前视角看布料的纹理效果非常逼真,但是从斜视角看去衣服下摆和拉链那块很明显也只是一个没有厚度的plane。显然,这又是同样的“作假”技术手段。
法线贴图终究来说只算是一种“平贴”,虽然它在次时代游戏中一直在用“视觉欺骗”作假,但在现有的开发条件下,依旧为游戏实现更精良的画面表现带来了强大助力。本质上来说它也存在着一定的缺陷,所以较真的话也很容易发现其不足。随着开发技术的不断完善,引擎功能越来越强大,在日后也可能会出现替代法线贴图去表现模型细节的实现方式。譬如现有的“置换贴图”就是一张可以真正记录光源定点移动、曲面细分增加模型高度的贴图。无需解决遮挡问题,它呈现的就是真实的模型细节。当然,如果有一天可以直接把高模放到游戏中,那才是次时代巅峰的降临!
评论区
共 76 条评论热门最新