如何科学评价“游戏画面” 篇一:即时渲染3D游戏的基本原理和制作方式

小编注:想获得更多专属福利吗?金币加成、尊享众测、专属勋章、达人福利任务你想要吗?如果想要,赶紧来申请认证站内生活家!猛击此链接

很多值友可能会知道我在这里分享服装、鞋帽、皮具文化的内容。其实我也是一名核心向的游戏玩家和MOD制作者、独立汉化者。

关于核心向PC正版游戏玩家的自我修养诚然仅仅是为了享乐,一个人就虚度自己的生活、荒废事业或是更重要的东西,比如说爱情,无疑是一种悲剧。然而在中国,提起个人爱好时电子游戏无论如何都是一件不上台面的事情。绝大多数“普通人”受到自身及所接触人群的哲学、精神、知识层面局限,总是去用“他们”的标准为实现所谓“成功、幸福”之类目标的通道限定行为标零zXr0| 288 评论315 收藏295查看详情


零·文章内容索引:

1)为什么要科学评价游戏画面
2)游戏即时渲染的基本概念
3)游戏视觉表现的终极目标
4)游戏世界画面的构成
5)对象(Object)的构成:模型线框(mesh)、贴图材质(texture)、 动画(animation)
6)贴图材质模拟效果
7)场景环境
8)特效(Shader Effect)&光影(Lighting & Shadowing)
9)互动性与实时动态效果
10)融合输出(Blend & Pixel Shader)
11)执行效率与优化(Optimize)
12)游戏制作的分工

一、为什么要科学评价游戏画面

且看两篇游戏评测

1.1 糟糕的评价:某DM游戏网 《鬼泣DMC》评测

摘录:游戏制作精良、画面十分精美,人物刻画细腻,动作表现真实到位,技能特效也比较华丽,初次进入游戏释放大招甚至可以用震撼来形容。但场景表现单调加上界面设计缺乏灵感,影响了整体氛围。加上整体优化不佳,经常卡顿,严重影响游戏体验。

玩家:??????

1.2 好的评价:口袋巴士《变形金刚绝迹重生》评测

摘录:变形金刚的建模很细致,几乎完全还原了电影形象,场景也足够丰富并不单调。之所以本作画面看上去很差,主要是因为其完全无变化的贴图,虽然是3D画面,建模不错,但无论什么物体都一模一样的毫无区别的贴图表现,让整个画面显得很平,很没有内容,同时还缺乏了物体性质的表现,金属不像金属,木头不像木头,一个画面好像都是纸糊的东西。外加贴图本身那低分辨率的质量,以及满屏一点都没有的光影变化,还有纸片般的爆炸特效。

如果你以一名真正核心向的游戏玩家自诩,或是有志于进入游戏行业、游戏媒体行业。那你可不能用“精美、炫丽、精致、华丽、震撼、细腻、真实”这样粗糙的语言评价游戏画面!这与“老甜了”、“老好吃了”一样,毫无意义。

通过本系列文章,你可以学会像IGN游戏编辑一样专业地评价游戏画面。

只有了解游戏画面效果的构成原理、表现方式、执行效率才能科学地评价游戏画面效果和优化。搞懂一款游戏画面“好“到底好在哪里;游戏优化”差“到底又差在哪里。

二、游戏即时渲染的基本概念

2.1 3D即时渲染游戏是什么:

是否3D游戏与看起来的视觉效果无关,当然也并不存在2.5D游戏。

(1)1D:定位在一条线中的位置,只需要X轴坐标数据,如B距离A 500px(像素);
(2)2D:定位在一个平面中的位置,需要X、Y轴坐标,如东经124度北纬42度、梦幻西游中的(东海渔村 168,215);
(3)3D:在游戏场景中,具有XYZ 3轴定位对象,实时渲染的游戏,即为3D游戏。

2.2 3D即时渲染(Real-Time Rendering)的起源与发展:

3D即时渲染的发展过程,也就是不断将静帧3D渲染功能通过GPU硬件加速实现即时化的过程。

