UWA问答 | 博客 | 游戏及VR应用性能优化记录分享 | 侑虎科技 - unreal 4
type: channel
link: https://blog.uwa4d.com/tag/unreal-4
items: 虚幻引擎学习之路：动画模块进阶篇（二）
items: 虚幻引擎学习之路：动画模块进阶篇之动画融合
items: 虚幻引擎学习之路：动画模块之基础篇
items: 虚幻引擎学习之路：渲染模块之全局光照明
items: 虚幻引擎学习之路：相机图像后处理
items: 虚幻引擎学习之路：渲染模块之材质系统

虚幻引擎学习之路：动画模块进阶篇（二）
type: item
date: 2017-12-28T10:51:00+02:00
description: 上周UWA介绍了Unreal 4引擎动画模块中的动画融合功能，今天我们将继续介绍Unreal 4引擎动画模块中的其他进阶功能，其中主要包括：动画重定向、逆向运动学和顶点动画。 在此，特别感谢Unreal中国团队对于本篇文章中Unreal引擎相关内容的审核，并在UWA团队学习其引擎的道路上提供的大力支持。 一、动画重定向 游戏引擎动画模块中的动画重定向（Animation Retargeting）可用于在不同模型上重用动画文件，该功能类似于Unity引擎中Humanoid模式下的Retargeting功能。Unreal 4引擎对使用相同Skeleton Asset的Skeletal Mesh支持动画重定向，并且支持不同尺寸角色动画的重定向，其细节把握非常到位，具体如下图所示： 上图显示了高、中、低三个不同的模型，并以骨骼长度中等模型的动画做重定向。在不做骨骼缩放处理的情况下直接做重定向使得较矮的模型被拉伸，较高的模型出现了穿插。 Unreal 4引擎对该问题提供了解决方案。打开两个Skeletal Mesh共用的Skeleton Asset，并勾选Show Retargeting Options，即可看到骨骼结构图右边显示骨骼Retargeting设置，如下图所示： 点开向下箭头会显示四个选项：Animation、Skeleton、Animation Scaled以及Animation Relative，如下图所示： 该选项表示了骨骼的Transform数据来源。其中，Animation选项表示Transform来自动画文件，Skeleton选项表示Transform来自骨骼文件（即静态骨骼），Animation Scaled表示Transform来自动画文件，但根据原始Skeletal Mesh中的骨骼长度进行缩放。对于一般情况，只需要将Root、IK和Weapon骨骼设置成Animation，Pelvis骨骼（一般为根节点）设置成Animation Scaled，其他骨骼均设置成Skeleton即可。设置完成后即可输出经过骨骼缩放后的动画重定向结果，如下图所示： 其中，黄色线表示动画文件原始模型的骨骼，白色线表示进行动画重定向的模型骨骼。 对于使用不同Skeleton Asset的Skeletal Mesh，Unreal 4引擎支持使用Rig文件将两者的骨骼进行映射，过程类似于Unity引擎中对Humanoid类型骨骼的模型进行标准人形骨骼映射。然后，即可支持动画重定向功能。有兴趣的读者可参考Unreal 4官方网站动画重定向教程【1】，进一步了解。 二、逆向运动学 游戏引擎中逆向运动学（Inverse Kinematics）可以弥补普通动画中不精确的情况，从而生成更加真实的角色动画。IK在游戏角色动画中有多种应用，其中比较常用的情况是使得角色双脚能贴合在高低不平的地面或是当角色触碰某些物品时能精确地碰到物品的位置，如下图所示： 其中，左图是没有使用IK的情况，在楼梯上由于角色两脚地面高低不一致，导致右脚穿插入楼梯。右图是使用了IK的情况，角色的右脚被抬起到与楼梯相同的高度。 Unreal 4和Unity引擎都支持IK，本节主要介绍Unreal 4引擎中IK的使用和设置。Unreal 4引擎中设置IK通常需要设置两个地方：Character的Blueprint和Animation Blueprint。在Character Blueprint中，需要处理获取Socket节点的位移信息，用于在Animation Blueprint中使用。Socket节点即为IK中需要触碰到指定位置的节点，例如：在本节例子中角色脚底可以设置成Socket节点，如下图所示： 其中，上图的Character Blueprint中，红框表示了每一帧Tick函数，蓝框表示计算角色右脚的Socket节点与地面的高度并记录在IKOffsetRightFoot变量中，绿框表示计算角色左脚的Socket节点与地面的高度并记录在IKOffsetLeftFoot变量中。然后，在Animation Blueprint的Event Graph中获取该变量值并设置为Effector Location，如下图所示： 其中，红色框表示利用IKOffsetRightFoot变量的值计算右脚Effector Location（脚底位置），蓝色框表示利用IKOffsetLeftFoot变量的值计算左脚Effector Location。 最后，在Animation Blueprint的Anim Graph中，使用Two Bone IK节点设置IK节点，如下图所示： 其中，红色框表示用Two Bone IK节点计算右脚的IK解，蓝色框表示Two Bone IK节点计算左脚的IK解。其…

