在Unity中制作逼真的建筑场景

原创 Unity Unity官方平台 2018-07-28

在创作游戏中,场景的制作是必须要面对的问题,如何高效制作好感染力强、让人印象深刻的场景是每个开发者都会面临的难题,因为场景的细节和逼真度处理起来并不简单。

 

本篇文章中,游戏开发工程师Toivo Glumov 和 概念艺术家Natalie Kayurova将为我们讲解如何在Unity中打造细节丰富、十分逼真的建筑场景,他们将分享在制作过程中的心得,包括遇到的问题和解决方案,以此启发读者制作出自己的建筑场景。

 

图片

项目介绍

Toivo和Natalie从事游戏开发多年,具有相当丰富的开发经验。Natalie是VR项目《Arktika》的概念艺术家,Toivo则为《Call of Duty: Infinite Warfare》创作了很多模型。本文中的使用的游戏场景便是二人合作创作。

 

图片

 

在创作建筑时,使用一座外部桥连接二个建筑,会使得普通的房子更有趣,让人印象深刻。二位创作者去到了有很多这类建筑的圣彼得堡。他们找到了一个不错的庭院作为参考素材,从这个环境出发,构想了一个故事和游戏场景,以此为启发开始场景制作。

 

图片

 

项目分工方面,Toivo负责技术部分,包括:建立渲染管道、创建模块、制作程序化纹理、制作关卡和渲染设置等。Natalie则负责艺术方面,如颜色、光照、内容、后期处理设置等,除此之外,她还负责角色建模和很多其它元素。

 

图片

 

Toivo喜欢程序化的解决方案,这样能使工作流程更高效,Allegorithmic为他提供了这样的工具来进行测试,让他如虎添翼。由于Allegorithmic给Unity提供了强大的解决方案,所以Toivo选择了Unity完成这个项目。

 

他使用了Substance Painter中适用于Unity的Material Layering着色器,基于这个着色器文件做了些修改,原着色器文件和修改后的着色器文件将在文末提供下载地址,使用时将Toivo的着色器文件,直接替换Material Layering着色器文件即可。

 

图片

 

这个着色器使用1个RGB遮罩混合4个循环贴图材质,同时使用了环境光遮蔽图和法线贴图。除此之外,它还有一大便利之处,那就是Unity可以直接从Substance Painter自动加载纹理、设置和材质。而唯一缺点是,每次游戏启动时都需要生成纹理,从而增加了初始化的时间,不过这个问题可以通过手动指定常规位图来解决。

 

建筑部分制作经验

Natalie首先绘制了一个由三部分组成的外观轮廓,绘制完成后又把轮廓细分为了更小的模块。Toivo在3ds Max中制作了基础的模型,然后在ZBrush中绘制了一些元素用于法线贴图烘培。

 

需要注意,在展开遮罩、AO、法线这三张纹理的UV时,所用的UV壳要展开到相同的UV坐标里。同时也需要考虑贴图材质的方向,以及与相邻模块之间的无缝衔接。

 

图片

 

墙的模块要映射为方形布局,这样才能正确显示循环贴图块。Toivo为这个模块选择的大小尺寸为400X400 厘米,循环贴图大小为2倍时,纹理像素的密度为512 像素/米,大小为4倍时密度为1024像素/米,依此类推。有些模型比其它模型大了2倍,因此为这些模型选用了更高的贴图循环值,来保证纹理密度。

 

图片

场景的细节完善

大体部分做完之后,Toivo就已经完成了一些可以在环境中重复使用的小工具。因为使用了遮罩来混合材质,所以即使只用相同的遮罩来混合材质,同样的模块仍然可能看起来与混合前的不同。如果添加了第二层遮罩,同样的模型还可以产生更多的变体,从而快速制作出多个不一样的模型。

 

图片

制作瑕疵

在绘制时,考虑到材质的纹理最后会放到Substance Painter 中进行处理,在ZBrush中只创建了一些常用体,并没对细节进行处理。

 

图片

 

例如:在地面上添加一些几何体来制造凹凸不平的效果。为了避免烘培时产生不必要的视觉误差,除了用作门口的切口,Toivo将所有法线都调整为向上方向。

 

图片

材质

除了少数几个小道具外,场景中的大部分对象都共享相同的材质。Toivo使用Substance Designer为项目制作了大约40个程序化材质,这样在Unity中调整纹理会非常方便。

 

墙的材质结构图如下:

 

图片

 

墙壁上的裂缝制作方式如下:

 

图片

图片

 

制作屋顶时,主要使用了这些材质的不同设置和组合方式来生成。简单来说,屋顶包含了金属、粗糙涂层以及混有泥土的锈迹等这些材质的不同组合,来营造细节丰富的逼真效果。

 

重复的元素使用不同的材质来制作效果会更好一些。例如:墙的一部分材质是光滑石膏,其它部分由纹理线条或者有装饰性石块组成。这种方法通常对于任何对象都适用,例如:在场景中的金属管道是由不同的材质组成的。在这种情况下,要格外注意材质的遮罩和纹理,它们的精细程度最好有所区别。

 