1990年代初,静帧3D渲染已经可以达到《侏罗纪公园》等级,而只能用于商业领域。程序员可以通过VB、VC等写出依赖CPU与内存运行的即时3D程序,不过效率低,效果差。这个时代不存在游戏引擎、API、运行库,做游戏就像做网站没有数据库、后台,甚至没有DW。3D游戏必须一行一行写代码,只有真正的大神才能做出好作品,如id Software的卡马克。

90年代中期AMDK6、因特尔奔腾2时代开启,3DFX推出了Glide API,与Voodoo显卡。通过这样的API,3D渲染第一次有了专属硬件——3D图形加速卡(显卡)。

硬件与软件渲染的区别是,GPU不能执行具体指令但是可以进行大批量重复、枯燥的运算,而CPU每次执行指令要重新编程,适合灵活运算。

此后,CPU不再进行渲染,只负责调度,而显卡则负责具体工作,就像流水线作业。当前GTX Titan图形渲染能力已是I7 3960X的100倍。

随后,微软发布了应用在Windows系列系统的开放API——Direct 3D(当前Direct X的子集) 、Khronos发布了可以运行于Windows、Unix、Linux(包括基于此的Ubuntu、Macintosh、iOS、Android)在内任何系统的开源API——Open GL。

这些API都用自家规则算法,将静态渲染效果以更高效呈现在3D即时渲染中,而今天的手机游戏主流API是2012年发布的 Open GL ES 3.0,应用于iOS与Android,微软的Windows Phone当然还是Direct 3D。

2.3 3D游戏如何加载、运行:

用户启动应用程序(软件),程序命令CPU从系统调用Android/iOS系统内置的某些通用运行库、运行游戏所需资源并将这些加载到内存、显存,随后呈现游戏的图形用户界面(GUI)。当加载达到一定完成度,CPU开始指挥GPU,按照API(如Open GL ES 3.0)预先设定好的处理方式进行离屛(OFF Screen)预渲染,渲染完成度达到100%即可进入游戏的实际渲染画面。游戏加载时间过长,就是数据结构不合理或者预渲染做的不好。

 

2.4 游戏视觉效果失败典范:

即时渲染3D游戏的基本原理和制作方式

三、游戏视觉表现的终极目标:

3.1 广阔无边:

当前的游戏地图是有尺寸概念的,如256x256、1024x1024、16384x16384,除非采用过程生成技术,否则游戏地图越大运算量也就越大,不过游戏是有视距(View Distance)和视场(Field of View/FOV)概念的,看不见的物体不予渲染。

3.2 极致细节:

游戏中具有大量内容,场景、对象刻画极致真实。在当前,需要渲染越多、细节越丰富的物体,运算量也就越大。不过可以通过几何实例、遮蔽剔除之类的方式优化。

3.3 充分互动:

游戏中的物件可互相影响,例如爆炸冲击波可吹飞部分对象并在地面留下弹坑;场景中的建筑可破坏或车辆可损伤;玩家走过会留下地面脚印并拨开草丛。这些涉及碰撞检测、重力、层关系等数据逻辑计算,都需要CPU来调度处理。

3.4 丰富变量:

例如可模拟天气、时间、气候变化效果;游戏中具有可变的光照、效果系统。这需要游戏从设计开始,就为动态环境设计,为了节约资源,当前多数游戏都是将效果做成完全静态。

3.5 运行疾速:

每秒60帧以上且稳定的渲染速度是开发目标,但并不现实,当前手机游戏多锁定为30FPS。期望高效,就要使用多种最先进的方式优化游戏的数据结构、渲染流程、场景设计。

四、游戏世界画面的构成:

4.1 对象(Object):

例如游戏人物、武器、载具。环境中的:乔木,灌木、建筑物、栅栏、掩体。除了天空、河流、高山一类,基本都是对象。

4.2 场景环境(Scene Environment):

游戏世界中的公路、河流、山峰等贴在地图上,而非后放置在地图上的对象,都是场景环境。通常由高度图、深度图等控制,在PC上也有曲面细分、位移贴图、贴花遮罩等介入。

4.3 动作/动画(Animation):

在游戏中所有的动态,都是由动画动作脚本控制,脚本可以是预置,也可以即时演算生成,否则游戏世界将会静止。

4.4 渲染效果(Shader Effect):

