
版权声明
- 本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明
- 文章内容不得删减、修改、演绎
- 本文视频版本:见文末
渲染品质提升

- 要提升画面的品质,就是去提升渲染的画面效果和细节度,主要包括以下几个方面:
动态效果
- 动态效果是指使整个场景看上去更有生气,主要包括地形的颜色变化,湿度变化以及明暗的变化,使其看上去更逼真,让地形没有很严重的塑料感

颜色变化:染色
- 首先看一看颜色变化怎么实现,地形颜色的变化可以通过染色的方式实现

- 那什么叫染色呢?大家先通过下图看一下有没有进行染色的差别(左边是染色的效果,右边是没有染色的效果)

- 染色原理就是在地面上刷了地形的顶点颜色,使地形染上了想表达的颜色
- 染色需要用到一些刷顶点色的工具,怎么刷顶点色呢?可以参考一下我其他文章的分享内容
Clipmap
- 如果地图比较大,那么地形要渲染的顶点数量就会比较多,之前分享过一种方式,就是根据地形的高低起伏和远近进行LOD,这里介绍另一种方式---Clipmap

- Clipmap的原理是把靠角色比较近的三角形面片渲染的比较精细,越远的位置渲染的越粗略
- 并且渲染策略是会随着离当前摄像机,也就是离的角色距离越远,渲染效果就会越降低一个层级。这个类似于贴图的Mipmap技术,其实顶点绘制也有Mipmap这个功能
- 下图显示了RenderDoc分析的优化效果

湿度变化:潮湿度

- 湿度变化其实也是刷顶点,就是用顶点刷绘制哪些部分是潮湿的
- 需要注意潮湿和干燥的地形之间需要一个过渡,这个过渡是通过控制笔刷的轻重产生一个权重的变化,从而实现边缘过渡的效果
染色:湖泊+积水
- 可以看一下染色的另外一种表现,对于湖泊或者是积水,它可以通过对地形进行顶点色的绘制来染色

染色:草

- 在渲染这些草的时候,可以表现地面上面这些草颜色变化
- 这个颜色变化也是通过刷草的颜色来实现的,刷草的颜色其实跟刷地形、刷头发(参考文末“头发渲染”)是一样的,都是通过顶点绘制来实现的

- 再介绍一种简单的方法,如果某一块地形草的颜色是红色(如图红圈所示),可以在绘制地形的时候,专门建立一张贴图,把这张贴图画成红色,就表示这一块的草是用红颜色来进行绘制
染色:树木

- 树木的实现可以通过一种叫做Billboard也就是公告版技术,但是公告板渲染树木会有点不真实的感觉
- 可以用另外一种方式---Impostor,Impostor就是用替身的方式实现,对于这块内容感兴趣可以关注一下我,我后面也会进行分享
峭壁渲染

- 对于这种侧边的地面,如果不进行特殊处理,其实就是把地形贴图的一个切面在地形上面进行拉伸,这种方式拉伸以后效果就比较差
- 怎么样去表现这些峭壁细节呢?就需要使用三平面渲染的方式,对侧面仍然进行贴图的绘制,但是在进行贴图绘制的时候使用的UV坐标采样的方式是不一样的
- 它不仅可以从地面进行采样,也可以从侧面进行贴图的采样,因此不会出现走样的问题

- 上图展示了用三平面影射跟和不用的区别,如果不用的话,那么本来贴地面贴的很好的纹理在贴侧面的时候就会被拉伸。如果使用了三平面纹理影射,就不会有这个问题了

- 因为三平面纹理影射需要采样三次,所以性能开销也会更大,所以还可以再用一种技术---基于重要性的三平面纹理影射采样进行优化
- 在我的一个项目里面,在进行瀑布渲染的时候,也是采用了三平面影射的方式,因为瀑布是从上垂直流到地面,然后到水面,所以也需要用三平面影射才不会出现走样
- 对于这个项目有兴趣的可以看一下参考,联系Alice交流学习

近景细节提升
- 近景的细节提升主要是指地面的贴花,比如地面的裂痕,就是使用贴花实现的

- 贴花有两种,一种是世界空间贴花,一种是对象空间贴花,想要更详细的学习可以看看我其他的分享。这里地面的贴花用世界空间贴花就可以了
- 贴花本质上只是一张贴图,所以如果走近之后,从侧面看,而不是从顶上看,就会发现就是一张贴图
- 对于路边的这种小石子,如果想让它更加真实,那怎么办呢?就需要使用曲面细分的技术

- 可以观察到,如果用贴花实现看上去就不够真实,如果用曲面细分就会更加真实、立体
- 关于曲面细分的内容,可以参考一下进阶内容,这里篇幅有限,不再赘述

- 完整视频请点击本链接观看:https://www.bilibili.com/video/BV13ZGQzUE9a
- 更多技术干货alice17173