图片

 

场景中的一些材质的图片:

 

图片

图片

 

Substance Painter主要用于创建混合遮罩,Toivo使用了它的标准Material Layering着色器来自定义材质。在此也可以使用标准金属-粗糙度着色器,这样会稍微方便些。

 

图片

窗户制作

窗户除了窗框部分也都是程序化的材质,便于建模并烘培到位图中。窗户的设计与现实中的相同。通常在那些旧房子中都是双层窗户,窗户后是窗帘。在使用Substance Designer制作时,Toivo添加了伪折射效果,模拟出窗帘的形状以及在窗后添加的光亮,如灯、电视等,同时他也添加了污垢和灰尘,在木质窗框加上小磨损等细节,这样一来窗户会看起来更为真实。

 

图片

光照效果

在这个项目中,光照是为了增加物体的对比度,以此来使得相似的元素看起来有所不同。这也就是为什么有些部分场景是亮的,有些则处在阴影中。

 

对于光照而言,Toivo和Natalie在Unity中使用了渐进式光照贴图,对于GI来说这是一个方便且强大的工具。它可以用来制作逼真的阴影,并且可以很好处理贴图。

 

为了得到更高质量的光照贴图,Toivo为对象制作了第二套UV贴图,保证最少数量的UV接缝以及高填充值。有些光源为点光源,其中有些是用了IES纹理。场景中还有用于小对象和贴花的光照探针。同时还使用了反射探针来保证正确的反射效果。

 

图片

图片

后期处理

后期处理也是个很重要的部分。本项目中大部分场景都是灰黄色调,使得场景各个部分在色调上看起来非常相似。为了使呈现的画面有所区别,Natalie在阴影中添加了蓝色,并调淡了黄色。这样,颜色渐变看起来更明显,呈现出更多色彩。

 

这里主要使用了Unity的后期处理特效包Post-processing stack进行处理,其中的Eye Adaptation功能很大程度上改善了视觉效果,Bloom功能则创造出了体积光的效果。

 

图片

图片

资源参考

项目中使用到的工具下载地址和参考网站:

  • 着色器文件https://www.dropbox.com/s/uhb4p2locnyknlu/unity%2520material%2520layering%2520patch.zip?dl=0 

     

  • Material Layering默认着色器文件:https://share.allegorithmic.com/libraries/2126

     

  • Allegorithmic官网

    http://www.allegorithmic.com/

     

此项目中的资源和场景不久后将在Asset Store资源商店中出售,这样大家就能体验这个环境场景,并将其应用到自己的游戏中。

 

小结

以上便是Toivo和Natalie用Unity开发建筑场景的经验介绍,想必读完文章后读者们也得到不少启发,了解到专业开发者是如何制作逼真的场景,是不是有点跃跃欲试了呢,那么就来动手创作出自己喜欢的建筑场景吧。更多Unity项目创作经验分享尽在Unity官方中文论坛(UnityChina.cn)!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/41703.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【项目展示】Unity 海洋场景渲染(Boat Attack Water、光谱渲染)