虚幻引擎学习之路：动画模块进阶篇之动画融合
type: item
date: 2017-12-22T03:43:00+02:00
description: 上周UWA介绍了Unreal 4引擎动画模块中的基本功能，接下来我们将进一步介绍Unreal 4引擎动画模块中提供的进阶功能。其中主要包括：动画融合、动画重定向、反向运动学、顶点动画。鉴于篇幅原因，今天我们先来讲解动画融合。 在此，特别感谢Unreal中国团队对于本篇文章中Unreal引擎相关内容的审核，并在UWA团队学习其引擎的道路上提供的大力支持。 动画融合 动画融合是游戏引擎动画模块中的重要功能。本节将介绍Unreal 4引擎中提供的动画融合功能，主要包括：Blend节点、Blend Space、Animation Montage、Animation Composite以及Post Process Animation Blueprint。 1、Blend节点 Unreal 4引擎的Anim Graph中提供了一系列的Blend节点可以实现不同的动画融合功能，其类似于Unity引擎中的Blend Tree功能。Blend节点的输入是来自多个不同动画文件的Pose数据以及Alpha权重参数，它会根据权重参数计算出最后融合的Pose，如下图所示： 其中，A和B为两个输入Pose，Alpha为[0,1]的浮点数表示A和B的权重。当Alpha为0时输出Pose全部来自A，当Alpha为1时输出Pose全部来自B，当Alpha为0~1之间时输出Pose为A和B的融合结果。类似功能的节点还有：Apply Additive、Blend Multi等。 Time Based Blend类型节点可用于连接两个或多个动画，并在动画切换时进行融合。Blend Poses by bool节点是其中一种，该节点根据输入的Bool值（红框中的Active Value）来控制True Pose和False Pose的切换，并且可分别设置两个Pose的融合时间（蓝框所示），其分别表示切换到True Pose的融合时间和切换到False Pose的融合时间，如下图所示： 类似功能的节点还有：Blend Posed by int，支持多个动画Pose的切换融合。 Layered Blend per bone节点可以将多个动画的不同骨骼融合在一起，例如：将Locomotion的下半身体和射击以及近战的上半部分身体进行融合，可以实现一边行走一边射击等动作。该节点需要配合Animation Montage的Slot使用，本文将在Animation Montage小节中进行介绍。 2、Blend Space Blend Space是Unreal 4引擎动画模块中用于实现复杂动画融合功能的资源。它最多可提供两个控制参数，并支持在二维平面上摆放动画采样点对多个动画进行融合。当变量取值在二维平面中的某一坐标位置时，Blend Space会根据采样点处的动画和坐标插值计算出当前坐标的动画。下图显示了1D和2D的Blend Space示意图： 其中，左图为1D的Blend Space，包含一个参数Speed。右图为2D的Blend Space，包含两个参数Speed和Yaw。 Blend Space的创建与其他资源创建过程类似，点击Add New按钮或在Content Browser中点击右键，在弹出菜单中选择Blend Space即可。Blend Space资源分为1D和2D，分别支持一个和两个控制参数的动画融合。创建好Blend Space资源后双击即可打开编辑界面，如下图所示： 上图例子使用了1D的Blend Space，实现了根据Speed参数对Idle、Walk以及Run三个动画进行采样融合效果。其中，区域1显示了资源的参数设置，区域2显示了控制参数坐标轴以及动画采样点，区域3显示了动画文件列表。通常在使用Blend Space时首先需要设置坐标轴，如下图所示： 其中，在Interpolation Type选项中可以设置动画插值计算方式，默认设置是Averaged Interpolation。 设置好坐标轴即可从区域3动画列表中选取采样动画拖动到区域2中。上述例子中设置了三个动画采样点：Idle、Walk和Run。在区域1中可查看其参数设置，如下图所示： 上图参数设置表示Idle动画位于Speed取值为0处，Walk动画位于Speed取值为93.75处，Run动画位于Speed取值为375.0处。在区域3中可查看采样动画分布，如下图所示： 其中，三个白色菱形点表示三个采样动画在Speed坐标轴上的位置，蓝色菱形点表示当前Speed取值。点击播放动画，并拖动蓝色菱形点在Speed坐标轴上移动，即可看到不同的动画插值结果。上述例子为1D的Blend Space，2D的Blend Space比1D多了纵坐标，使用方式与1D类似。 Blend Space资源设置完成后，即可…

