网站公告 | 全新unity3d 完整学习路线,最强课程配套、服务!详情点击
首页 首页 资讯 Unity3d 查看内容

简述图形学(二):现代图形技术在电子游戏中的应用。

2018-9-25 18:14| 发布者: admin| 查看: 188| 评论: 1|原作者: admin

摘要: 翻译:赵菁菁(轩语轩缘)审校:李笑达(DDBC4747)帧的组成在这一部分,和大部分情况一样,我们只看一个帧,并讨论游戏用来创建最终帧的构建块。此外,还有几张新的、光鲜的照片。有一种方法是用较小的构建块建造帧 ...


帧的组成
在这一部分,和大部分情况一样,我们只看一个帧,并讨论游戏用来创建最终帧的构建块。此外,还有几张新的、光鲜的照片。
有一种方法是用较小的构建块建造帧。你看到的最终图像并不是立刻绘制出来的。这在很多年前是这样的,但是现代图形引擎几乎总是会做一些早期的处理。图形引擎将绘制许多不同类型的中间图像,帮助它计算最终图像,最后再将屏幕上的帧分层。
这些不同引擎绘制出的图像有很大的不同,这取决于图形程序员完成的技术。例如,她想确保阳光投射出适当的阴影——这需要阴影的一种图像。在其他地方,她可能想对运动员驾驶的汽车生成适当的映像,这将需要另一个反射图像。
DSC0000.jpg
在构建我们的看门狗帧时使用的一些中间图像。
在这一系列中,我不一定要涵盖所有在看门狗帧中使用的图像,但我会提及主要的、可以教给我们一些东西的内容。这正是图形研究和新技术不断发展的领域。创新的、新的工作在更细粒度的水平上进行,但当你听到营销号谈论一些伟大的新功能时——这通常是他们会谈论的事情。
在这些中间图像中,每一个都是由更小的部分组成的。场景中的每个对象,或者可能是一组相关对象,将分别作为纹理模型进行构建。在构建游戏时,有一些艺术家在3D建模软件包中构建这些模型,并创建所需的全部资源。然后将这些模型放到一个水平编辑器中,慢慢建立虚拟城市。
DSC0001.jpg
这是个常识,尤其是如果你见识过实时3D图形从20年前的幼年期成长起来的话,你就会知道今天的模型有多么复杂。事实上,早期图形的纹理是昂贵的,我们都尽可能地跳过,只是填充对象上的简单颜色。对于像眼睛或面部这种非常需要细节的对象,纹理将被保留。
三维模型完全由构成物体形状的互锁三角形构成。每个三角形有三个点,称为顶点——由于三角形互锁,顶点在几个三角形之间共享。稍后我们会回到这里,因为顶点和三角形非常重要。同样值得一提的是,一些像人物或树这样的对象在绘制之前会被动画化。该模型是在默认的静态形状中创建的,每个帧都应用了动画——我们将再次回到这个场景中。
这是艾登·皮尔斯的头部的三维模型,经过动画的。三角形是可见的,因为它们是平的,而不是像一般的那样进行视觉上的平滑。
为了更详细地介绍3D模型和应用的纹理,纹理只是普通的平面图像文件,通常是正方形的,或者像2:1这样简单尺寸的矩形。纹理通过一个更复杂的过程应用到3D模型中,我可以更详细地讨论它,但从概念上,它非常像仔细包装的礼物,而不是一个简单的重复包装纸模式,图像包装是准确。如果你看过在平面中见过建立、粘合在一起的“纸工艺”(papercraft)模型,这是同样的原理。
这个比喻其实比你想象的更容易,因为这些纹理通常是首先通过把三维模型“解包”成一个平的蓝图,就像你就会得到一个“纸工艺”模型,然后画上纹理。这种解包通常是自动完成的,但对于特别复杂的物体,可能是手工完成的。
DSC0002.jpg
这是对应于上述模型的艾登·皮尔斯的头的纹理。底部部件用于牙齿和舌头。注意上面没有纹理的额头,因为它总是会被艾登皮尔斯标志性的帽子™盖住。
边注
解包有时会放大真正需要更多细节的部分,缩小其他不需要的部分。
谈论不同模型的“皮肤”很常见,尤其是在可定制的人物方面。最近一段时间,甚至所谓的皮肤有时也会涉及到一些小的模型变化——皮带变了或者帽子换了——但这个词最初来自于将要使用的完全相同的模型,但纹理(或皮肤)将被改变,以产生一个不同外观的人物。即使是现在,NPC或物体在这些纹理方面可以产生很多的变化,又节省了大量创建独特3D模型的时间和成本。艾登可以穿的不同的服装多半只是同一模型上的不同纹理。
下面是只使用纹理的3D模型头部的简短旋转,没有别的东西。
在我们所观察的帧中,主渲染部分绘制了大约1700个对象。其中一些是相同的模型——像盆栽或垃圾箱都不是特别绘制的,但相同的模型或少数模型会被放置在几个区域。但是,绘制完整帧需要大约接近于4700个对象——大家这样就了解了需要做多少额外的工作,不仅仅是绘制所有的模型。
让我们看看另一个对象的例子,艾登戴的帽子。
DSC0003.jpg
DSC0004.jpg
这是纹理和带有纹理的帽子模型。大家可以看到纹理是在不同的部分上建立的,这些都会聚集在模型上。
边注
帽檐和帽子的主体在质地上根本没什么关系。这是因为包装可能相当复杂,如果必要的话,包装可以发生在几个不同的部分。想要不留下任何可见问题或接缝地绘制一个古怪形状的纹理,有时需要大量的技巧。
由艾登的头引出的想法同样适用于帽子。事实上,除了计算和解包中涉及到的具体纹理和数字外,工作方式完全相同。
为了展示在开发过程中可能出现的错误,也可以用图形编程来展示那种乐趣,我们可以做一个小实验。由于大多数的纹理是一个标准的平方大小,因为我们包装和把纹理解包到模型的方法也是一样的,如果我们改变一点会怎么样?如果我们把艾登的头纹理放到帽子模型上会发生什么?
DSC0005.jpg
艾登·皮尔斯的Not So Iconic帽子(商标申请)。
他的帽子上的标志是在帽子纹理上,头部的纹理有耳朵和牙齿。帽子的边缘是帽状结构,头部的纹理只是一些头发。贴图应用相同,但使用了错误的纹理。这个例子当然是一个错误,但是如果你能够使纹理动画化或闪烁——游戏使用这些技巧为对象创建几种不同效果,大家都能看得到的那种效果,想想你能做什么。特别是《黑道圣徒4》使用了大量的“模拟”特效。
仔细想想这一点也很有用——游戏在每一个点上都仔细地将正确的模型和正确的纹理配对,这就意味着大多数独特的模型都会有自己独特的纹理来匹配。
当然,这不是一个绝对的规则——在某些情况下,为了节省一些空间,纹理可能是一个通用的平铺模式,可以在许多对象上使用。或者,一系列相关的对象——比如报纸摊,每张报纸都只用一小部分纹理,所有的报纸封面都共享这一块纹理。
尽管如此,这意味着如果你希望能够绘制许多图像来建立你的最终帧,你必须把所有所需的构建块放在一起,这会添加许多需要的模型和纹理。在下一篇文章中,我们要看看为什么有些像反射之类的东西是很难做到的,游戏中的一些技巧可以帮助节省一些时间和资源。
【版权声明】
原文作者未做权利声明,视为共享知识产权进入公共领域,自动获得授权;

分享至:
| 收藏

最新评论(1)

引用 12708876 2018-9-30 08:12
牛逼。收藏了。慢慢看。。。

VR/AR版块|Unity3d|Unreal4|新手报道|小黑屋|站点地图|沪ICP备14023207号-9|【泰斗社区】-专注互联网游戏和应用的开发者平台 ( 浙ICP 备 13006852号-15 )|网站地图

© 2001-2013 Comsenz Inc.  Powered by Discuz! X3.4

1
QQ