项目背景 前几个月开始做的项目,需要一个使用海洋场景。但是因为项目很急,所以海水需要使用别人已经写好的开源代码。当时就想起了Unity曾经有一个URP宣传片中的海水似乎还不错,于是便基于此项目的海水进行修改(Unity在GitHub上有…

渲染的艺术:建筑效果图渲染的5个成功要素

在数字建筑可视化的早期,建筑物只是简单地填充了与不同活动和规模相对应的人体剪裁。现在,随着图像编辑软件的进步,创建建筑渲染不仅仅涉及对建筑物进行 3D 建模然后对其进行抛光。艺术家们正在探索创造性的途径,在一个框架中讲述…

Unity接入ChartAndGraph图表插件

Unity中接入ChartAndGraph图表插件 说明一、实现柱状图二、实现折线图 遇到的问题 说明 最近项目上需要实现部分图表数据显示,因为需要用到一些3D图表,所以选择了ChartAndGraph这款图表插件,图表数据是通过后台接口读取Json并解析,然后调用图…

【Unity】Unity插件:地形编辑器MTE(Mesh Terrain Editor)

文章目录 地形编辑器MTE下载方式文档及教程主要功能地表类型创建工具示例文件创建地图绘制地图快捷键提升、降低高度绘制高度平滑高度绘制纹理 细节问题处理 地形编辑器MTE MTE(Mesh Terrain Editor)是一款Unity的地形编辑器插件,该插件能够…

unity基础开发----NGUI图集Atlas制作简介

此教程属于 NGUI 的具体操作,主要描述怎么制作一个游戏中的 UI ,相对来说比较简单,熟能生巧哇,动手操作一遍就可以完全掌握的。 1 ,在 PS 里面设计好要做的 UI ,然后切片成很多个 png 的图片(这…

图形渲染技术分享:《GTA V 》图形分析摘要

环境渲染 最外层的 cubemap 是每一帧实时生成的,目的是简化后续真实反射的渲染。这个 cubemap 是一张低精度的 128*128 纹理,每个面 30 左右 drawcall,都是地表天空等较大像素贡献的多边形全部是静态物体,所以车辆的外壳反射不…

GaussDB火焰图分析

目录 问题描述问题现象告警业务影响原因分析处理方法 问题描述 CPU利用率是衡量系统负载和健康度的重要指标之一,系统在运行过程中时常发生CPU利用率高的情况。在分析性能问题时,可通过火焰图查看CPU耗时,了解瓶颈在哪里。 问题现象 部分s…

3.15 数据库吐槽大会

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 大家好,我是一名狂热的数据库程序员,趁着 3.15 的良辰吉日,鼓起勇气站上了数据库吐槽大会舞台,以下故事纯属虚构,如有雷同,请对号入座。 名不副实的数据…

一个月涨粉翻倍,摄影博主慌了:照片都是假的,肖像根本不是人

白交 发自 凹非寺量子位 | 公众号 QbitAI 一个月内涨粉翻倍,摄影博主却慌了,忍不住坦白: 我的照片都是AI生成的。 去年十月份开始,这个名叫Jos Avery的大哥(后面简称乔大哥)开始在社交网络上发照片&#xf…

百度文心一言正式亮相

OpenAI 刚发布了 GPT-4,百度预热已久的人工智能生成式对话产品也终于亮相了。昨天下午,文心一言 (ERNIE Bot)—— 百度全新一代知识增强大语言模型、文心大模型家族的新成员,正式在百度总部 “挥手点江山” 会议室里发布。 发布会一开场&…

LangChain大型语言模型(LLM)应用开发(三):Chains

LangChain是一个基于大语言模型(如ChatGPT)用于构建端到端语言模型应用的 Python 框架。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互&#x…

chatgpt赋能python:用Python绘制散点图并标注各点名称

用Python绘制散点图并标注各点名称 在数据分析或机器学习中,散点图是一种常见的可视化方法。Python中的matplotlib库可以用来绘制各种类型的图表,包括散点图。然而,在散点图中标注每个点的名称是非常有用的,这可以帮助理解和解释…

类模板函数模板从属类型

准备看个项目找实习&#xff0c;边看边学&#xff0c;一看到处都是template 和typename&#xff0c;好几年前学的C都忘记光了&#xff0c;在这里先做个笔记复习一下。 template <class T> T abs(T x) {if(x < 0) return -x;return x; } int main() {int x 1;cout <…

jsonpath 语法介绍

文章目录 前言 一、对jsonpath的理解 二、补充 三、哪里可以用的到呢&#xff1f; 总结 前言 在使用Python做接口测试中需要获取json中的字段值&#xff0c;因此需要使用jsonpath里面的提取规则&#xff0c;所以特意学习了jsonpath中的语法。 一、对jsonpath的理解 在线运…

如何结合均线分析伦敦金行情走势线图

伦敦金并不是普通的黄金投资产品&#xff0c;它不但拥有黄金基本的投资属性&#xff0c;还拥有高杠杆双向交易的特性&#xff0c;如果投资者只懂得怎么投资黄金&#xff0c;但没有娴熟的交易技巧和稳健的交易心态的话&#xff0c;恐怕还是难以在这个市场取得成功。 伦敦金价每天…

5.8晚间黄金行情走势分析及短线交易策略

近期有哪些消息面影响黄金走势&#xff1f;本周黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a;周一亚洲时段&#xff0c;现货黄金小幅反弹&#xff0c;目前交投于2024.3美元/盎司附近&#xff0c;一方面是金价上周五守住了 2000 整数关口&#xff0c;逢低买盘涌…

高胜率现货黄金走势图形

做现货黄金&#xff0c;如果投资者能成功发现市场的底部&#xff0c;收益无疑会十分可观。金价走势图中经常会见出现各种底部&#xff0c;楔形底、双底、圆弧底、头肩底….虽然是三角形的底部相对更为罕见&#xff0c;但一旦出现&#xff0c;后期的涨幅通常将会超出我们的想象&…

前十名现货黄金价格行情分析软件

很多刚接触现货黄金投资的新人&#xff0c;也许都不太了解现货黄金价格行情分析软件&#xff0c;每个不同时段中的现货黄金价格行情分析图&#xff0c;反映的是该时段的多空角力情况&#xff0c;从而了解金价大致趋向&#xff0c;由此指引投资者作出合理的交易计划&#xff0c;…

5.21下周黄金走势分析及开盘独家交易策略

近期有哪些消息面影响黄金走势&#xff1f;下周黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a;周五(5月19日)美市尾盘&#xff0c;现货黄金收报1977.54美元/盎司&#xff0c;大幅上升19.99美元或1.02%&#xff0c;日内最高触及1984.22美元/盎司&#xff0c;最低…

运用常用指标进行白银走势预测

银市中有许许多多的技术指标&#xff0c;这些指标都是帮助我们预测走势、完成交易的。所以&#xff0c;在白银走势预测的过程中就涉及了白银走势预测的问题。那么在白银走势预测中&#xff0c;我们常用那些指标呢&#xff1f;那些技术指标最能对我们的预测和交易结果最有帮助呢…