虚幻引擎学习之路：动画模块之基础篇
type: item
date: 2017-12-15T07:59:00+02:00
description: 在之前的微信文章推送中，我们陆续为大家详细介绍了Unreal 4引擎的渲染模块（包括光照系统、材质系统、相机后处理和全局光照明），接下来我们将讲解动画模块的基础功能，并且将在后续文章中陆续推出该模块中进阶功能和特殊用途的介绍。 在此，特别感谢Unreal中国团队对于本篇文章中Unreal引擎相关内容的审核，并在UWA团队学习其引擎的道路上提供的大力支持。 前言 动画模块是游戏引擎中的重要部分，是驱动游戏中场景、角色能够活灵活现地做出动作的基础。UWA将分三块内容介绍Unreal 4引擎中的动画模块功能，其中包括：基础功能、进阶功能以及特殊功能。在介绍基础和进阶功能时，UWA不仅会对其功能进行重点讲解，同时也将结合Unity引擎中的相似功能进行类比，以求让大家可以更明晰地掌握Unreal引擎动画模块的功能使用。在特殊功能中，UWA将对Unreal 4引擎中针对特殊用途提供的功能进行重点解读。 本节主要介绍Unreal 4引擎动画模块中提供的基础功能。其中主要包括以下几个部分： 蒙皮网格 骨骼文件 动画文件 加粗文字动画逻辑 Unreal 4引擎的动画模块提供了四个编辑器：蒙皮网格编辑器、骨骼编辑器、动画文件编辑器和动画蓝图编辑器。上述基础功能可以分别在这四个编辑器中完成。在接下来的内容中，本文将在介绍基础功能的同时对相应编辑器的使用进行介绍。 一、 蒙皮网格 Unreal 4引擎支持从外部FBX文件中导入蒙皮网格和动画。导入操作可通过Content Browser->Import按钮完成。导入界面如下图所示： 其中，包含了网格、动画以及材质相关的导入设置。默认情况下Unreal 4引擎会为网格创建材质、物理以及骨骼文件。若选择导入动画，也会同时创建相应动画文件。 蒙皮网格在Unreal 4引擎中被称为Skeletal Mesh，其相当于Unity引擎中的Skinned Mesh，表示了带有蒙皮信息的网格。双击Content Browser中的蒙皮网格文件，即可打开蒙皮网格编辑器，如下图所示： 其中，左边区域（1区）是Skeletal Mesh的参数设置，右边区域（2区）是Morph Target（Blend Shape）以及预览场景设置。在Skeletal Mesh参数设置中，可以设置模型的材质、LOD、Clothing、骨骼、物理（Rigidbody）、Capsule Shadow等相关参数。其中，Clothing支持Nvidia的apex文件。骨骼文件即为下文中将介绍的Skeleton Asset。Capsule Shadow是Unreal 4引擎中Skeletal Mesh特有的软阴影。它使用形状不同的Capsule对Mesh进行近似表示，在渲染阴影时则使用该近似表示进行渲染，从而节省了渲染开销。右上角区域（3区）显示了与当面Skeletal Mesh相关的文件，点击即可快速打开相关文件。 二、骨骼文件 Unreal 4引擎中的骨骼文件被称为Skeleton Asset，其相当于Unity引擎中的Avatar文件。双击Content Browser中的Skeleton Asset文件即可打开该文件，如下图所示： 其中，左边区域（1区）显示了当前Skeletal Mesh的骨骼信息，可以选中其中某一骨骼进行编辑。同时，还可进行Retargeting的设置。右上角区域（2区）显示了选中骨骼的详细信息以及预览场景设置。在骨骼详细信息中可以设置其Transform和Name参数。右下角区域（3区）显示了动画事件和Animation Curve。其中，Animation Curve可以用于在动画过程中修改模型材质以及修改Morph Target曲线。Animation Curve的具体修改过程需要在动画编辑器中完成，此处只提供了预览。 在Unity引擎中，查看骨骼信息的方式是将其拖入场景，即可在左边Hierarchy页面中看到骨骼信息。需要注意的是，FBX模型不要开启Optimize GameObject选项。 在Unreal 4引擎中，共用Skeleton Asset的网格可以共享动画文件，即动画重定向（Animation Retargeting）。但要共享Skeleton Asset需要满足一定条件，即两个网格中的骨骼命名顺序要保持一致，如下图所示： 其中，骨骼(1,2,3)与骨骼(1,2,3,4)可以共用Skeleton Asset，但是与骨骼(1,3,2)无法共用。 在Unity引擎中，通过对Humanoid类型动画网格的骨骼进行映射也可以支持动画重定向。但是Unity中的动画重定向只能支持骨骼长度相近的网格，对于骨骼相差较大的网格会出现穿插或者分离的现象。Unreal 4引擎提供了该问题的解决方案，我们将在后续文章的动画重…