分为顶点着色渲染(Vertex Shader)、像素着色渲染(Pixel Shader)、粒子着色渲染(Particle Shader)。

顶点渲染负责的是游戏模型与材质贴图上附加效果的渲染,例如凹凸效果,树叶、皮肤、玻璃等材质仿真效果的模拟等。

而像素渲染的范畴如反锯齿、屏幕滤镜,包括一些GUI、融合blend,。

五、对象(Object)构成:

5.1 模型网格(Model Mesh):

由顶点(被线连接)组成的几何体框架,也就是我们所说的游戏模型。模型顶点越多,构成的面数也就越多,细节更丰富拟真度更高,需要的运算量更大。

即时渲染3D游戏的基本原理和制作方式

即时渲染3D游戏的基本原理和制作方式

即时渲染3D游戏的基本原理和制作方式

5.2 贴图材质(Map Texture):

贴图就是一张张图片,附着在模型网格的UVB坐标顶点上。如果没有材质,在游戏世界中呈现将只有素模。因为是图片,所以材质贴图也有分辨率,例如128x128、512x512、2048x2048、8192x8192。材质分辨率越高显存内存资源消耗越大。

即时渲染3D游戏的基本原理和制作方式

即时渲染3D游戏的基本原理和制作方式


5.3 动作/动画(Animation):

在游戏中物件的动作是围绕模型的顶点或者单独预置的布娃娃系统动作骨骼,以脚本(Script)控制。动作真实与否,决定了游戏中人物是否抽风,是否像僵尸。动作由CPU控制播放预设脚本执行,也有一些是根据碰撞检测自行计算出。

即时渲染3D游戏的基本原理和制作方式

当今要提供动作较为流畅的脚本,通过动作捕捉获得,是最佳途径。

即时渲染3D游戏的基本原理和制作方式

5.4 碰撞检测(Collision Detect)

美工需要为游戏中每一个动态活性对象的模型制作物理碰撞模型(Collision Mesh)或伤害碰撞检测盒(Hitbox),这样才能使一个目标具有被施加伤害或者与其他模型发生相互作用关系的可能。

出于节省资源的目的,游戏碰撞检测盒和游戏模型并不相同,且大多数游戏的碰撞检测盒都比较简单,所以经常会遇到打对方某些部位不损耗HP或者没命中对方却减少HP。

即时渲染3D游戏的基本原理和制作方式

六、贴图材质模拟效果(Texture Meterials)

6.1 细节贴图(Detail Mapping)

现实世界存在大量细节纹理

即时渲染3D游戏的基本原理和制作方式

所以,我们需要在游戏中模拟

即时渲染3D游戏的基本原理和制作方式

细节贴图可以依附在任何UV贴图上,也可以伴随法线,而它自己本身并不需要UV.在可以支持多层材质的引擎,可以使用细节贴图,以增强游戏材质的质感。

即时渲染3D游戏的基本原理和制作方式

通过实例化的平铺这张128*128的细节贴图,在显存占有很低的情况下,就可以达到极好的效果。

即时渲染3D游戏的基本原理和制作方式

即时渲染3D游戏的基本原理和制作方式

即时渲染3D游戏的基本原理和制作方式

6.2 凹凸(Bump):

(1)预渲染凹凸:

直接画在贴图上实现凹凸效果,对资源无消耗。

即时渲染3D游戏的基本原理和制作方式

即时渲染3D游戏的基本原理和制作方式

(2)法线贴图(Normal Mapping):

一种在DX8.1时代开始普及的技术,效果一般,能实现不规则图像的凹 凸,无法实现太大的凹凸。

即时渲染3D游戏的基本原理和制作方式

(3)视差映射贴图(Parallax Occlution Mapping)

视差遮蔽贴图是一种妥协,通过算法欺骗你的眼睛,用较低的资源实现较好的效果,但在一些小角度下效果不好。

即时渲染3D游戏的基本原理和制作方式

即时渲染3D游戏的基本原理和制作方式

凭借其他技术生成真正顶点的物理凹凸

(4)硬件位移置换贴图(Displacement Mapping):

位移贴图与凹凸贴图、法线贴图、视察置换贴图等技术区别在于它是“物理凹凸”,会产生真实的模型顶点(Vertex)与多边形(Polygon),而非欺骗视觉。它甚至可以在平地位移出一座山。

