VR应用开发 初学者系列教程_元启_005 [韬韬同学VR] (免费 ...
admin
2023-07-09 03:20:55
0

元启_005 神说,要有光

本章我会简单介绍UE4的天空,光照,大气等系统,让我们的应用更加的生动,通过教程我们会了解到一些VR应用开发过程中常用的灯光组件与一些基本设定,用以打造高质量的虚拟环境。下一章我们主要讲解植被和地形的一些操作,为我们创建室外大场景虚拟环境提供所需的知识。


一.UE4照明系统(初级)

打光本身也是一门需要精研的学问,是一件极其考验美学和引擎组件理解的事情,我们今天只能浅尝辄止,了解基本组件的用法,在之后具体的案例中会分享更多的细节。这一部分虚幻官方文档讲解的非常详细,大家可以直接参考(光照基础 | 虚幻引擎文档 (unrealengine.com))我只针对VR项目提一些相关建议。




近期某一项目场景

1.放置光源

在之前我们已经讲解过在放置actor中拖拽添加光源的方式,实际上我们仍然可以通过视口右键放置actor调出光源,这样操作的好处是一步到位式的放置,因为生成光源的位置将是我们右键的位置。



2.光源的移动性

除光源的位置以外,光源的移动性也非常重要,这直接关乎整个项目的性能与视觉表现。我们在场景设计的过程中,一般会全部使用移动光源,这种类型的光源,能在运行时修改所有属性的全动态光源,但是也意味着更大的性能开销。这种光源会根据本身的移动性,影响范围网格体的面数与变化不断对性能提出要求。在场景建设阶段我们可以通过它的特性实时观测场景的大概变化,但在绝大多数VR项目不会大量使用移动光源。



固定光源这种类型的光源,可以在运行时改变颜色和亮度,但是不能移动、旋转或修改影响范围。一般我们在VR项目中会将天光设置为固定光源,但是固定光源依然不是性能的最优解,在VR项目中使用频率较小。固定光源的需要配合构建光照使用,如果在固定光源的影响范围内,有网格体或笔刷,则需要对其进行光照重构。

静态光源性能的最优解,是完全静止的光线,在游戏运行中无开销。我们会通过光照构建把静态光源的信息烘焙成贴图信息直接呈现。我们在VR场景中会大量使用这样的光源。静态光源的使用需要配合光照构建来使用。

3.光源的常见类型

1.定向光源:定向光源可以理解为太阳,它将在绝大多数情况作为主光源影响我们场景的阴影。为了加深理解,我们可以新建一个关卡,选择Time of Day,将定向光源亮度调高,会发现整个场景明亮了起来。通过Ctrl+L+鼠标划动,我们整个场景的光影都会发生改变。




定向光源理解
https://www.zhihu.com/video/1500057475030511616

2.天光:天光的作用是照亮场景的细节部分,天光可以配合HDR贴图使用,也可以通过场景捕获,当然在正常情况下,直接使用HDR在性能和质量方面都会有提升,唯一需要注意的是HDR贴图氛围应该与我们的场景相似。




有无天光的视觉表现差异

3.点光源:点光源可以简单理解为灯泡,它的使用我们需要注意强度,影响半径这些关键参数。



4.聚光源:聚光源可以简单理解为聚光灯,探照灯,我们常常使用它作为家装项目中家庭灯具的模拟,也会使用它作为定向光源的补充。



5.矩形光源:矩形光源的理解不能直接理解为一个矩形形状的光源,它的存在更像是影视行业的补光灯,补光版,它的使用还可以配合一些纹理,模拟百叶窗或其他灯光的效果,在很多场景有绝妙的使用。



二.UE4天空系统(初级)

1.大气系统

我们使用大气系统时需要先在场景中放置一个定向光源,并在细节面板处找到与大气相关的设置,进行勾选。然后通过放置actor搜索天空大气拖拽放入场景即可看到大气系统。大气系统是4.25版本出现的功能,主要用以模拟真实的天空物理,配合体积云系统使用(目前版本体积云不适用于VR)。



我们依然可以使用ctrl+L更改定向光源,从而影响大气。此外天空大气的细节面板,有一些物理参数可以调节,帮助我们模拟真实的大气环境。



2.预置天空球的使用

在实际项目中,我们很少会使用到官方的天空球,但是必须承认,官方天空球的设计非常巧妙,益于我们进行后续自己设计我们的天空系统。本次我们先简单了解天空球的使用。

我们在放置actor中搜索sky,即可找到BP_Sky_Sphere,拖拽进入场景,即可进行使用。我们需要在天空球的细节面板绑定我们的光源进行使用。



我们依然可以通过改变定向光源来更新我们的天空球,甚至在晚间会出现星星。



云流速度与云的密度也可以通过天空球的细节面板进行调整,



3.指数级高度雾

指数级高度雾在很多应用场景起着一定的作用,例如充满灰尘的场景,林间的雾气,我们甚至可以通过设置获得体积光束。



三.UE4反射系统(初级)

1.反射捕获

我们在VR中最常用的反射系统就是反射捕获,其中有球体与盒体两种形态,这两种反射的原理非常简单,就是以组件为原点捕获周围景物绘制为贴图然后映射到周边物体上,反射组件置于场景中的方式与其他组件相同。使用之后须在构建中找到编译反射捕获。

我们可以打开Steatmap,然后来到玻璃附近观察反射球的作用效果,我们删除反射球之后可以发现玻璃上反射细节变少了。反射捕获可以大幅提升拥有大量光滑面场景的场景质量。





2.平面反射

平面反射的工作原理与反射捕获类似,但是它是完全动态的捕获过程,它会拥有更高的反射质量,且实时动态变化,但是渲染开销极大,不太适用于VR应用项目。

平面反射也可以直接拖拽放置进入场景,但是使用此功能需要在项目设置中勾选“全局剪切平面”,勾选后需要重启引擎,并且重新编译所有的着色信息,在这里不做过多演示,感兴趣的朋友可以自己尝试。



四.尝试照明一个小屋

我们在之前的内容中,基本了解了影响场景光照与视觉效果的各种组件,我们现在运用以上的内容建设一个室内环境,进行打光。借此我们再分享一些可能会用到的组件工具。

1.场景建设

场景建设相信大家已经很熟悉了,我们本次的目标是一个现代家居的室内环境,大家可以自由发挥。



2.构建光照

构建光照主要消耗的是CPU的算力,当然在4.26版本后我们可以通过N卡GPU构建光照,这个方案我们之后再分享。

构建光照的过程中,我们可能遇到这样一种情况,同一空间内的模型,尽管完全接触,但是构建光照后无法形成一个整体,存在明显的交界处。



遇到这种情况我们通过调整构建光照的精度即可,我们可以调整光照贴图密度光照贴图分辨率,还可以在光照质量中选择更高的质量级别。前两种方式会造成额外的运行性能负担,而光照仅影响构建光照所需的时间,所以我们本次仅更改光照质量。



我们可以使用一个名为“Lightmass重要体积”的组件包裹我们小屋,它的作用是在特大场景中优先保证此体积中的构建质量,可以提升构建的效率与质量。



我们发现通过更高质量的构建,我们基本解决了分隔线的问题。



3.后期处理

很多时候我们无法仅通过资产和光影实现我们的视觉效果,为了达到理想的状况我们会使用“后期处理体积”这个组件对我们的视觉效果进行修正。UE4的后期处理体积非常强大,里面有很多很棒的功能,之后我会分享很多后期盒子的妙用,今天我们先简单体验。

我们在放置actor中搜索后期处理体积,拖拽进入场景即可使用。我们明白UE的工作其实是渲染图像,哪怕是VR应用的本质也仍旧是图像,后期的作用与平面图像的滤镜也是完全一样的。当我们进入后期处理体积的范围,我们的图像就会受到后期的影响。如果我们全场景的后期效果完全一致,我们也可以直接在细节面板勾选“无限范围”。





我们简单对后期进行一些调节,可以得到以下画面,然后我们的工作就结束了。




之后加入导航,将游戏模式设置为VR模式,到VR世界中看看你创造的光吧!

上一章链接:

下一章链接:

相关内容