《精通Unreal游戏引擎》一第7步 构建光照-阿里云开发者社区

开发者社区> 异步社区> 正文

《精通Unreal游戏引擎》一第7步 构建光照

简介:
+关注继续查看

本节书摘来异步社区《精通Unreal游戏引擎》一书中的第7步,作者: 【英】Ryan Shah(沙哈)译者: 王晓慧 责编: 陈冀康,更多章节内容可以访问云栖社区“异步社区”公众号查看。

第7步 构建光照

精通Unreal游戏引擎
现在是讨论构建光照的时候了。不熟悉Unreal Engine(或者游戏开发本身)的读者可能对此感到困惑。但是不用担心,虽然光照对于项目的视觉效果起着至关重要的作用,但是构建光照本身并不困难。

首先介绍什么是构建光照?

Unreal Engine的光照有几种不同的实现方式。Lightmap(光照贴图)是由静态光照烘焙出来的。模拟场景的真实光照渲染并输出到Lightmap上,在渲染时直接使用,这样就使物体有了光照的感觉。这种做法节省资源,但是物体在移动时不会产生阴影或其他光照效果(如移动的光等)。

动态光照与静态光照正好相反,它耗费资源(没有像静态光照一样使用Lightmap),但是物体移动时有阴影,并且支持光源移动、改变光的颜色等。在我们的示例地图中,已经设置了这种光照。这里使用的是平行光,像太阳一样照亮整个场景,并且一个Lightmass Importance Volume(灯光重要度体积 )环绕在场景周围。

Lightmass Importance Volume(灯光重要度体积)是用来告诉Unreal Engine,静态光照下地图上哪里需要画上阴影。如果您不设置一个Lightmass Importance Volume,那么引擎会为游戏的所有场景计算Lightmap,即使有些部分没有几何体。为什么这样不好呢?因为计算不必要的Lightmap既浪费时间也浪费空间。这就是我们使用Lightmass Importance Volume机制的原因。

为了节省生成文件的空间,我们所需要做的仅仅是保证LIV(Lightmass Importance Volume)环绕您所希望玩家活动的场地。意思是在这个LIV场地,静态光照是高质量,不要浪费不必要的空间。LIV之外的场地不需要高质量的阴影,不要让玩家在Lightmass Importance Volume范围之外活动。

我们的项目已经有了一个Lightmass Importance Volume,并且设置好了平行光照。然而,由于我们把原来的地图弄乱了,添加和删除了一些几何体,所以您会看到我们所设置的阴影已经过时了。您还会看到创建门之后,地板上光照也不一致了。

下面来解决这一问题。请前往主窗口的上方Action(工具栏),如图47所示。这里有一些行为选项,例如Save(保存)、Content(内容)、Marketplace(市场)、Settings(设置)等。


47

在Action(工具栏)中有一个Build(版本)按钮,位于Matinee按钮(图标是场记板)的右边,Play(播放)按钮(图标是windows窗口前面一个播放图标)的左边。Build(版本)按钮的图标是4个建筑物,其中一个建筑物是深蓝色。单击该按钮,系统将会自动构建现有的光照以及一些其他设置,之后我们会讨论到这一步。

单击该按钮右侧的下拉箭头,弹出一个下拉菜单,可以构建具体的场景元素,例如灯光、智能导航等。还可以改变设置,例如设置光照的质量等。

小窍门:
在项目发布之前,Lighting Quality(光照质量)选择Preview(预览)。这种方式在构建光照时可以节省时间,并且Preview lighting(预览光照)和Production lighting(制作光照)在效果上没有太大差异。再告诉大家一个事实,在开发阶段使用Preview lighting(预览光照)是在保证效果的前提下最快的方法。

如果我们仅仅构建光照,那么我们所需要做的只是单击Build(版本)按钮,或者在下拉菜单中选择Build Lighting Only(仅构建光照)。这时,您的项目就会自动构建光照。屏幕的右下角显示光照构建的进度。当您看到Lighting Build Complete(光照构建已完成),如图48所示,说明光照已经构建完成。


48

看看现在的阴影是多么丰富,如图49所示。仔细检查这些阴影是否是正确且带有真实感的。如果您对阴影的效果不满意,那么可以在Build(版本)按钮的下拉菜单中随便修改设置直到您满意为止。


49

回顾一下我们已经完成的内容:根据需求编辑地图、学习BSP的基本知识和接触光照的基本知识。但是我们的冒险游戏才刚刚开始,下面我们学习创建摄像机系统。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
怎么设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程
6397 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
3972 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
7619 0
1 游戏逻辑架构,Cocos2d-x游戏项目创建,HelloWorld项目创建,HelloWorld程序分析,(CCApplicationProtocol,CCApplication,AppDeleg
 1 游戏逻辑架构 详细介绍 A 一个导演同一时间只能运行一个场景,场景当中,可以同时加载多个层,一个层可以可载多个精灵。层中亦可以加层。 B  场景切换 sceneàaddChild(layer); layeràaddChild(sprite);
1209 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
10748 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
2032 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
16306 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
11938
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载