unreal 合并actor - CSDN
  • Actor合并 对渲染有所了解的小伙伴一定知道,渲染耗时的瓶颈在于cpu频繁的向gpu发送数据,因此减少Draw Call的提交次数能够有效的提升性能。 《Unity Shader 入门精要》中提到了减少Draw Call的两种方式: 避免...

    更新说明

    4.22+版本引擎进行了更新,不再需要开发者手动进行合批。


    Actor合并

    对渲染有所了解的小伙伴一定知道,渲染耗时的瓶颈在于cpu频繁的向gpu发送数据,因此减少Draw Call的提交次数能够有效的提升性能。

    《Unity Shader 入门精要》中提到了减少Draw Call的两种方式:

    1. 避免使用大量很小的网格。当不可避免地需要使用很小的网格结构时,考虑是否可以合并它们。
    2. 避免使用过多的材质。尽量在不同的网格之间共用同一个材质。

    因此,在UE4关卡中,若存在多个使用同一材质或关联性较高的材质的静态网格体时,由于它们均是独立的StaticMeshActor个体,所以需要调用很多次绘制指令。为了减少Draw Call,可以使用Actor合并工具,该工具能够将多个静态网格体合并为一个新的actor。

    合并方式

    待合批的模型

    选中场景中的多个静态网格体后,打开该工具,可以选择三种方式进行合并。

    • 第一种将多个Mesh合并为一个Mesh,相同的材质合并插槽,不同的材质放置在不同的插槽。

    •  第二种将多个Mesh合并为一个Mesh,将所有材质融合成一个材质,属于特殊的代理几何体

    •  第三种将多个Mesh合并为一个Actor,将同种材质的同种模型合并为实例化网格体组件,可对各个实例进行Transform调整。

     

    展开全文
  • 使用前 使用后 ...这个功能可以在游戏没有运行和运行中把场景中多个StaticMesh整合到一个StaticMesh中,也可以把Actor中的StaticMesh整合到一起,并且保留每一个StaticMesh的材质...使用也很方便,选中要合并...

    使用前

    使用后

     

    这个功能可以在游戏没有运行和运行中把场景中多个StaticMesh整合到一个StaticMesh中,也可以把Actor中的StaticMesh整合到一起,并且保留每一个StaticMesh的材质通道

    在你重复用了太多Actor组合一个场景的时或者想重复利用摆放的某个场景时,如果它们都是静态的,可以考虑使用这个将所有模型组合起来

    使用也很方便,选中要合并的Actor或者StaticMesh,在窗口的开发者工具中找到融合Actor,点击融合即可

     

     

    展开全文
  • https://docs.unrealengine.com/en-us/Engine/Actors/Merging Actor Merging TheMerge Actorstool enables the user to combine multiple Static Meshes into a single new Actor. Materials can also be bake.....

    https://docs.unrealengine.com/en-us/Engine/Actors/Merging

    Actor Merging

    The Merge Actors tool enables the user to combine multiple Static Meshes into a single new Actor. Materials can also be baked together into a single Material with a series of custom textures using a new UV layout, and the original Static Meshes used can even be completely replaced by the newly merged asset.

    MergingActors.png

    Actor Merging Workflow

    Merging Static Meshes in your scene is handled like so:

    1. From the main menu choose Window > Developer Tools > Merge Actors.

      MergeMenu.png

    2. Select a number of Static Meshes in your level that your would like to merge.

      SelectedMeshes.png
    3. Choose the appropriate options for merging the selected Actors.

      ChooseSettings.png

      Use the reference tables below to learn about each of the settings in this window and the actions they perform.

    4. Click the Merge Actors button and give your new merged Actor a name, then click Save.

      MergingActors.png

      You can then open the merged Actor as it's own asset from your Content Browser.

    Merge Actors Tool Options

    At the top of the Merge Actors window is a list of all the Static Meshes selected in the viewport. Here you can check which meshes will be included in the final merge.

    If you have one or fewer meshes selected, you will see a yellow warning near the bottom of the window stating that you have insufficient mesh components for merging.

    Mesh Components List

    In the Mesh Components List you'll find the selected actors that will be used when merging them together.

    MeshComponentList.png

     

    Option

    Description

    Mesh Components List

    This area contains a checklist where you can choose which of the selected meshes will be included in the merge.

    Mesh Settings

    In the Mesh Settings section, you'll find the mesh properties that pertain to the meshes that will be merged.

    MeshSettings.png

     

    Option

    Description

    Pivot Point at Zero

    If set to true, the pivot point of the final merged actor will be set to the scene's origin [0,0,0]. If set to false, the pivot will be located at the pivot location of the first Static Mesh Actor selected for the merge.

    Merge Physics Data

    If true, this will merge together all of the physics primitives into a single physics object.

    Bake Vertex Data

    Bakes vertex data including vertex color and normals into the new resulting mesh.

    LOD Selection Type

    Use this to control which LODs are added to the merged object.

     

    Selection

    Description

    Use All LODs

    If selected, this use all available LOD levels when merging the actors.

    Use Specific LOD Level

    If selected, this will use only the selected LOD level when merging the actors.

    Calculate Correct LOD level

    If selected, this will calculate the appropriate LOD model for the given screen size.

     

    Advanced Options

     

    Generate Lightmap UVs

    Creates a new lightmap UV layout for the merged mesh, using the existing UV islands. This new layout will be placed in the Target Light Map UVChannel.

    Target Light Map Resolution

    Specifies the resolution for the new lightmap UVs, which controls the distance calculated between each island within the layout. Higher resolutions will yield tighter spacing between each island.

    Material Settings

    In the Material Settings section, you'll find the texture and material properties that pertain to the meshes that will be merged.

    MaterialSettings.png

     

    Option

    Description

    Merge Materials

    If checked, the Materials of all the merged assets will be combined into a single Material with new UV layout. The following subsettings apply only if Merge Materials is checked.

    Texture Size

    This provides access to the X and Y pixel dimensions (resolution) for the final merged Material's textures.

    Texture Sizing Type

    The selection options available when choosing how you want the size of your texture to be calculated.

     

    Type

    Description

    Use TextureSize for all material properties

    This will use the value entered into Texture Size for sizing.

    Use automatically biased texture sizes based on TextureSize

    This creates a biased set of {normal:diffuse:otherproperties} textures using the ratio of {1:0.5:0.25} so if the texture size is set to 512 it will output a 512 normal map, 256 diffuse map and 128 map for roughness specular etc (diffuse is clamped to 32x32 and roughness specular etc to 16x16)

    Use per property manually overridden texture sizes

    Enables the per texture overrides, and uses those values instead of Texture Size.

    Use Simplygon’s automatic texture sizing

    Uses Simplygon's algorithm for texture sizing based on its decimation settings. This should only be used if you are already using Simplygon.

     

    Normal Map

    If checked, a Normal map will be baked out for the resulting merged Actor.

    Metallic Map

    If checked, a Metallic map will be baked out for the resulting merged Actor. This nullifies the Metallic Constant property.

    Metallic Constant

    Only enabled if Metallic Map is unchecked, this sets a constant value for the Metallic property of the resulting merged Actor's Material.

    Roughness Map

    If checked, a Roughness map will be baked out for the resulting merged Actor. This nullifies the Roughness Constant property.

    Roughness Constant

    Only enabled if Roughness Map is unchecked, this sets a constant value for the Roughness property of the resulting merged Actor's Material.

    Specular Map

    If checked, a Specular map will be baked out for the resulting merged Actor. This nullifies the Specular Constant property.

    Specular Constant

    Only enabled if Specular Map is unchecked, this sets a constant value for the Specular property of the resulting merged Actor's Material.

    Emissive Map

    If checked, an Emissive map will be baked out for the resulting merged Actor.

    Opacity Map

    If checked, an Opacity map will be baked out for the resulting merged Actor. This nullifies the Opacity Constant property. Must also use the Blend Mode for Translucent to show correctly in the generated instances.

    Opacity Constant

    Only enabled if Opacity Map is unchecked, this sets a constant value for the Opacity property of the resulting merged Actor's Material.

    Opacity Mask Map

    If checked, an Opacity Mask map will be baked out for the resulting merged Actor. This nullifies the Opacity Mask Constant property. Must also use the Blend Mode for Masked to show correctly in the generated instances.

    Opacity Mask Constant

    Only enabled if Opacity Mask Map is unchecked, this sets a constant value for the Opacity Mask property of the resulting merged Actor's Material.

    Diffuse Texture Size

    Override for the Diffuse Texture Size. Enabled when Texture Sizing Type is set to Use per property manually overriden texture sizes.

    Normal Texture Size

    Override for the Normal Texture Size. Enabled when Texture Sizing Type is set to Use per property manually overriden texture sizes.

    Metallic Texture Size

    Override for the Metallic Texture Size. Enabled when Texture Sizing Type is set to Use per property manually overriden texture sizes.

    Roughness Texture Size

    Override for the Roughness Texture Size. Enabled when Texture Sizing Type is set to Use per property manually overriden texture sizes.

    Specular Texture Size

    Override for the Specular Texture Size. Enabled when Texture Sizing Type is set to Use per property manually overriden texture sizes.

    Emissive Texture Size

    Override for the Emissive Texture Size. Enabled when Texture Sizing Type is set to Use per property manually overriden texture sizes.

    Opacity Texture Size

    Override for the Opacity Texture Size. Enabled when Texture Sizing Type is set to Use per property manually overriden texture sizes.

    Opacity Mask Texture Size

    Override for the Opacity Mask Texture Size. Enabled when Texture Sizing Type is set to Use per property manually overriden texture sizes.

    Blend Mode

    This determines how the material's color is blended with background colors.

     

    Selection

    Description

    Opaque

    This blend mode defines a surface through which light neither passes nor penetrates.

    Masked

    This blend mode defines the visibility in a binary (on/off) fashion by marking whether areas of the Material should be visible or not.

    Translucent

    This blend mode defines the visibility of a Material by using an Opacity value.

    Additive

    This blend mode takes the pixels of the Material and adds them to the pixels of the background.

    Modulate

    This blend mode multiplies the value of the Material against the pixels of the background.

    Alpha Composite (Premultiplied Alpha)

    This blend mode is used with textures that already have a pre-multiplied alpha.

     

    Use Vertex Data for Baking Material

    Whether or not to use vertex data such as vertex color to bake Material result. Useful if you have a Material that is being controlled in some way by vertex color.

    Use Texture Binning

    This will calculate the varying output texture sizes according to their importance when packing the final atlas texture.

    Landscape Culling Settings

    In the Landscape Culling section, you'll find properties that use the Landscape to cull parts of the mesh while merging them.

    LandscapeCullingSettings.png

     

    Option

    Description

    Use Landscape Culling

    If checked, existing landscape geometry will be used to cull fully occluded triangles. For example, if you had a tree mesh that was planted such that the bottommost triangles were well below the surface of a landscape, then those occluded triangles would be removed upon merge.

    Standard Options

    In this section, you'll find properties that do not fit categorically in other sections, like being able to replace the actors in the viewport with the merged one.

    StandardOptions.png

     

    Option

    Description

    Replace Source Actors

    If checked, the Actors selected in the viewport will be removed and replaced with the new merged version. This will not affect the the original objects in the Content Browser

    展开全文
  • Actor 生命周期

    2018-01-15 09:59:05
    Actor 生命周期 本页面的内容: 生命周期详解从磁盘加载Play in Editor生成延迟生成生命走向终点 在游戏进程中 垃圾回收 高级垃圾回收 此文档是 Actor 生命周期的高级概述:Actor 如何...

    Actor 生命周期

    此文档是 Actor 生命周期的高级概述:Actor 如何被实例化(生成)到关卡中,以及如何被移除(销毁)。

    以下流程图展示了 Actor 被实例的三种主要路径。无论 Actor 的创建方式如何,销毁路径均相同。

    生命周期详解

    ActorLifeCycle1.png

    从磁盘加载

    已位于关卡中的 Actor 使用此路径,如 LoadMap 发生时、或 AddToWorld(从流关卡或子关卡)被调用时。

    1. 包/关卡中的 Actor 从磁盘中进行加载。

    2. PostLoad - 在序列化 Actor 从磁盘加载完成后被调用。在此处可执行自定义版本化和修复操作。PostLoad 与 PostActorCreated 互斥。

    3. InitializeActorsForPlay

    4. 为未初始化的 Actor 执行 RouteActorInitialize(包含无缝行程携带)

      1. PreInitializeComponents - 在 Actor 的组件上调用 InitializeComponent 之前进行调用

      2. InitializeComponent - Actor 上定义的每个组件的创建辅助函数。

      3. PostInitializeComponents - Actor 的组件初始化后调用

    5. BeginPlay - 关卡开始后调用

    Play in Editor

    Play in Editor 路径与 Load from Disk 十分相似,然而 Actor 却并非从磁盘中加载,而是从编辑器中复制而来。

    1. 编辑器中的 Actor 被复制到新世界场景中

    2. PostDuplicate 被调用

    3. InitializeActorsForPlay

    4. 为未初始化的 Actor 执行 RouteActorInitialize(包含无缝行程携带)

      1. PreInitializeComponents - 在 Actor 的组件上调用 InitializeComponent 之前进行调用

      2. InitializeComponent - Actor 上定义的每个组件的创建辅助函数。

      3. PostInitializeComponents - Actor 的组件初始化后调用

    5. BeginPlay - 关卡开始后调用

    生成

    这是生成(实例)Actor 时的路径。

    1. SpawnActor 被调用

    2. PostSpawnInitialize

    3. PostActorCreated - 创建后即被生成的 Actor 调用,构建函数类行为在此发生。PostActorCreated 与 PostLoad 互斥。

    4. ExecuteConstruction

      • OnConstruction - Actor 的构建。蓝图 Actor 的组件在此处创建,蓝图变量在此处初始化

    5. PostActorConstruction

      1. PreInitializeComponents - 在 Actor 的组件上调用 InitializeComponent 之前进行调用

      2. InitializeComponent - Actor 上定义的每个组件的创建辅助函数。

      3. PostInitializeComponents - Actor 的组件初始化后调用

    6. OnActorSpawned 在 UWorld 上播放

    7. BeginPlay 被调用。

    延迟生成

    将任意属性设为“Expose on Spawn”即可延迟 Actor 的生成。

    1. SpawnActorDeferred - 生成程序化 Actor,在蓝图构建脚本之前进行额外设置

    2. SpawnActor 中的所有操作发生;PostActorCreated 之后发生以下操作:

      1. 通过一个有效但不完整的 Actor 实例设置/调用多个“初始化函数”

      2. FinishSpawningActor -调用后对 Actor 进行最终化,在 Spawn Actor 行中选取 ExecuteConstruction。

    生命走向终点

    销毁 Actor 的方式有许多种,但终结其存在的方式始终如一。

    在游戏进程中

    它们完全为任选,因为许多 Actor 在游戏进程中不会实际消亡。

    Destroy - 游戏在 Actor 需要被移除时手动调用,但游戏进程仍在继续。Actor 被标记为等待销毁并从关卡的 Actor 阵列中移除。

    EndPlay - 在数个地方调用,保证 Actor 的生命走向终点。在游戏过程中,如包含流关卡的 Actor 被卸载,Destroy 将发射此项和关卡过渡。调用 EndPlay 的全部情形:

    • 对 Destroy 显式调用

    • Play in Editor 终结

    • 关卡过渡(无缝行程或加载地图) 包含 Actor 的流关卡被卸载

    • Actor 的生命期已过

    • 应用程序关闭(全部 Actor 被销毁)

    无论这些情形出现的方式如何,Actor 都将被标记为 RF_PendingKill,因此在下个垃圾回收周期中它将被解除分配。此外,可以考虑使用更整洁的 FWeakObjectPtr 代替手动检查“等待销毁”。

    OnDestroy - 这是对 Destroy 的旧有反应。也许应该将这里的所有内容移到 EndPlay,因为它被关卡过渡和其他游戏清理函数调用。

    垃圾回收

    一个对象被标记待销毁的一段时间后,垃圾回收会将其从内存中实际移除,释放其使用的资源。

    在对象的销毁过程中,以下函数将被调用:

    1. BeginDestroy - 对象可利用此机会释放内存并处理其他多线程资源(即为图像线程代理对象)。与销毁相关的大多数游戏性功能理应在 EndPlay 中 更早地被处理。

    2. IsReadyForFinishDestroy - 垃圾回收过程将调用此函数,以确定对象是否可被永久解除分配。返回 false,此函数即可延迟对象的实际销毁,直到下一个垃圾回收过程。

    3. FinishDestroy - 最后对象将被销毁,这是释放内部数据结构的另一个机会。这是内存释放前的最后一次调用。

    高级垃圾回收

    虚幻引擎 4 中的垃圾回收过程将构建共同被销毁对象的集群。较之于单个删除对象,集群可减少垃圾回收相关的总体时间和整体内存流失。可能随对象的加载创建子对象。将对象与其子对象组合到垃圾回收器的单个集群后,引擎可延迟释放集群使用的资源,直到整个对象可被释放时一次性释放全部资源。

    多数项目中无需对垃圾回收进行配置或修改,但存在一些特定情况 - 可以如下方式对垃圾回收器的“集群”行为进行调整,以提高效率:

    1. Clustering - 关闭集群。在 Project Settings 中的 Garbage Collection 部分下,可将 Create Garbage Collector UObject Clusters 选项设为 false。对多数项目而言,此操作将导致垃圾回收效率降低,因此只建议在性能测试证明其绝对有益的情况下使用。

    2. Cluster Merging - 如集群设为 true,Merge GC Clusters 选项(在 Project Settings 中的 Garbage Collection 部分下)可被设为 true,以便启动集群合并。此行为默认关闭,并不适合所有项目。在一个对象集群的构建过程中,对象将被检查,在其中可能找到对其他对象的引用。关闭集群合并的情况下(默认行为),那些引用将被记录;但被加载的对象和其子对象仍位于其原始集群中。开启集群合并的情况下,被加载对象和被引用对象的集群将被组合。例如,一个粒子系统资源可能引用一个材质资源;但如果集群合并被关闭,材质和粒子系统将因垃圾回收的原因而处在各自的集群中。开启集群合并后,因粒子系统引用材质,粒子资源集群将和材质集群进行合并。此行为通常不用于流动内容的游戏(如开放世界游戏),因为可能合并许多集群,形成更大、更多样化的对象群组。集群中的对象不会被单独销毁,将等待群组中的所有对象均被设为待销毁。而其中一小部分对象可能一直处于使用状态,因此内存中可能出现较大的对象集群。在特殊情况下(如大量引用对象未被其他对象共享的资源)可启用集群合并,并在代码中手动添加集群,可统一子对象的清理、减少垃圾回收器在游戏中必须进行的输入和依赖关系维持检查次数,进而提高性能。 AdvancedGC.png

    展开全文
  • 在开发中经常需要将多个模型合并成一个整体StaticMesh。 方法一: 在场景中直接选中多个模型,右键 Convert Actors To Static Mesh 大部分时候是可以的,但有时模型不标准(例如使用Datasimth导出的模型)法线、...
  • actor-critic框架

    千次阅读 2017-05-16 15:34:10
    最近发现我大自动化的思想在deep learning中很有体现呀,之前说过77要去研究bicnet了,读完之后从里面采用的actor-critic框架说起吧,这个就用到了我们自控里面反馈的思想。 据说今年几个顶会文章强化学习占到70%,...
  • Draw Call就是CPU调用图形编程接口,比如DirectX或OpenGL,来命令GPU进行渲染的操作。 1.为什么 Draw Call多了会影响帧率? 在每次调用Draw Call之前,CPU需要向GPU发送很多内容,包括数据,状态,命令等。...
  • Unreal4 入门(关卡动态加载)

    千次阅读 2016-10-19 11:50:49
    对于大型游戏MMORPG游戏或是3D街景(虚拟现实)还有大型无缝地图都需要地图啊,关卡动态加载的机制来达到让用户感觉自己一直是在漫游,而不会出现Loading(读条),卡界面等情况。...UnrealEngine4 中
  • Unreal网络架构

    千次阅读 2017-03-11 16:44:19
    最初的多玩家游戏是双玩家的调制解调器游戏,以DOOM为代表,而现在多玩家游戏已经进化成为大型的、持久的、交互形式更加自由的游戏,如Quake2,Unreal和Ultima Online,共享现实背后的技术已经有了巨大的进步。...
  • UNREAL ENGINE 4.12 正式发布!下载地址

    千次阅读 2016-07-09 11:32:46
    UNREAL ENGINE 4.12 正式发布! Alexander Paschall 在 June 1, 2016 | 功能新闻社区 Share on Facebook Share on Twitter Share on Google+ Share on LinkedIn 此版本内含虚幻引擎 4 的数百个更新,以及 ...
  • 本例将通过 “靠近影响椅子的颜色” 来展示什么是 动态材质实例(Dynamic Material Instance)如图,它通常是用一个参数化的材质实例 ...接着,我们创建一个继承自 Actor 的蓝图类,将椅子的模型拖入新建的蓝图类然后,
  • 目录 按键开门 设置按键映射 蓝图中使用按键 快速复制(Ctrl+W) 测试按键 长按开门 整理蓝图 原理 创建bool变量 ... 主要是制作多种开门方式,以及将开门多种开门方式合并,并且在创建中快速调...
  • Actor 生命周期 本页面的内容: 生命周期详解 从磁盘加载 Play in Editor 生成 延迟生成 生命走向终点 在游戏进程中 垃圾回收 高级垃圾回收 此文档是Actor生命周期的高级概述:...
  • 虚幻引擎游戏技能系统文档

    千次阅读 2020-06-09 19:01:22
    虚幻引擎游戏能力系统文档 通过一个简单的多人...当前文档和项目基于Unreal Engine 4.25。 GASShooter是此文档的姊妹篇,主要通过多人FPS/TPS项目演示GAS的一些高级应用。 当然,最好的文档是GAS源代码本身(Plugins
  • 第一部分从移动相关架构以及单机情况下移动的处理细节讲起 UE4移动组件详解(一)——移动框架与实现原理 而第二部分是关于移动组件同步解决方案的描述,里面有诸多细节来让移动的同步表现的更为流畅。...
  • VR 与 AR 开发实战

    千次阅读 2019-07-05 10:04:31
    内容简介 从虚渺的膨胀到实质的沉淀,本期 VR 与 AR 开发实战专题我们汇聚一线技术...Unreal Engine 4 VR 应用的 CPU 性能优化和差异化(王文斓,英特尔软件与服务事业群的资深软件工程师) VR 中的交互之熵(王锐,...
  • UE4事件总结

    2019-10-10 16:31:53
    --UE4的内置事件 Event Level Reset 这个事件如其名称,只存在于Level Buleprint,只能在服务端运行。...Event Actor Begin Overlap Event Actor End Overlap Event Hit Overlap事件仅在两个物体的碰撞...
  • ...https://docs.unrealengine.com/latest/INT/Engine/Performance/Profiler/index.html   原文: https://www.unrealengine.com/zh-CN/blog/how-to-improve-game-thread-cpu-performance...
1 2 3 4 5
收藏数 96
精华内容 38
热门标签
关键字:

unreal 合并actor