硬件位移贴图算法复杂,效果极佳,资源耗费虽然比视差贴图大,但与建一座山的模型相比就不算什么了。

基础模型+法线贴图

即时渲染3D游戏的基本原理和制作方式

硬件位移置换贴图+曲面细分

即时渲染3D游戏的基本原理和制作方式

现实世界的雪山:

即时渲染3D游戏的基本原理和制作方式

通过硬件位移置换贴图生成出的山脉

即时渲染3D游戏的基本原理和制作方式


6.3 材质模拟效果(Texture):

游戏中的贴图材质像PhotoShop一样可以附带多个、多层的图层属性,如凹凸、材质模拟效果。

一切材质效果,都是模拟物质或者多层物质与光之间发生的反应。

如果没有这种模拟,游戏世界中就会只有镜子或是黑洞。美工必须熟练掌握每一种物质与光相互作用反应的效果,应用如半透明、衍射、漫射、反射、漫反射、次表面散射等效果进行模拟。

所以游戏中才能模拟水面、植物、金属、布料对于光照的不同反应。不同的车漆,如金属漆、碳纤维、哑光贴膜也会有光照下的不同反应。

这是全局光照+多种材质模拟效果打造出的图像效果,模拟喜马拉雅盐灯:

即时渲染3D游戏的基本原理和制作方式

那些材质模拟效果不好的游戏,就会过于油腻或者过于朴素:

即时渲染3D游戏的基本原理和制作方式


七、场景环境(Scene Environment)构成:

基底(Base):游戏的环境支持多层叠加,基底层多为海平面。

表面材质(Surface Texture):在基底之上,可以通过编辑器布置各种地形元素,如道路、停机坪、草丛等。

即时渲染3D游戏的基本原理和制作方式

建筑(Building):在游戏场景中布置的建筑,通过设计可以达到可破坏效果。

即时渲染3D游戏的基本原理和制作方式

静态物件对象(Static Object):没有被定义为可以使用、或者可以对游戏中其他对象造成影响的静态物件,比如说一个垃圾桶、灭火器、花瓶……

装饰(Decoration):草丛、垃圾等。

即时渲染3D游戏的基本原理和制作方式


完结,下期内容预告:

8)特效(Shader Effect)&光影(Lighting & Shadowing)
9)互动性与实时动态效果 
10)融合输出(Blend & Pixel Shader) 
11)执行效率与优化(Optimize)
12)游戏制作的分工

推荐关注:
经验
话题:经验 +关注
生活记录
话题:生活记录 +关注
软件游戏
分类:软件游戏 +关注
如何科学评价“游戏画面”
系列:如何科学评价“游戏画面” +关注

提示

鼠标移到标签上方,

尝试关注标签~

相关热门原创
评论14

