游戏开发论坛

 找回密码
 立即注册
搜索
查看: 10955|回复: 0

一个码农眼中的游戏场景制作

[复制链接]

1万

主题

1万

帖子

3万

积分

论坛元老

Rank: 8Rank: 8

积分
36572
发表于 2017-1-13 17:52:21 | 显示全部楼层 |阅读模式
QQ截图20170113175055.png

  作者:ken hu

  生产效率和运行效率的平衡

  新流程的导入与旧流程的改善的平衡

  程序与美术工作量的平衡

  满地都是坑

  作为只能看着干着急当不成TA的码农,把大半年来查过内容做下简单的小结。

  一来作为整理笔记之用,二来如果可以从路过的大佬那里学到点东西就赚到了。

  首先,从工作流层面觉得可以大致分为两种,我分别称之为Unique流,Uniform流。

  这两种流程在出发点上有很大的不同,进而导致在实现技巧上也会产生许多差别。

  但说到底只是思路上的划分,对技术选型也许有指导作用,但实际开工起来并不需要在意。

  Unique流

  以提高Asset的质量为主要目标。特点是会有一堆不常见的材质,以及细节处理往往比较到位,有数不清的DCC插件。适合长周期开发的线性流程游戏。

  代表

  • Uncharted4


  Technical Art of Uncharted 4

  技巧

  • 各种花式Vertex Paint


  o利用PCG来辅助Paint,减少体力劳动

  基本上Procedural也是个整体趋势,在美术资源量的暴涨的现在,全都靠体力劳动也越来越不现实了。常见的有用Physics Simulation来往路上铺小石块,摊碎玻璃,在Substance Designer里面做各种Procedural的材质。这里类似的,Vertex Paint也可以通过加入简单的模板来简化人工操作。

  oPaint的结果语意越明确越好

  比如直接在AO范围里铺上青苔。美术可能不会主动想到Bake完的AO还能挪作他用,但在语意足够直观的情况下,配合美术主导的Material(Shader)制作,一套信息很可能可以重复利用多次。

  • 多样的材质/渲染方式


  o花式顶点动画

  Uncharted 4 General-Purpose Vertex Processing - Naughty Dog (油管)

  草的模拟,树枝的模拟(草+pivot),头发的模拟,用贴图保存帧动画,小物件等。

  特别是小物件这个,特别适合给场景增加点动态并且开销几乎可以忽略,是个增加细节的好方法。上面神海举了钟盘的例子,Destiny <https://link.zhihu.com/?target=h ... /Animating-With>里面也有多种武器上的小部件的例子。以及一些非事件性交互,比如玩家经过的时候木板的形变(好像Uncharted做过)。

  oMesh decal(UE4)/ Skirts(RAD)  

  其实就是deferred decal的mesh版。适用于为平坦的模型增加细节,填补模型交界处的seam(蹲墙角),让Hint物件融于场景(攀爬用的边缘之类)。用法意外的很多样。

  虽然根据这里的讨论来看,很多时候为了运行效率还是得一切从简。

1.png

  oSky Flow

  用FlowMap来模拟云的流动。但FlowMap甚至都不是贴图,而是指定一个风向在运行时算各个点的Vector出来。原本的目的似乎是降低迭代开销,而且实际效果也不差。

  • 海量DCC辅助工具


  Uncharted 4's Technical Art Culture (油管)

  优点

  其实挺难说是优点的。但是美术自由度够高的时候就能靠劳力解决一切问题!(并不是)

  然后就是当工作环境是以DCC(带插件)为主的时候,运行时的开销就可以压榨的相对较低。(但事实因为材质种类不少,会给引擎简化(优化)带来障碍,所以也挺难说)

  Uniform流

  代表

  • BattleFront


  Photogrammetry and Star Wars Battlefront

  • Witcher3(也可能是资源有限结果上来说人物比场景精细多了)


  Witcher 3 Blood and Wine architectural material

  以提高Asset制作效率,迭代效率为目标。特点是,有统一生产流程,通常有1,2个(极少量)通用材质,和Photogrammetry协作良好,需要勇敢的美术。适合制作阶段需要快速推进的开放世界游戏。

  技巧

  • Detail Map 其实也不是什么新鲜的东西了。但贴图分辨率被屏幕分辨率绑架这个问题目前似乎还没有特别好的解决办法。于是粗粒度的基础贴图加上细粒度的细节贴图还是个相对容易用起来的方法。并且通过PCG(Substance等)的普及,美术大大们对噪声纹理的理解也逐步加深,用少量的资源组合出更多的变化也不再是什么高级技巧了。
  • Asset Painter(涂地形的时候不仅是贴图,还包括植物,小石块等的自动摆放)


  这方面因为UE4和Unity的普及程度直线上升。但是动态加载以及纯Procedural的分布还是难点(也就是只在渲染的时候生成分布信息;理想情况可以降低CPU负载)。另外分布算法本身也还没有业界标准的样子。

  • Texture Array


  这个最近还在尝试中。主要是限制访问贴图的形式来提高GPU效率。

  对贴图资源的制作会带来一些限制。比如美术自己做Material的时候可能会束手束脚。

  • Terrain


  oWorld Aligned UV / Triplanar Mapping

  虽然也因为UE4和Unity名词被普及了,但实际的应用还是寥寥可数。

  Witcher3只用在了远景上。

  并且因为是远景所以只Sample一次区别也不明显。(用的一手好动态分支...)

2.png

  o在常规的Triplanar Mapping意外,比如只取垂直方向,配合Mask Texture给全场景加上积雪,腐蚀效果等也是完全可以考虑的。

  oTessellation(怀疑态度… 下面BattleFront这效果科学吗!!!)

  手头上的实验结果性能完全还没有达到可以用的程度... 继续死磕

3.png

  oTerrain Blend [Unreal 4] Terrain Blending Tool (inspired by Star Wars: Battlefront)

  开始被BattleFront的视频给震惊了,摸索了半天总算理解了个大概没想到有人已经在UE4里面复刻出来,还给完善了下2333 不过作者自称是个懒人所以貌似还没上架。

  实际要做的就是把地表的Color和Normal混入模型跟地面接触的部分。但考虑到现实因素往往不能一发搞定。

4.jpg

  oPigment Map Landscape creation andrendering in REDengine 3

  基本上就是为了解决青草种在黄色的土地上的问题。先来张航空摄影,然后画草的时候混点地面颜色就解决了。(听起来好简单)

  oWorld Machine(外挂233)还在收集资料中

  优点

  除了制作效率,限制了个体的特殊性也为引擎的优化带来了更多可能性。

  杂记

  之前在玩大舅的时候注意到,强风下的树叶完全看不出Quad的形状,猜测是不是不止做了顶点动画,树叶本身还动用了帧动画,结果虽然看着眼花但效果挺喜欢的。

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

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-25 01:58

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表