虚幻引擎学习之路：渲染模块之全局光照明
type: item
date: 2017-12-07T03:36:00+02:00
description: 之前UWA为大家分别介绍了Unreal 4引擎中渲染模块的光照系统、材质系统和相机图像后处理，在本篇文章中，我们将为大家介绍渲染模块的全局光照明这部分内容。 在此，特别感谢Unreal中国团队对于本篇文章中Unreal引擎相关内容的审核，并在UWA团队学习其引擎的道路上提供的大力支持。 关于全局光照 全局光照是增强渲染真实感的有效方法，也是游戏引擎中不可缺少的一部分。Unreal 4和Unity引擎都分别支持了全局光照效果。在Unreal 4引擎中，全局光照烘焙采用的是Lightmass，而Unity 2017中则采用了Enlighten或Progressive。下图显示了Unreal 4引擎使用全局光照的渲染结果图。 Unreal4引擎全局光照渲染结果，取自Unreal 4美术博客【1】 全局光照的算法有多种，Unreal 4引擎中Lightmass采用的是Photon Mapping算法【2, 3】，Unity引擎中Enlighten采用的是辐射度算法【4, 5】。由于辐射度算法主要针对的是漫反射表面，因此对于镜面反射表面Enlighten难以计算其对间接光照的影响。所以，Unity引擎在Shader中对于这部分间接光照提供了补偿方法，即“Meta Pass”。在Standard Shader中，自带有“Meta Pass”的定义。而对于自定义的Shader，如果需要使用Lightmap可以参考Standard Shader中的定义。Unreal 4引擎由于使用了Photon Mapping算法，则不需要考虑这一问题。 在接下来的内容中，本文将分两部分对Unreal 4引擎中的Lightmass全局光照系统的使用进行介绍，其中包括：静态物体全局光照、动态物体全局光照和阴影效果。在介绍的同时，本文也对Unity中的相应功能进行对比，从而让读者更好地对了解Unreal 4引擎中的全局光照功能。 静态物体全局光照 本节主要介绍Unreal 4引擎中静态物体全局光照效果。其中主要包括：Color Bleeding和Ambient Occlusion。然后，将对Unreal 4引擎中影响全局光照烘焙质量和时间的参数进行说明。最后，介绍Unreal 4引擎中对相同场景使用多套全局光照烘焙效果的功能。 2.1 Color Bleeding 在Unreal 4和Unity引擎中，静态物体的全局光照效果都采用了Lightmap烘焙的方法。Lightmap其实是一张记录了静态物体光照信息的纹理。对于静态物体，其位置和几何形状都不会发生改变。在光源位置方向也不变的情况下，引擎可以对光线在漫反射材质表面多次反射的过程进行预计算，从而获得物体表面最终的间接光照信息。在实时计算时，只需要将纹理中对应位置的间接光照信息解析出来，并与直接光照一起参与计算，就可实现漫反射表面不同颜色物体之间相互辉映的效果，其也被称为Color Bleeding效果。 在Unreal 4引擎中烘焙静态全局光照，只需将物体的属性设置为Static，并且将光源设置成Stationary，然后点击Build进行烘焙即可，如下图所示： 烘焙结束后，在编辑器的Console页面会显示烘焙数据，主要反馈相应的烘焙耗时和内存使用，如下图所示： 然后编辑器中即可看到烘焙效果： 相应的，Unity引擎的全局光照系统Enlighten也同样支持Color Bleeding效果，其烘焙效果如下图所示： 当Lightmap烘焙好之后，还可以在Unreal 4和Unity引擎中查看Lightmap纹理贴图。在Unreal 4引擎中，可以在World Settings->Lightmaps页面中查看，在Unity引擎中可以在Lighting->Global maps页面中查看，如下图所示： Unreal 4和Unity引擎的Lightmap都采用了HDR格式，烘焙过程也是采用HDR渲染。在默认情况下两者Lightmap都包含了Directional信息，但都支持关闭Directional。Unreal 4引擎可以通过Project Settings->Platforms设置，Unity中可以通过Lightmapping Settings->Directional Mode设置，如下图所示： 2.2 Ambient Occlusion Unreal 4和Unity引擎的全局光照系统都支持世界空间Ambient Occlusion的烘焙。在Unreal 4中其设置是在World Setting的Lightmap中，此处相当于Unity引擎中的Ambient Occlusion功能（Lighting->Lightmappings Settings页面中） ，如下图所示： 下图显示了Unreal 4引擎中，关…