发表评论请 登录
  • 最新
  • 最热
  • 14楼
    11-07 13:06
    芝麻信用

    孔哥是样样懂!

  • 13楼
    05-25 11:20

    哥你文章的段落标号不严谨,一后面应该是(一),然后是1,然后(1)或者1.1 [偷笑]

  • 12楼
    05-22 23:21
    芝麻信用

    还是爱看你分享奢侈品和运动 [撞墙]

  • 11楼
    05-22 22:51

    游戏玩家顶一个

  • 10楼
    05-22 22:10
    Visa淘金计划

    为什么孔哥你这么博学,佩服佩服~ [doge]

  • 9楼
    05-17 14:28

    作为一个单机游戏爱好者,对这些文章很感兴趣,慢慢看

  • 8楼
    05-16 21:42

    右见孔哥!!!

  • 7楼
    05-16 21:08
    1

    厉害,趁机请教一个问题,在玩大型游戏的时候,显卡是如何调用硬盘中的数据资源的?或者说显存中的原始数据是从何而来的,是直接从硬盘中读取,还是由内存读取硬盘然后CPU协调显卡从内存中读取?有此问题是由于前一阵子我把老电脑的660显卡升级成了1070,然后发现曾经能正常运行的部分游戏现在会在运行几分钟后由Windows提示系统内存不足而崩溃,涉及的游戏目前发现有星际公民和使命召唤13,这两个游戏在老显卡上特效全开会爆显存比较卡,但不会崩溃,在新显卡上无论画质如何设定都会在几分钟后崩溃,但崩溃之前不卡(星际公民情况特殊),由于我的系统内存只有8G,所以我怀疑是不是因为我的显存提升到了8G,内存没有足够的空间周转数据导致游戏崩溃。

    2

    硬盘中的数据肯定是只能读取到内存,不能读取到显存。

    显存存储的是计算的结果和过程,不是计算所需要的资源。

    并不是8g显存就一定8g内存不够用。

    因为显存内存其实数据都是要压缩的。

    我觉得你重新安装系统、刷新bios和安装驱动,安装各种runtime就可以解决问题。

    跪谢,驱动和系统应该没问题,驱动一直在用官方的工具保持最新,系统也刚升级到1803,接下来刷BIOS试试,换显卡后主板BIOS炸过一回,用编程器灌的旧版BIOS,可能有点问题。

  • 6楼
    05-16 20:48
    维权骑士勋章Visa淘金计划芝麻信用首席生活家
    1

    终于知道楼主为什么是大土豪了[开心]

    因为玩游戏吗 [被吓到]

  • 5楼
    05-16 20:47
    维权骑士勋章Visa淘金计划芝麻信用首席生活家
    1

    厉害,趁机请教一个问题,在玩大型游戏的时候,显卡是如何调用硬盘中的数据资源的?或者说显存中的原始数据是从何而来的,是直接从硬盘中读取,还是由内存读取硬盘然后CPU协调显卡从内存中读取?有此问题是由于前一阵子我把老电脑的660显卡升级成了1070,然后发现曾经能正常运行的部分游戏现在会在运行几分钟后由Windows提示系统内存不足而崩溃,涉及的游戏目前发现有星际公民和使命召唤13,这两个游戏在老显卡上特效全开会爆显存比较卡,但不会崩溃,在新显卡上无论画质如何设定都会在几分钟后崩溃,但崩溃之前不卡(星际公民情况特殊),由于我的系统内存只有8G,所以我怀疑是不是因为我的显存提升到了8G,内存没有足够的空间周转数据导致游戏崩溃。

    硬盘中的数据肯定是只能读取到内存,不能读取到显存。

    显存存储的是计算的结果和过程,不是计算所需要的资源。

    并不是8g显存就一定8g内存不够用。

    因为显存内存其实数据都是要压缩的。

    我觉得你重新安装系统、刷新bios和安装驱动,安装各种runtime就可以解决问题。

  • 4楼
    05-16 20:39

    厉害,趁机请教一个问题,在玩大型游戏的时候,显卡是如何调用硬盘中的数据资源的?或者说显存中的原始数据是从何而来的,是直接从硬盘中读取,还是由内存读取硬盘然后CPU协调显卡从内存中读取?有此问题是由于前一阵子我把老电脑的660显卡升级成了1070,然后发现曾经能正常运行的部分游戏现在会在运行几分钟后由Windows提示系统内存不足而崩溃,涉及的游戏目前发现有星际公民和使命召唤13,这两个游戏在老显卡上特效全开会爆显存比较卡,但不会崩溃,在新显卡上无论画质如何设定都会在几分钟后崩溃,但崩溃之前不卡(星际公民情况特殊),由于我的系统内存只有8G,所以我怀疑是不是因为我的显存提升到了8G,内存没有足够的空间周转数据导致游戏崩溃。

  • 板凳
    05-16 20:28

    终于知道楼主为什么是大土豪了 [开心]

  • 椅子
    05-16 20:25
    芝麻信用

    不懂这么专业的专业的,但我是个画面党,一个游戏游戏性再好,没画面我也不玩 [傻笑]

  • 沙发
    05-16 19:55
    芝麻信用

    专业人士,学习了。

评论举报

请选择举报理由

关注数量超出限制,请先删除部分内容再尝试

关注数量超出限制,
请先删除部分内容再尝试

登录
注册
用户名/邮箱
密码
验证码
看不清?点击更换
看不清?点击更换 忘记密码?

已收藏
去我的收藏夹 >

已取消收藏
去我的收藏夹 >

小提示