人气 336

[综合技术] 如何优化几何、纹理、材料、阴影表现?TA不可不知的4个... [复制链接]

九艺网 2020-4-12 17:21:12

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
Unity 的合作伙伴Arm汇总了一系列技术指南,帮助技术美术师和游戏开发者在为各种移动设备构建游戏时,既能提升画面美术性,也能提高游戏性能。

如今,技术美术师所面临的难题是,不仅需要打造炫目的移动游戏,还要根据移动设备的限制和性能需求来选用素材。如果是来自其他平台(如 PC 或主机)的移植游戏,想寻找一些优秀资源来为移动设备平台的素材创建工作提供信息和指导,可能会非常困难。

因此我们优秀的合作伙伴,行业领先的移动芯片设计公司 Arm,撰写了一份综合性的指导,针对性地帮助技术美术师优化几何、纹理、材料和阴影的表现。在这篇博文中,我们选摘了他们所分享的四个小技巧,同时你也可以在这里免费下载完整的指导。

https://developer.arm.com/solutions/graphics-and-gaming/gaming-engine/unity/arm-guide-for-unity-developers

显示大小


要让你的游戏应用能在大多数的移动设备上流畅运行并不简单,其中尤为关键的一点便是合理分配有限的内存资源。当你在创建素材时,要牢记它的显示大小,或是它在屏幕上将占据多少像素。素材越大,能使用的纹理空间就越多,如果只是一个在背景中占据几个像素的游戏素材,那么就没必要为这样的显示大小耗费过多资源。

在我们下面的示例中,你可以看到有两支游戏中的军队正准备开战。士兵们的纹理被限制得非常细小,因为每一个士兵只在屏幕上占据几个像素。这样做有几个目的。首先,保持细小的纹理可以减少内存的使用。其次,你能够将尺寸合理的纹理加入贴图集 。

微信图片_20200412171634.jpg


这个概念也适用于士兵们的网格上。你可以参考下面士兵们的三角形。类似于纹理处理,因为 GPU 必须处理对象的顶点,三角形数量少有助于减少资源的使用。这一策略也可以避免大家所熟知的微三角问题:当一个网格中有大量三角形时(因此也产生了大量的顶点),GPU 不得不渲染所有的面。即便对象非常小或在场景中距离非常远,也就是说即使这些三角形的显示大小只有几个像素,它们仍然会消耗 GPU 大量的算力。

微信图片_20200412171647.jpg


压缩类型不容忽视


当美术师创建纹理时,他们通常会将其导出为 PNG、JPG 或 TGA 文件。但是,当在运行游戏时,这些文件会被转换为特定的格式,调取速度更快,占据内存更少。

微信图片_20200412171651.jpg

当在挑选压缩类型时,应侧重选用表现良好的格式,用来配合项目的美术视图。我们推荐使用 ASTC 格式,因为它让你可以自由控制压缩质量。对于大多数素材来说,从 5×5 或 6×6 开始非常理想。你也可以尝试将 8×8 或甚至 10×10 的尺寸用于更小的素材上,因为它们在屏幕上只会占据很少的像素。我们也建议尝试不同的设置,看看哪一种最适合你的项目。


细节层次 (LOD) 与 Mip 贴图


正如上文所提到的,对象的顶点越少,GPU 的运算就越快。有时候,这可能会有悖于一个项目的美术预期,人们会希望一个对象在远处和近处都能有出色的视效。这便是我们需要用细节层次 (LOD) 系统去处理的地方。

当一个对象远离镜头时,LOD 系统会调用模型的低多边形视图。这些模型由美术师创建,并且可以控制它们在什么距离时会改变视图。这一策略可以限制顶点的数量,不仅有助于解决上文提到的微三角问题,而且当对象处于远处时能提升性能,处于近景时能丰富细节。

微信图片_20200412171655.jpg


如果想要在保证游戏画面质量的同时,进一步利用好 LOD 功能,纹理的分辨率应该随着 LOD 的改变相应地增加或减少。在 Unity 中,借助 Mip 贴图功能会让此策略更容易实现。

Mip 贴图是用较低分辨率保存的纹理副本。当一个对象远离镜头时,它会调用更低分辨率的视图,以免纹理产生不必要的“高精度”。基于它的工作原理,Mip 贴图最适合的对象是与镜头距离不固定的对象。将 Mip 与 LOD 相结合,能极大地提升场景的加载速度。

微信图片_20200412171658.jpg


只在必要时才使用透明度


虽然透明度在所有平台上都会耗费大量的算力进行渲染,但移动设备因为存在“过度绘制”,所以情况会更严重。当 GPU 不得不反复渲染一个像素时,就会发生过度绘制。每一个与透明对象所重叠的像素都不得不进行渲染,这会严重拖慢游戏的性能。但是,如果你确实需要在游戏中用到透明度,就必须了解能用得上的各种选择。

Alpha 混合


对于移动设备,不妨使用 Alpha 混合,因为移动设备的 GPU 具备优化功能,有助于渲染 Alpha 混合的对象。Alpha 混合可以为你提供一系列透明度选项,而不仅仅是像硬生生的画面裁剪那样要么显现要么不显现。


Alpha 测试(裁剪)


这个透明选项可以让对象看起来完全不透明或是透明,但无法实现中间效果。这常被称为“裁剪”。我们强烈建议在移动设备中要避免使用裁剪,因为这会使 GPU 的若干优化功能无法启用。

微信图片_20200412171701.jpg


结语


对我们来说,很难从这些实时 3D 美术的最佳实践中选出我们所认为最好的,因为有用的信息和指导真的很多。如果你是一个初学者,这些指导可以为你提供各类有助于日常工作的小技巧。如果你已经是专业能手,也可以将这篇博文分享给你的团队。游戏开发之所以美妙,正是因为它是集体努力的结晶 — 改善游戏体验,将是我们共同的胜利!

近期
Unity全球技术美术总监江毅冰女士,首度线上开讲,带来《如何用Unity打造高品质动画电影》
课程内容包括剧本、测试场景、角色设计和制作、动画、灯光等内容。帮助你运用次世代的引擎,帮助开发者和动画团队打开未来的影视制作流。

报名链接:https://www.bagevent.com/event/6454133
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|小黑屋|九艺游戏动画论坛 ( 津ICP备2022000452号-1 )

GMT+8, 2024-4-26 18:14 , Processed in 0.094141 second(s), 26 queries .

Powered by Discuz! X3.4  © 2001-2017 Discuz Team.