虚幻引擎学习之路：相机图像后处理
type: item
date: 2017-11-23T03:46:00+02:00
description: 之前UWA为大家分别介绍了Unreal 4引擎中渲染模块的光照系统和材质系统，在本篇文章中，我们将为大家介绍渲染模块的图像后处理这部分内容。 在此，特别感谢Unreal中国团队对于本篇文章中Unreal引擎相关内容的审核，并在UWA团队学习其引擎的道路上提供的大力支持。 图像后处理 渲染模块中图像后处理可用于实现各种特殊的镜头特效以及整体调节渲染的效果。它通常是在所有场景渲染结束后才执行。Unity引擎在2017版本之前的图像后处理都是采用将脚本组件添加到相机上实现。因此，每添加一个图像后处理脚本，就会多至少一次全屏幕的渲染Pass。Unity引擎在2017版本中引入了Post Processing Stack组件，该组件是一系列预定义图像后处理效果集合。它将多种图像后处理效果进行优化合并，提高了渲染效率，使开发者使用更加方便。Unreal 4引擎的图像后处理也是采用一系列预定义效果集合，开发者在使用时只需要从中勾选需要的效果即可。在接下来的内容中，本文将首先介绍Unreal 4引擎的图像后处理对象Post Process Volume的使用。然后，对其包含的一系列效果进行介绍，并与Unity引擎提供的效果做比较。最后，介绍自定义图像后处理的使用。 一、图像后处理使用 在Unreal 4引擎中，图像后处理模块是单独作为一个对象放在场景中，叫做“Post Process Volume”。创建时可以将“Modes”页面下“Post Process Volume”拖入场景即可，如下图所示： 其中，黄色的方框表示该Volume的范围，当相机处于范围中时，图像后处理才会生效。如果在Post Process Volume的设置界面中勾选了“Unbound”，则此图像后处理效果影响范围将扩大为整个世界空间，如下图所示： 同时，如果场景中出现多个Volume重叠，引擎会根据上图中的“Blend Weight”参数设置进行融合。 在Unity中Post Processing Stack的使用如同普通的脚本组件一样，只需挂接到相机上即可。然后通过新建Post Processing Profile进行参数设置，如下图所示： 目前，Unity的图像后处理有效范围是全局有效，部分区域有效的功能可通过脚本实现。但是Unity引擎提供的Post Processing Profile配置文件使参数共享变得更加便利。在不同的项目中，想要达到相同的图像后处理效果，只需共用相同的Post Processing Profile即可。 图像后处理使用Unreal 4 vs Unity小结 Unreal 4引擎与Unity 2017引擎的图像后处理功能都采用了统一的框架，将不同的预定义效果进行优化实现，其使用方式都很便捷。Unreal 4引擎的图像后处理支持有效区域以及混合的功能，Unity引擎提供的图像后处理配置文件能够更好地支持参数共享。 二、引擎内置效果 在Unreal 4引擎中，Post Process Volume的“Details”页面显示了不同类型图像后处理效果的设置，包括Color Grading，Tonemapper，Lens，Rendering等。在Unity引擎中，Post Process Profile的“Inspector”页面中显示了其支持的各种效果，如下图所示： 其中，大部分效果是Unreal 4引擎和Unity引擎都支持的。我们以对照的形式将其列出（Unreal 4 vs Unity）： Anti-Aliasing (vs) Anti-Aliasing Ambient Occlusion (vs) Ambient Occlusion Auto Exposure (vs) Eye Adaptation Bloom (vs) Bloom Color Grading (vs) Color Grading & User Lut Depth of Field (vs) Depth of Field Motion Blur (vs) Motion Blur Image Effects (vs) Chromatic Aberration & Grain & Vignette Screen Space Reflections (vs) Screen Space Reflection 接下来，我们将对Unreal 4引擎中的图像后处理效果逐一介绍。 1、Anti-Aliasing Unreal 4引擎中Anti-Aliasing也是图像后处理的一部分，可以在“Project Settings”->“Engine”->”Rendering”中找到其设置。Unreal 4引擎目前支持了三种反走样算法，如下图所示： 其中，效果最好的是Temporal AA，目前…

