赞
踩
Created by the Emmy Award-winning team that brought you Baymax Dreams, Sherman is a new short film crafted with Unity’s High Definition Render Pipeline (HDRP).
由艾美奖获奖团队创建,带给您 Baymax Dreams , Sherman 是一部由Unity的高清渲染管线(HDRP)制作的新短片。
ADAM 我有 : 第2集 和 第3集 和艾美奖 ® 获奖 大白梦 。
If you’re reading this, you’ve probably heard about a major industry shift happening right now: the rise of real-time production.
如果您正在阅读本文,您可能已经听说了当前正在发生的重大行业转变:实时生产的兴起。
Real-time animation is much more than a different rendering solution – it’s actually revolutionizing the entire production pipeline. Real-time creation engines (also known as game engines because they were initially created for video game development) have now achieved the quality and maturity they need to serve as a production hub for cinema-quality content creation.
实时动画不仅仅是一个不同的渲染解决方案,它实际上是在改变整个生产流程。 实时创建引擎(也称为游戏引擎,因为它们最初是为视频游戏开发而创建的)现在已经达到了它们作为电影品质内容创建的生产中心所需的质量和成熟度。
But how is real-time rendering different than offline rendering? How do we go from hours of processing on a gigantic render farm to instant feedback and final 4K frames in mere seconds? There’s no magic involved. It all comes down to an amalgam of many simplifications, approximations, optimizations, and a few clever cheats.
但是实时渲染与离线渲染有何不同? 从巨大的渲染场上的数小时处理到短短几秒钟内的即时反馈和最终4K帧,我们如何? 没有魔术。 所有这些归结为许多简化,近似,优化和一些巧妙的作弊手段。
Part of our goal in creating the animated short film Sherman was to showcase the HDRP’s ability to deliver some of the most advanced real-time furever. However, this post highlights how we achieved the real-time lighting solutions for Sherman in Unity, including concrete advice and tips that you can bring to your own projects. Whether you’re a 3D animation expert or a traditional lighting artist, this piece will give you the tools you need to start creating rich, nuanced lighting for real-time content in Unity.
我们制作动画短片《 谢尔曼》的 部分目标 是展示HDRP提供一些最先进的实时 动画 的能力。 但是,本文重点介绍了我们如何 在Unity中 为 Sherman 实现实时照明解决方案 ,包括可以带入自己的项目的具体建议和技巧。 无论您是3D动画专家还是传统的照明艺术家,这件作品都将为您提供开始为Unity中的实时内容创建丰富细微的照明所需的工具。
There’s a lot happening in the lighting of this frame from Sherman. Let’s deconstruct it to see how it all comes together. Using this shot as our example, we can tease out pretty much everything you’d need to know about lighting effects in Unity for your own projects.
谢尔曼(Sherman)的这副 车架的照明发生了很多事情 。 让我们对其进行解构以了解它们如何结合在一起。 以这张照片为例,我们可以了解您需要为自己的项目了解有关Unity中照明效果的几乎所有信息。
We can break the lighting effects used to create this image into four types, then discuss how to control each of them.
我们可以将用于创建此图像的照明效果分为四种类型,然后讨论如何控制它们。
We started by defining the ambient lighting for the scene. We didn’t use a simple ambient term to emulate light scattering; instead, we took advantage of Unity Progressive Lightmapper to bake the Global Illumination results into lightmaps and create localized ambient lighting.
我们首先定义场景的环境照明。 我们没有使用简单的环境术语来模拟光散射;而是使用了简单的环境项来模拟光散射。 取而代之的是,我们利用Unity Progressive光照贴图器将“全局照明”结果烘焙到光照贴图中,并创建了局部环境照明。
Our project is a multi-scene setup, and all of the static scene elements live under the episode_set scene game object.
我们的项目是一个多场景设置,所有静态场景元素都位于Episode_set场景游戏对象下。
Set lighting elements are in the episode_set_lighting scene, which is the active scene in Unity. This is important because the active scene determines where any lighting data generated will live. You can find more information on multi-scene workflows here.
设置照明元素位于Episode_set_lighting场景中,该场景是Unity中的活动场景。 这很重要,因为活动场景决定了所生成的任何照明数据将存放在何处。 您可以在 此处 找到有关多场景工作流的更多信息 。
We don’t need the 001_timeline scene to build our set lighting, and we will unload it during the process. If you look carefully, you might also spot a section labeled ToHide. Inside, there’s a camera and an instance of the sun’s directional lights. Some post-processing effects are important to lighting, like Tonemapping and Ambient Occlusion, but you’ll need a camera to display them. We use a temporary camera while lighting the set, but only one camera should remain when the project is fully loaded. Once baking is complete, the ‘ToHide’ debug camera and lighting should be hidden again.
我们不需要001_timeline场景来构建场景照明,并且在此过程中将其卸载。 如果仔细看,您可能还会发现标有 ToHide 的部分 。 里面有一个摄像头和一个太阳定向光的实例。 一些后期处理效果对于照明很重要,例如“色调映射”和“环境光遮挡”,但是您需要使用摄像头来显示它们。 我们在照明设备时使用临时摄像机,但是在项目完全加载后,仅应保留一个摄像机。 烘烤完成后,应再次隐藏“ ToHide”调试摄像头和照明灯。
For any object in a given lightmap, the UVs should never overlap – each surface needs its own unique UV. Much of the time, you can let Unity generate lightmap UVs for you at import. (You can find more information on this topic here.) For complex and organic objects, it’s generally better to have an artist make a UV2 manually using their preferred digital content creation (DCC) software. Stitching seams is a simple way to achieve smoother results on edges that are not continuous in the lightmaps.
对于给定光照图中的任何对象,UV永远不应重叠-每个表面都需要自己的独特UV。 在很多时候,您可以让Unity在导入时为您生成光照贴图UV。 (您可以在 此处 找到有关此主题的更多信息 。)对于复杂的有机物体,通常最好让艺术家使用他们喜欢的数字内容创建(DCC)软件手动制作UV2。 缝合接缝是在光照贴图中不连续的边缘上获得更平滑结果的简单方法。
Let’s take a look at the Lighting tab and explore the settings used to create this scene in Sherman:
让我们看一下“ Lighting”选项卡,并探索用于在 Sherman中 创建此场景的设置 :
First, we are using Mixed Lighting Bake Indirect with the Progressive CPU Lightmapper. We didn’t use Realtime Global Illumination because it will not be supported in HDRP.
首先,我们在Progressive CPU Lightmapper中使用混合照明间接烘焙。 我们没有使用实时全局照明,因为HDRP不支持它。
The GPU Lightmapper makes huge progress with every new version of Unity, but it was still missing key features we needed during the production of Sherman.
该 GPU Lightmapper 使得与团结的每一个新版本的巨大进步,但它仍然缺少我们生产谢尔曼期间所需的关键功能 。
Personally, I prefer not using Shadowmask mode, which bakes shadows and most lighting into lightmaps for an animated production. By using Bake Indirect instead, the light calculations are kept simple, at a lower resolution – which means the baking time is faster, and we also have the flexibility of allowing small shot-by-shot corrections of our directional orientation.
就个人而言,我更喜欢不使用“阴影蒙版”模式,该模式将阴影和大多数光照烘焙到光照贴图 中以制作动画作品。 通过使用“间接烘焙” ,可以以较低的分辨率简化光的计算-这意味着烘焙时间更快,并且我们还具有允许对方向取向进行逐次校正的灵活性。
The setting for Direct Sample is irrelevant for the mode selected here because we’re not baking any direct lighting, so you can ignore this.
“直接采样”的设置与此处选择的模式无关,因为我们不烘焙任何直接照明,因此您可以忽略此设置。
Start low for your Indirect Sample setting, around 250, and increase it as you grow more confident in your scene setup.
从大约250的“间接采样”设置开始,然后随着对场景设置更加自信而增加。
For the Bounces setting, two should be enough, but I advise increasing to four for interiors.
对于“反弹”设置,两个就足够了,但我建议将内饰增加到四个。
When defining your Lightmap Resolution, start low and gently scale up. In this scene, we chose a final resolution of ten, which gives us 100 texels for one square meter. Remember that lighting and physics require you to work in a 1 Unity unit = 1-meter environment.
定义光照贴图分辨率时,请从低开始并逐渐放大。 在此场景中,我们选择了10的最终分辨率,即一平方米可以得到100像素。 请记住,光照和物理条件要求您在1个Unity单位= 1米的环境中工作。
It’s very important to be aware and take advantage of the Scale In Lightmap parameters of the individual meshes in a scene. For small objects with triangles too small to cover multiple lightmap texels, increase this value, and decrease it for larger objects that are far away. You can easily preview your lightmap resolution by enabling the Baked Lightmap view and Show Lightmap Resolution.
注意并利用场景中各个网格物体的“在光照贴图中缩放”参数非常重要。 对于三角形太小而无法覆盖多个光照贴图纹理的小型对象,请增加此值,而对于距离较远的较大对象,请减小该值。 通过启用“烘焙的光照图”视图和“显示光照图分辨率”,可以轻松预览光照图的分辨率。
Not all objects are suitable for lightmaps. You shouldn’t mark complex, multi-surface objects for lightmapping, nor small objects that don’t contribute significantly to the Global Illumination or that will simply be too expensive to lightmap (for example, grass, leaves, small rocks, and debris). You can do this by ensuring that Lightmap Static is disabled.
并非所有对象都适合光照贴图。 您不应该将复杂的多表面对象标记为光照贴图,也不要将对全局照明没有显着贡献的小对象标记为简单的东西,而对于光照贴图来说它们太简单了 (例如,草,树叶,小石头和碎屑) 。 您可以通过确保禁用“光照贴图静态”来做到这一点。
Some large static objects aren’t really suitable for lightmapping, such as our hedges, but we still want them to contribute to the solution. There is a trick to have an entity taken into account without lightmapping it: set its Scale In Lightmap value to zero. For example, in the edge section, you can clearly see the occlusion the hedges create, even if they’re not lightmapped.
一些大的静态对象并不真正适合光照贴图,例如我们的树篱,但我们仍然希望它们为解决方案做出贡献。 有一个技巧可以在不进行光照贴图的情况下将其考虑在内:将其“在光照贴图中缩放”值设置为零。 例如,在边缘部分,您可以清楚地看到树篱创建的遮挡,即使它们没有被贴图也是如此。
After establishing the ambient light and lightmapping settings, a probe array lights the remaining small and dynamic objects. For Sherman, we created an array of probes with a spacing of one meter between them.
建立环境光和光照贴图设置后,探针阵列将点亮其余的小型动态对象。 对于 Sherman ,我们创建了一个探头阵列,它们之间的间距为1米。
Larger objects like the grass lawn benefit from more refined probe lighting through the clever use of Light Probe Proxy Volumes. This way, an object is lit by localized samples of the probes rather than by a single probe.
通过巧妙地使用光探针代理体积,更大的物体(例如草地)可以从更精致的探针照明中受益。 这样,通过探针的局部样本而不是单个探针来照亮物体。
Valuable tip: In a multi-scene setup, it is important to know that only the light probes from the latest scene loaded will be taken into account.
宝贵的提示: 在多场景设置中,重要的是要知道仅考虑来自最新场景的光探测器。
Now that we’ve explored how to generate great localized ambient light, how do we make sure that it doesn’t fill any areas light shouldn’t reach and ground objects together?
既然我们已经探索了如何产生出色的局部环境光,那么我们如何确保它不会填满光线不应该到达的任何区域并将物体一起接地?
First, you need to generate ambient occlusion maps for some of the objects, such as inside the doghouse or the raccoon’s mouth, using your preferred DCC.
首先,您需要使用首选的DCC为某些对象生成环境光遮挡图,例如在狗窝或浣熊的嘴里。
Next, to glue elements together, we use a post-processing effect called Screen Space Ambient Occlusion (SSAO).
接下来,为了将元素粘合在一起,我们使用一种称为屏幕空间环境光遮挡(SSAO)的后处理效果。
We’ll go into greater detail about this effect in the post-processing section below.
我们将在下面的后处理部分中详细介绍这种效果。
In real-time, your Indirect Specular Lighting, or reflections, comes from a complex layering of techniques. The ordering of layers cascades as follows:
实时地,间接镜面照明或反射来自复杂的技术层次。 层的顺序如下:
Real-time planar reflections
实时平面反射
Real-time reflection probes
实时反射探头
Small baked reflection probes
小型烘烤反射探头
Larger reflection probes (yes, the smaller volumes have priority over larger ones)
较大的反射探头(是的,较小的体积优先于较大的体积)
Sky
天空
Reflection resolution and cache size are managed in the HDRenderPipelineAsset. Basically, planar reflections are mirrors. These are perfectly suited for flat surfaces, but they can also be used in more complex situations like the one I created to help connect the raccoon and the inflated hose. Be careful with these, though, as they can be expensive in terms of memory.
反射分辨率和缓存大小在 HDRenderPipelineAsset中 进行管理 。 基本上,平面反射是镜子。 它们非常适合于平坦的表面,但是它们也可以用于更复杂的情况,例如我创建的用于帮助连接浣熊和充气软管的情况。 但是,请谨慎使用,因为它们在内存方面可能会很昂贵。
Real-time reflection probes can also be used strategically to show important details in the reflections and occlusions of light sources. In this case, a small real-time spherical probe was used to engulf the bowl, allowing us to showcase the inflating hose about to rupture.
实时反射探测器也可以策略性地用于显示光源反射和遮挡中的重要细节。 在这种情况下,使用了一个小型的实时球形探头来吞没碗,使我们能够展示即将破裂的充气软管。
Baked reflection probes need to cover our set. You should take advantage of the size priority, the parallax correction offered by the projection volume and advanced blending mode. A good rule of thumb is to place your capture point at the average height at which your camera work is done.
烘焙反射探头需要覆盖我们的套装。 您应该利用尺寸优先级,投影体积提供的视差校正和高级混合模式。 一个好的经验法则是将捕获点放置在完成相机工作的平均高度上。
If you look closely, you will notice that some reflection probes are very specific to shadowed areas. This was done to manage undesired specular reflections from our strongly directional sky.
如果仔细观察,您会发现某些反射探测器非常特定于阴影区域。 这样做是为了处理来自强烈指向天空的不良镜面反射。
The Timeline is your sequencer and the central hub for everything animation-based. From there, you can animate most things, but when it was time to create our shot-by-shot lighting, we used activation tracks instead. I personally find it easier to simply manage groups dedicated to a shot rather than animating every component of a lighting rig shot by shot.
时间轴是您的音序器和所有基于动画的内容的中央枢纽。 从那里,您可以为大多数东西设置动画,但是当需要创建逐个镜头的照明时,我们改为使用激活轨迹。 我个人发现,简单地管理专门用于镜头的组,而不是对每个镜头的照明设备的每个组件进行动画处理,会更容易。
A few tricks:
一些技巧:
It is important to keep in mind that everything you wish to animate in the Timeline needs to be in the same scene as the Timeline itself – in our case, the 001_timeline scene. Any link pointing to another scene will be lost when you reopen your project or enter PlayMode.
重要的是要牢记,您希望在时间轴中进行动画处理的所有内容都必须与时间轴本身位于同一场景中,在本例中为001_timeline场景。 当您重新打开项目或进入PlayMode时,指向另一个场景的任何链接都将丢失。
Set your Post-playback state to inactive, or you may end up with ghost light rigs when you’re rendering.
将您的“后播放”状态设置为非活动状态,否则在渲染时可能会遇到幻灯装备。
Converting an animation track into a clip track is an easy way to reschedule your animation when the editing or timing of a shot is modified.
在修改镜头的编辑或定时后,将动画轨道转换为剪辑轨道是重新安排动画时间的简便方法。
More information on activation tracks can be found here.
有关激活轨迹的更多信息,请参见 此处 。
Prefabs are great for grouping objects that need to be reused multiple times. A Prefab lets you modify the composition of your group, and all instances will follow automatically. Unity Prefab instances let you easily and selectively revert any derivation you made or apply it back to the original Prefab and propagate changes instantaneously. This system also gives you a framework that enables a seamless derivations workflow, either to tweak instances or quickly create and validate alternate variations.
预制件非常适合对需要多次重用的对象进行分组。 预制可让您修改组的组成,所有实例将自动跟随。 Unity Prefab实例使您可以轻松,有选择地还原所做的任何派生,或将其应用回原始Prefab,并即时传播更改。 该系统还为您提供了一个框架,该框架使无缝派生工作流能够调整实例或快速创建和验证替代变体。
As of version 2018.2, Unity supports nested Prefabs. This setup is perfect for quickly iterating on a lighting rig. As an example, here’s the Lighting Prefab structure for the first animation beat. You can see the shot-by-shot structure that is driven by activation tracks. Since only lighting objects that exist during the shot displayed, any others are currently hidden.
从2018.2版本开始,Unity支持嵌套的预制件。 此设置非常适合在照明设备上快速迭代。 例如,这是第一个动画节拍的Lighting Prefab结构。 您可以看到由激活轨道驱动的逐帧结构。 由于仅在显示拍摄期间存在照明对象,因此当前其他任何对象均被隐藏。
In the lighting part of our scene Hierarchy, you can find:
在场景层次结构的照明部分中,您可以找到:
Scene setting overrides
场景设置优先
Objects that are used strictly to compose shadows for this shot
严格用于拍摄此镜头的阴影的对象
Density Volumes to control the atmospheric effects
密度体积控制大气效应
A real-time reflection probe for the bowl
碗的实时反射探头
Other Prefabs for the sun, fill and rim lights
其他用于阳光,填充和边缘灯的预制件
Another benefit of working with Prefabs is that once an object has been instantiated in your scene, you don’t need to keep the scene checked out in source control to work on your lighting. This means that other members of your team can work on the scene.
使用Prefabs的另一个好处是,一旦在场景中实例化了对象,就无需在源代码控制中将场景签出以使用照明。 这意味着您团队中的其他成员可以在现场工作。
It’s important to mention that certain properties cannot be derived in your Prefab and require a custom instance for any variation. This is the case for Scriptable Objects like Volume Profiles, Post-Processing Profiles, and Timelines.
重要的是要提到某些属性不能在您的Prefab中派生,并且需要自定义实例才能进行任何更改。 对于诸如卷配置文件,后处理配置文件和时间线之类的可脚本编写对象,情况就是如此。
An instance of the sun resides in each shot group. This allows us to do shot-by-shot minor tweaks to its orientation. We also used a tree cutout to carefully create interesting shadows.
每个镜头组中都有一个太阳实例。 这使我们可以逐个方向对其进行微调。 我们还使用了树形切口来精心创建有趣的阴影。
By working in forward rendering, HDRP grants you access to post-percentage closer soft shadows (PCSS). This tool lets you simulate the lights’ penumbra.
通过进行正向渲染,HDRP允许您访问百分比后的更近的软阴影(PCSS)。 该工具可让您模拟灯光的半影。
In real-time, lights are not ray-traced, and shadows are deducted by a technique called shadow maps. Shadows are not free and need to be enabled for each light. HDRP’s Shadow Atlas system enables you to have a large number of shadow-casting lights. We used the largest Atlas possible, but it’s important to know that while a large Atlas substantially improves quality, it’s also more expensive in terms of computing time because it contains more information.
实时地,光线不会被光线追踪,而阴影可以通过称为阴影贴图的技术来扣除。 阴影不是免费的,需要为每个灯光启用阴影。 HDRP的Shadow Atlas系统使您能够拥有大量的阴影投射灯。 我们使用了最大的Atlas,但重要的是要知道,虽然大型Atlas可以显着提高质量,但由于包含更多信息,因此在计算时间方面也更加昂贵。
The system will dynamically rescale shadows if your Atlas ever gets full. Shadow resolution is defined per light. In our setup, my punctual lights are set to 1024 and my directional is 4×2048. Note that point lights are 6×1024 (to represent a cube), so they are very expensive.
如果您的地图集装满了,系统将动态调整阴影的比例。 每光定义阴影分辨率。 在我们的设置中,我的守时灯设置为1024,方向是4×2048。 请注意,点光源为6×1024(代表一个立方体),因此它们非常昂贵。
The directional light shadow benefits from a technique called Cascade Shadow Maps (CSM). To achieve optimal quality, you need to refine the distribution of cascades per shot using the HD Shadow Settings component overrides. You may also need to tweak the near clip plane in your Cinemachine virtual camera lens settings. This pushes the first cascade forward, a process that becomes more increasingly important alongside the length of the lens you are using.
定向光影得益于称为“级联阴影贴图(CSM)”的技术。 为了获得最佳质量,您需要使用“ HD阴影设置”组件替代 来优化每个镜头的级联分布 。 您可能还需要在Cinemachine虚拟摄像机镜头设置中调整近剪辑平面。 这将推动第一个级联的进行,这一过程随着所使用镜头的长度的增加而变得越来越重要。
In HDRP, many rendering and post-processing properties are driven by volumes with associated “profiles.” Since Unity 2019.1, both of these sets of properties have been merged into the same volume component and are now organized in categories. The profile values are interpolated depending on the current camera position. If the camera is not in any volume, it will fall back on a global profile.
在HDRP中,许多渲染和后处理属性是由具有关联“配置文件”的卷驱动的。 从Unity 2019.1开始,这两组属性都已合并到相同的体积组件中,并且现在按类别进行组织。 根据当前摄像机位置插值配置文件值。 如果摄像头容量不大,它将退回到全局配置文件中。
Each volume has a priority and weight value. Unfortunately, the values of the profile can’t be animated, but the priority and weight values can be. This is exactly how we animated the post-processing for the electric shock effect.
每个体积都有一个优先级和权重值。 不幸的是,配置文件的值无法设置动画,但优先级和权重值可以设置。 这正是我们为电击效果进行后处理动画的方式。
In Unity, you can assign an entity to specific light layers. We did this to manually place a catchlight to make the raccoon’s eyes look alive and interesting. This feature also lets me manage any undesired specular highlights coming from the many punctual lights I used for fill and rim lighting. We also used this functionality to prevent punctual lights from interfering with our water effects.
在Unity中,您可以将实体分配给特定的灯光层。 我们这样做是为了手动放置一个聚光灯,以使浣熊的眼睛看起来生动有趣。 此功能还使我能够管理来自我用于填充和边缘照明的许多守时光源的任何不希望的镜面反射高光。 我们还使用此功能来防止守时灯干扰我们的水效。
One really interesting feature of lighting in HDRP is the ability to adjust the Max Smoothness of your lights. This technique can be used to simulate the dispersion of the specular light source’s intended size.
HDRP中照明的一个真正有趣的功能是能够调整照明的最大平滑度。 该技术可用于模拟镜面光源预期尺寸的色散。
You can also specify if a light is Affect Specular or Affect Diffuse and test the effects of these settings in your content.
您还可以指定灯光是“影响镜面反射”还是“影响漫反射”,并在您的内容中测试这些设置的效果。
Atmospheric effects are an important tool in your arsenal when it’s time to create depth in your scenes. HDRP high-quality volumetrics (defined in the HDRP settings) provide you with a robust solution, and you can maximize the effect’s quality using the Volumetric Lighting Controller.
当需要在场景中创建深度时,大气效果是武器库中的重要工具。 HDRP高质量体积测定仪(在HDRP设置中定义)为您提供了一个强大的解决方案,并且您可以使用体积照明控制器最大化效果的质量。
For the best-localized effect, we used Density Volumes in Sherman, once again placed shot by shot to maintain full control over their appearance.
为了获得最佳的局部效果,我们使用了 谢尔曼(Sherman)中的“ 密度卷”(Density Volumes) ,再次 逐次放置以完全控制其外观。
Color Grading is now an essential part of any production process. You can achieve impressive results directly in Unity. Post-processing effects have been fully integrated into HDRP since 2019.1. Here, I’ll outline our workflow from Sherman, using the version referred to as the Post-Processing V2 Stack (which isn’t compatible with the Post-Processing V3 Stack integrated into HDRP 2019.1). Things have changed since then, but the concepts are all the same.
现在,颜色分级是任何生产过程中必不可少的部分。 您可以直接在Unity中获得令人印象深刻的结果。 自2019.1起,后处理效果已完全集成到HDRP中。 在这里,我将 使用称为后处理V2堆栈的版本(与集成到HDRP 2019.1中的后处理V3堆栈不兼容) 概述 Sherman 的工作流程 。 从那时起,情况发生了变化,但是概念都是一样的。
Post-processing effects work on volumes. Color Grading, Ambient Occlusion, Grain, and Filmic Motion Blur are defined in a master volume that resides in the lighting scene. Some of those values will be overridden by higher-priority volumes that are part of our per shot Timeline-activated setup.
后处理效果适用于体积。 在照明场景中的主体积中定义了颜色分级,环境光遮挡,纹理和电影运动模糊。 这些值中的某些值将被更高优先级的音量所覆盖,这是我们按时间线激活的每次拍摄设置的一部分。
Every camera-related effect – Bloom, Depth of Field, and Vignette – is defined in a custom profile created for every single Cinemachine Virtual Camera using the CinemachinePostProcessing extension. At certain moments, a Post-exposure override was also used since pre-exposition wasn’t yet available in Unity 2018.4.
使用CinemachinePostProcessing扩展,在为每个Cinemachine虚拟摄像机创建的自定义配置文件中定义了每个与摄像机相关的效果(布隆,景深和晕影)。 在某些时候,由于Unity 2018.4中尚未提供预曝光,因此也使用了曝光后覆盖。
Since the entire render happens in HDR Linear space, it’s extremely important to define the color output. This project was set to use the ACES output (Academy Color Encoding System) from the beginning. ACES Tonemapping gives you highly contrasted images with very strong dark tones. To obtain our uplifting color palette, we needed to adjust our gamma. Most games that adopt this style of tonemapping do the same.
由于整个渲染都发生在HDR线性空间中,因此定义颜色输出非常重要。 该项目从一开始就被设置为使用ACES输出(学院色彩编码系统)。 ACES色调映射可为您提供具有强烈深色调的高对比度图像。 为了获得令人振奋的调色板,我们需要调整灰度系数。 大多数采用这种色调映射样式的游戏都执行相同的操作。
The Unity team is very proud of our new Trackballs tool. Trackballs controls are a familiar tool to any professional – they’re easy to manipulate, and we really love them.
Unity团队为我们的新Trackballs工具感到非常自豪。 轨迹球控件是任何专业人士都熟悉的工具-易于操作,我们非常喜欢它们。
Even if only one can be displayed at once, many grading curves are available. We used Hue vs Sat, Sat vs Sat and Lum vs Sat.
即使一次只能显示一个,也可以使用许多渐变曲线。 我们使用了Hue vs Sat,Sat vs Sat和Lum vsSat。
A Post Process Debug component was also added to our main camera. From there, you can activate a Waveform Monitor and Histogram. Waveform is a really powerful tool for analyzing the health of blacks and whites.
一个后期处理调试组件也已添加到我们的主摄像头中。 从那里,您可以激活波形监视器和直方图。 波形是分析黑人和白人健康状况的强大工具。
Ambient Occlusion was already mentioned, but let’s take a closer look at some settings. Intensity was set to 0.75, and in some shots, it was diminished in order to reduce noisy patterns, showing mostly in the trees’ foliage. We did not use any non-physically based rendering (PBR) options like the Color or Direct Lighting Strength. This effect is resolution-dependant, so this effect should be tweaked to fit your intended output resolution.
已经提到了环境光遮挡,但是让我们仔细看一下一些设置。 强度设置为0.75,并在某些镜头中降低了强度,以减少嘈杂的图案,主要表现在树木的叶子上。 我们没有使用任何非基于物理的渲染(PBR)选项,例如“颜色”或“直接照明强度” 。 此效果取决于分辨率,因此应调整此效果以适合您的预期输出分辨率。
DOF is not only the byproduct of a fast lens; it’s an essential tool to drive the focus in your story. Images are moving fast, so people’s attention has to be carefully guided.
自由度不仅是快速镜片的副产品; 这是在故事中聚焦的重要工具。 图像快速移动,因此必须谨慎引导人们的注意力。
Cinemachine has the wonderful option of tracking focus for you. The new version of this post-processing tool has been fully re-written and is no longer resolution-dependant. In the 2018 version of Unity, the VFX Graph transparencies render queue wasn’t an available feature. This means that for Sherman, there were certain shots that included our water effect where we had to avoid any shallow depth of field. The good news is that this VFX Graph feature was introduced in 2019.2.
Cinemachine具有为您跟踪焦点的绝佳选择。 此后处理工具的新版本已被完全重写,并且不再取决于分辨率。 在2018年版本的Unity中,VFX图形透明胶片渲染队列不是可用功能。 这意味着对于 谢尔曼来说 ,有些镜头包括水效果,因此必须避免任何浅景深。 好消息是此VFX Graph功能于2019.2。
Vignette is a powerful effect, but one that can easily be overused. It mimics an artifact of filming through a lens, visually representing the loss of light in the corner of the frame. For realism, this effect should always be rounded.
小插图是一种强大的效果,但是很容易被过度使用。 它模仿通过镜头拍摄的伪像,从视觉上代表镜框角落的光损失。 对于现实主义,这种影响应该始终是四舍五入的。
Bloom is a beautiful artifact created by strong light bleeding on your camera sensor and dirty lenses. You can simulate this effect in Unity, but, once again, this technique should be used with moderation.
布卢姆(Bloom)是由相机传感器和脏污镜头上的强光造成的美丽伪影。 您可以在Unity中模拟这种效果,但是,再次请适度使用此技术。
Lighting for animation is complex and difficult to master. In this post, we covered almost everything a traditional lighting artist would need to know to light a real-time rendering production. I really hope you enjoyed reading it and feel inspired to try some of the tricks I’ve outlined here.
动画照明很复杂,很难掌握。 在这篇文章中,我们几乎涵盖了传统照明艺术家在照明实时渲染作品时需要了解的所有内容。 我真的希望您喜欢阅读它,并受到启发去尝试我在这里概述的一些技巧。
I can’t see myself ever going back to “the good old days” of traditional lighting. Real-time animation is revolutionizing the craft and creating new worlds of opportunity. With more room for taking risks and experimenting without consequences, the results can only be greater.
我看不到自己可以回到传统照明的“美好时光”。 实时动画正在革新Craft.io并创造新的机会世界。 有了更大的冒险空间和没有后果的尝试,结果只会更大。
For more information about Sherman, including access to the full project, see Unity’s Film Solutions page. Get in touch to discuss how Unity and the Innovation Group can help bring your projects to life.
有关Sherman的更多信息(包括访问整个项目的信息),请参见Unity的Film Solutions页面 。 联系我们 ,讨论Unity和创新小组如何帮助您实现项目。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。