虚幻引擎学习之路：渲染模块之材质系统
type: item
date: 2017-11-16T05:26:00+02:00
description: 上周的Unreal 4引擎文章介绍了渲染模块的光照系统，在本篇文章中，我们继续介绍渲染模块的另一重要部分：材质系统。 在此，特别感谢Unreal中国团队对于本篇文章中Unreal引擎相关内容的审核，并在我们学习其引擎的道路上提供的大力支持。 材质系统 材质描述了场景中物体与光照进行交互的过程，它是决定物体表面外观的最重要部分之一。Unreal 4引擎的材质系统为开发者提供了丰富的功能，使得开发者能够非常便捷地设计出具有真实感的场景和角色。本文将在接下来的内容中对Unreal 4引擎的材质系统功能进行逐一介绍，其中主要分为四个部分：材质编辑、材质模型、材质使用和特殊功能。在介绍前三部分内容时，本文会根据需要与Unity引擎功能的相似性进行比较。 一、材质编辑 在Unreal 4引擎中创建材质可以通过“Content Browser”中的“Add New”按钮或者右键弹出菜单中选择Material创建，如下图所示： 然后，双击“Content Browser”中的材质资源，即可打开材质编辑器。 传统引擎的材质系统对于材质编辑的支持都是需要开发工程师和美术设计师合作完成。通常情况下，技术美术（Technical Artist）或图形程序工程师编写和修改Shader代码，然后美术设计师提供输入纹理以及调试Shader参数。Unreal 4引擎则提供了一套更为方便的编辑方式，使得美术能够几乎不依赖于程序员制作出较为理想的材质资源。这种编辑方式类是一种似于Blueprint的节点图。在编辑材质时，只需要用引擎提供的节点和连线即可制作出逻辑较为复杂的材质效果，如下图所示： （上图取自Unreal 4官方网站） 其中，上图左边是材质编辑的预览，右边是材质节点图。该节点图中的节点在编辑完成后会被自动替换成HLSL代码段，并生成相应的Shader代码在实时渲染时使用。在调试过程中，编辑完节点图并保存后，即可在场景视图中看到最新的结果。 Unity引擎原生仅支持通过修改Shader代码的方式制作新的材质。但在Unity引擎Asset Store中有第三方插件Shader Forge提供了类似的编辑功能【1】，如下图所示： （上图取自Unity Asset Store 【1】） 此外，在Unreal 4引擎中的材质编辑界面的“HLSL Code”页面中可以查看由节点图生成的代码，如下图所示： 在“Stats”页面中可以看到当前Shader的Instruction和Texture Sampler的数目，如下图所示。这是一个直观简单、但却很实用的功能。Unity引擎暂时还未原生支持该功能，研发团队需要使用第三方工具来自行进行计算。 除了使用节点图进行材质编辑，Unreal 4引擎也支持直接采用HLSL代码进行编辑。其详细内容可参考Unreal 4官方网站。 材质编辑Unreal 4 vs Unity小结 相比较而言，Unreal 4引擎原生提供了非常方便的节点图交互方式，Unity引擎通过第三方工具也可以达到类似的效果。 二、材质模型 与Unity引擎5.x的Standard Shader类似，Unreal 4引擎的材质系统使用了当前游戏渲染中非常流行基于物理的渲染材质（Physically Based Rendering，以下简称PBR）模型。因此，它们都只需要少量的输入参数，就能表达丰富的材质外观，如下图所示： 其中，左图是Unreal 4引擎的材质系统节点图中的基础节点，其白色圆圈表示的引脚表示可设置的输入参数，通过设置不同的输入参数可以达到不同的材质效果。右图是Unity 5.x的Standard Shader材质设置界面。两者大部分参数表示含义是相似的，可通过以下各参数的对应关系来进行理解（Unreal 4 Unity）： Base Color Albedo：材质颜色、贴图 Metallic Metallic：金属度 Roughness Smoothness：粗糙、光滑度 Emissive Color Emission：自发光颜色、贴图 Normal Normal Map：法线贴图 World Position Offset Height Map：高度图 Ambient Occlusion Occlusion：AO贴图 上图显示了Unreal 4引擎与Unity引擎中不透明物体渲染的Shader参数设置。对于半透明渲染和Alpha Test渲染Unreal 4引擎和Unity引擎也都支持，并且可以通过修改参数选项进行设置，如下图所示： 其中，左图显示了Unreal 4引擎材质编辑器中“Blend Mode”设置选项，右图显示了Unity引擎“Rendering Mode”设置选项。其对应关系为（Unreal 4 Unity）： Opaque O…