您的位置:主页 > 英雄合击发布网 > >

虚幻引擎4的实时动态覆盖系统

发布时间:2019-05-10 12:07  来源:http://www.wfcpbeijing.org
介绍

创建一个强大的封面系统起初可能看起来令人生畏,但是一旦你意识到它只是一组简单的技术粘在一起,手头的任务似乎不会那么令人生畏。

无论您是在制作下一代RTS还是想在FPS游戏中使用它,我希望您会发现本文中的信息对您有所帮助。我建议下载演示项目,并在放在一起时查看它是如何工作的。

演示项目包括上面讨论的所有技术的全能实现,以及评论良好的源代:https://horugame.com/real-time-dynamic-cover-system-for-unreal-engine- 4 /

设计

在设计封面系统时,您将面临的三个最重要的挑战如下:

数据生成数据持久数据使用

由于本文的重点是创建一个实时动态封面系统,其中封面可能在运行时可用或完全消失,因此必须对这三者应用优化方法。
我介绍了两种数据生成方法:navmesh edge-walking和3D对象扫描。

3D对象扫描

Navmesh边走边

如果您的封面数据是同步生成的,则会导致游戏能明显下降,导致游戏玩法滞后。我演示了如何利用虚幻引擎的优秀多线程API来并行化封面数据生成,充分利用现代游戏硬件中常见的多核处理。

同样,如果对封面数据的访问过于缓慢,则游戏速度会相当慢,在封面查询中会消耗大量的CPU和/或GPU周期。为避免这种情况,最好使用adata结构,该结构用于空间数据的实时并发查找:八叉树。适当地使用八叉树也允许存储自定义封面数据,例如,覆盖材料(石头与干草),身高,健康等,快速高效地进入。

数据使用优化–当你的单位正在积极地决定实时使用哪个封面时–最小化光线投射的数量并确保空间查找工具(八叉树)的可用以及对直接获取请求(数组或地图)的支持。

为了预测一个单位如何从掩护中走出来开火,有必要确定它的倾斜或倾斜能力。坦克可以从掩护中删除–一名步兵可以。我发现在不使用太多光线投影的情况下实现这一目标的最佳方法是定义“倾斜偏移”。单位。这些只是简单的花车,在从封面进行击中测试时会被添加到单元的位置。

最后一项能是实时动态更新–每当在游戏中产生新对象时,我们就会通过代表使用虚幻的事件系统在其周围(和内部)生成封面点。这确保了我们不会在Tick上浪费资源,如果不小心,这可能会大大减慢游戏速度。 Wehook进入Recast’的navmesh磁贴更新事件,并仅在必要时更新相应磁贴中的封面点。

尽管所有的技术说话,它实际上非常简单:一些简单的for循环和UE4文档中的几个缺失的页面。所以让我们开始吧!

生成数据–两个途径

有多种生成封面数据的策略,我介绍了两个最突出的策略:首先,一种类似于3D扫描的技术,然后是一种navmesh边缘行走方法。

3D对象扫描依赖于围绕对象创建的3D网格,并且通常有3个主要for循环来完成大部分工作,每个轴一个。您迭代网格上相隔恒定距离的点,并检查是否使用光线投射击中了任何内容。

3D对象扫描:

比边缘行走更均匀地分布覆盖点支持与navmesh不兼容的对象,但提供封面,例如“强制领域”错误的可能很小速度较慢(因为网格点的数量很多)应对景观不佳

基于导航网格的方法主要依赖于navmesh数据并且不处理对象本身:如果地图上的某个点未被任何navmesh多边形覆盖,那么这意味着它被足够大的东西占据以提供覆盖

Navmesh边缘行走:

相当快轻松处理坚固的景观拓扑无法处理力场等更容易出错:瓦片边界,m介绍

创建一个强大的封面系统起初可能看起来令人生畏,但是一旦你意识到它只是一组简单的技术粘在一起,手头的任务似乎不会那么令人生畏。

无论您是在制作下一代RTS还是想在FPS游戏中使用它,我希望您会发现本文中的信息对您有所帮助。我建议下载演示项目,并在放在一起时查看它是如何工作的。

演示项目包括上面讨论的所有技术的全能实现,以及评论良好的源代:https://horugame.com/real-time-dynamic-cover-system-for-unreal-engine- 4 /

设计

在设计封面系统时,您将面临的三个最重要的挑战如下:

数据生成数据持久数据使用

由于本文的重点是创建一个实时动态封面系统,其中封面可能在运行时可用或完全消失,因此必须对这三者应用优化方法。
我介绍了两种数据生成方法:navmesh edge-walking和3D对象扫描。

3D对象扫描

Navmesh边走边

如果您的封面数据是同步生成的,则会导致游戏能明显下降,导致游戏玩法滞后。我演示了如何利用虚幻引擎的优秀多线程API来并行化封面数据生成,充分利用现代游戏硬件中常见的多核处理。

同样,如果对封面数据的访问过于缓慢,则游戏速度会相当慢,在封面查询中会消耗大量的CPU和/或GPU周期。为避免这种情况,最好使用adata结构,该结构用于空间数据的实时并发查找:八叉树。适当地使用八叉树也允许存储自定义封面数据,例如,覆盖材料(石头与干草),身高,健康等,快速高效地进入。

数据使用优化–当你的单位正在积极地决定实时使用哪个封面时–最小化光线投射的数量并确保空间查找工具(八叉树)的可用以及对直接获取请求(数组或地图)的支持。

为了预测一个单位如何从掩护中走出来开火,有必要确定它的倾斜或倾斜能力。坦克可以从掩护中删除–一名步兵可以。我发现在不使用太多光线投影的情况下实现这一目标的最佳方法是定义“倾斜偏移”。单位。这些只是简单的花车,在从封面进行击中测试时会被添加到单元的位置。

最后一项能是实时动态更新–每当在游戏中产生新对象时,我们就会通过代表使用虚幻的事件系统在其周围(和内部)生成封面点。这确保了我们不会在Tick上浪费资源,如果不小心,这可能会大大减慢游戏速度。 Wehook进入Recast’的navmesh磁贴更新事件,并仅在必要时更新相应磁贴中的封面点。

尽管所有的技术说话,它实际上非常简单:一些简单的for循环和UE4文档中的几个缺失的页面。所以让我们开始吧!

生成数据–两个途径

有多种生成封面数据的策略,我介绍了两个最突出的策略:首先,一种类似于3D扫描的技术,然后是一种navmesh边缘行走方法。

3D对象扫描依赖于围绕对象创建的3D网格,并且通常有3个主要for循环来完成大部分工作,每个轴一个。您迭代网格上相隔恒定距离的点,并检查是否使用光线投射击中了任何内容。

3D对象扫描:

比边缘行走更均匀地分布覆盖点支持与navmesh不兼容的对象,但提供封面,例如“强制领域”错误的可能很小速度较慢(因为网格点的数量很多)应对景观不佳

基于导航网格的方法主要依赖于navmesh数据并且不处理对象本身:如果地图上的某个点未被任何navmesh多边形覆盖,那么这意味着它被足够大的东西占据以提供覆盖

Navmesh边缘行走:

相当快轻松处理坚固的景观拓扑无法处理力场等更容易出错:瓦片边界,m介绍

创建一个强大的封面系统起1月5号新开传奇私服初可能看起来令人生畏,但是一旦你意识到它只是一组简单的技术粘在一起,手头的任务似乎不会那么令人生畏。

无论您是在制作下一代RTS还是想在FPS游戏中使用它,我希望您会发现本文中的信息对您有所帮助。我建议下载演示项目,并在放在一起时查看它是如何工作的。

演示项目包括上面讨论的所有技术的全能实现,以及评论良好的源代:https://horugame.com/real-time-dynamic-cover-system-for-unreal-engine- 4 /

设计

在设计封面系统时,您将面临的三个最重要的挑战如下:

数据生成数据持久数据使用

由于本文的重点是创建一个实时动态封面系统,其中封面可能在运行时可用或完全消失,因此必须对这三者应用优化方法。
我介绍了两种数据生成方法:navmesh edge-walking和3D对象扫描。

3D对象扫描

Navmesh边走边

如果您的封面数据是同步生成的,则会导致游戏能明显下降,导致游戏玩法滞后。我演示了如何利用虚幻引擎的优秀多线程API来并行化封面数据生成,充分利用现代游戏硬件中常见的多核处理。

同样,如果对封面数据的访问过于缓慢,则游戏速度会相当慢,在封面查询中会消耗大量的CPU和/或GPU周期。为避免这种情况,最好使用adata结构,该结构用于空间数据的实时并发查找:八叉树。适当地使用八叉树也允许存储自定义封面数据,例如,覆盖材料(石头与干草),身高,健康等,快速高效地进入。

数据使用优化–当你的单位正在积极地决定实时使用哪个封面时–最小化光线投射的数量并确保空间查找工具(八叉树)的可用以及对直接获取请求(数组或地图)的支持。

为了预测一个单位如何从掩护中走出来开火,有必要确定它的倾斜或倾斜能力。坦克可以从掩护中删除–一名步兵可以。我发现在不使用太多光线投影的情况下实现这一目标的最佳方法是定义“倾斜偏移”。单位。这些只是简单的花车,在从封面进行击中测试时会被添加到单元的位置。

最后一项能是实时动态更新–每当在游戏中产生新对象时,我们就会通过代表使用虚幻的事件系统在其周围(和内部)生成封面点。这确保了我们不会在Tick上浪费资源,如果不小心,这可能会大大减慢游戏速度。 Wehook进入Recast’的navmesh磁贴更新事件,并仅在必要时更新相应磁贴中的封面点。

尽管所有的技术说话,它实际上非常简单:一些简单的for循环和UE4文档中的几个缺失的页面。所以让我们开始吧!

生成数据–两个途径

有多种生成封面数据的策略,我介绍了两个最突出的策略:首先,一种类似于3D扫描的技术,然后是一种navmesh边缘行走方法。

3D对象扫描依赖于围绕对象创建的3D网格,并且通常有3个主要for循环来完成大部分工作,每个轴一个。您迭代网格上相隔恒定距离的点,并检查是否使用光线投射击中了任何内容。

3D对象扫描:

比边缘行走更均匀地分布覆盖点支持与navme

sh不兼容的对象,但提供封面,例如“强制领域”错误的可能很小速度较慢(因为网格点的数量很多)应对景观不佳

基于导航网格的方法主要依赖于navmesh数据并且不处理对象本身:如果地图上的某个点未被任何navmesh多边形覆盖,那么这意味着它被足够大的东西占据以提供覆盖

Navmesh边缘行走:

相当快轻松处理坚固的景观拓扑无法处理力场等更容易出错:瓦片边界,m介绍

创建一个强大的封面系统起初可能看起来令人生畏,但是一旦你意识到它只是一组简单的技术粘在一起,手头的任务似乎不会那么令人生畏。

无论您是在制作下一代RTS还是想在FPS游戏中使用它,我希望您会发现本文中的信息对您有所帮助。我建议下载演示项目,并在放在一起时查看它是如何工作的。

演示项目包括上面讨论的所有技术的全能实现,以及评论良好的源代:https://horugame.com/real-time-dynamic-cover-system-for-unreal-engine- 4 /

设计

在设计封面系统时,您将面临的三个最重要的挑战如下:

数据生成数据持久数据使用

由于本文的重点是创建一个实时动态封面系统,其中封面可能在运行时可用或完全消失,因此必须对这三者应用优化方法。
我介绍了两种数据生成方法:navmesh edge-walking和3D对象扫描。

3D对象扫描

Navmesh边走边

如果您的封面数据是同步生成的,则会导致游戏能明显下降,导致游戏玩法滞后。我演示了如何利用虚幻引擎的优秀多线程API来并行化封面数据生成,充分利用现代游戏硬件中常见的多核处理。

同样,如果对封面数据的访问过于缓慢,则游戏速度会相当慢,在封面查询中会消耗大量的CPU和/或GPU周期。为避免这种情况,最好使用adata结构,该结构用于空间数据的实时并发查找:八叉树。适当地使用八叉树也允许存储自定义封面数据,例如,覆盖材料(石头与干草),身高,健康等,快速高效地进入。

数据使用优化–当你的单位正在积极地决定实时使用哪个封面时–最小化光线投射的数量并确保空间查找工具(八叉树)的可用以及对直接获取请求(数组或地图)的支持。

为了预测一个单位如何从掩护中走出来开火,有必要确定它的倾斜或倾斜能力。坦克可以从掩护中删除–一名步兵可以。我发现在不使用太多光线投影的情况下实现这一目标的最佳方法是定义“倾斜偏移”。单位。这些只是简单的花车,在从封面进行击中测试时会被添加到单元的位置。

最后一项能是实时动态更新–每当在游戏中产生新对象时,我们就会通过代表使用虚幻的事件系统在其周围(和内部)生成封面点。这确保了我们不会在Tick上浪费资源,如果不小心,这可能会大大减慢游戏速度。 Wehook进入Recast’的navmesh磁贴更新事件,并仅在必要时更新相应磁贴中的封面点。

尽管所有的技术说话,它实际上非常简单:一些简单的for循环和UE4文档中的几个缺失的页面。所以让我们开始吧!

生成数据–两个途径

有多种生成封面数据的策略,我介绍了两个最突出的策略:首先,一种类似于3D扫描的技术,然后是一种navmesh边缘行走方法。

3D对象扫描依赖于围绕对象创建的3D网格,并且通常有3个主要for循环来完成大部分工作,每个轴一个。您迭代网格上相隔恒定距离的点,并检查是否使用光线投射击中了任何内容。

3D对象扫描:

比边缘行走更均匀地分布覆盖点支持与navmesh不兼容的对象,但提供封面,例如“强制领域”错误的可能很小速度较慢(因为网格点的数量很多)应对景观不佳

基于导航网格的方法主要依赖于navmesh数据并且不处理对象本身:如果地图上的某个点未被任何navmesh多边形覆盖,那么这意味着它被足够大的东西占据以提供覆盖

Navmesh边缘行走:

相当快轻松处理坚固的景观拓扑无法处理力场等更容易出错:瓦片边界,m介绍

创建一个强大的封面系统起初可能看起来令人生畏,但是一旦你意识sf传奇1.95诛仙合计到它只是一组简单的技术粘在一起,手头的任务似乎不会那么令人生畏。

无论您是在制作下一代RTS还是想在FPS游戏中使用它,我希望您会发现本文中的信息对您有所帮助。我建议下载演示项目,并在放在一起时查看它是如何工作的。

演示项目包括上面讨论的所有技术的全能实现,以及评论良好的源代:https://horugame.com/real-time-dynamic-cover-system-for-unreal-engine- 4 /

设计

在设计封面系统时,您将面临的三个最重要的挑战如下:

数据生成数据持久数据使用

由于本文的重点是创建一个实时动态封面系统,其中封面可能在运行时可用或完全消失,因此必须对这三者应用优化方法。
我介绍了两种数据生成方法:navmesh edge-walking和3D对象扫描。

3D对象扫描

Navmesh边走边

如果您的封面数据是同步生成的,则会导致游戏能明显下降,导致游戏玩法滞后。我演示了如何利用虚幻引擎的优秀多线程API来并行化封面数据生成,充分利用现代游戏硬件中常见的多核处理。

同样,如果对封面数据的访问过于缓慢,则游戏速度会相当慢,在封面查询中会消耗大量的CPU和/或GPU周期。为避免这种情况,最好使用adata结构,该结构用于空间数据的实时并发查找:八叉树。适当地使用八叉树也允许存储自定义封面数据,例如,覆盖材料(石头与干草),身高,健康等,快速高效地进入。

数据使用优化–当你的单位正在积极地决定实时使用哪个封面时–最小化光线投射的数量并确保空间查找工具(八叉树)的可用以及对直接获取请求(数组或地图)的支持。

为了预测一个单位如何从掩护中走出来开火,有必要确定它的倾斜或倾斜能力。坦克可以从掩护中删除–一名步兵可以。我发现在不使用太多光线投影的情况下实现这一目标的最佳方法是定义“倾斜偏移”。单位。这些只是简单的花车,在从封面进行击中测试时会被添加到单元的位置。

最后一项能是实时动态更新–每当在游戏中产生新对象时,我们就会通过代表使用虚幻的事件系统在其周围(和内部)生成封面点。这确保了我们不会在Tick上浪费资源,如果不小心,这可能会大大减慢游戏速度。 Wehook进入Recast’的navmesh磁贴更新事件,并仅在必要时更新相应磁贴中的封面点。

尽管所有的技术说话,它实际上非常简单:一些简单的for循环和UE4文档中的几个缺失的页面。所以让我们开始吧!

生成数据–两个途径

有多种生成封面数据的策略,我介绍了两个最突出的策略:首先,一种类似于3D扫描的技术,然后是一种navmesh边缘行走方法。

3D对象扫描依赖于围绕对象创建的3D网格,并且通常有3个主要for循环来完成大部分工作,每个轴一个。您迭代网格上相隔恒定距离的点,并检查是否使用光线投射击中了任何内容。

3D对象扫描:

比边缘行走更均匀地分布覆盖点支持与navmesh不兼容的对象,但提供封面,例如“强制领域”错误的可能很小速度较慢(因为网格点的数量很多)应对景观不佳

基于导航网格的方法主要依赖于navmesh数据并且不处理对象本身:如果地图上的某个点未被任何navmesh多边形覆盖,那么这意味着它被足够大的东西占据以提供覆盖

Navmesh边缘行走:

相当快轻松处理坚固的景观拓扑无法处理力场等更容易出错:瓦片边界,m介绍

创建一个强大的封面系统起初可能看起来令人生畏,但是一旦你意识到它只是一组简单的技术粘在一起,手头的任务似乎不会那么令人生畏。

无论您是在制作下一代RTS还是想在FPS游戏中使用它,我希望您会发现本文中的信息对您有所帮助。我建议下载演示项目,并在放在一起时查看它是如何工作的。

演示项目包括上面讨论的所有技术的全能实现,以及评论良好的源代:https://horugame.com/real-time-dynamic-cover-system-for-unreal-engine- 4 /

设计

在设计封面系统时,您将面临的三个最重要的挑战如下:

数据生成数据持久数据使用

由于本文的重点是创建一个实时动态封面系统,其中封面可能在运行时可用或完全消失,因此必须对这三者应用优化方法。
我介绍了两种数据生成方法:navmesh edge-walking和3D对象扫描。

3D对象扫描

Navmesh边走边

如果您的封面数据是同步生成的,则会导致游戏能明显下降,导致游戏玩法滞后。我演示了如何利用虚幻引擎的优秀多线程API来并行化封面数据生成,充分利用现代游戏硬件中常见的多核处理。

同样,如果对封面数据的访问过于缓慢,则游戏速度会相当慢,在封面查询中会消耗大量的CPU和/或GPU周期。为避免这种情况,最好使用adata结构,该结构用于空间数据的实时并发查找:八叉树。适当地使用八叉树也允许存储自定义封面数据,例如,覆盖材料(石头与干草),身高,健康等,快速高效地进入。

数据使用优化–当你的单位正在积极地决定实时使用哪个封面时–最小化光线投射的数量并确保空间查找工具(八叉树)的可用以及对直接获取请求(数组或地图)的支持。

为了预测一个单位如何从掩护中走出来开火,有必要确定它的倾斜或倾斜能力。坦克可以从掩护中删除–一名步兵可以。我发现在不使用太多光线投影的情况下实现这一目标的最佳方法是定义“倾斜偏移”。单位。这些只是简单的花车,在从封面进行击中测试时会被添加到单元的位置。

最后一项能是实时动态更新–每当在游戏中产生新对象时,我们就会通过代表使用虚幻的事件系统在其周围(和内部)生成封面点。这确保了我们不会在Tick上浪费资源,如果不小心,这可能会大大减慢游戏速度。 Wehook进入Recast’的navmesh磁贴更新事件,并仅在必要时更新相应磁贴中的封面点。

尽管所有的技术说话,它实际上非常简单:一些简单的for循环和UE4文档中的几个缺失的页面。所以让我们开始吧!

生成数据–两个途径

有多种生成封面数据的策略,我介绍了两个最突出的策略:首先,一种类似于3D扫描的技术,然后是一种navmesh边缘行走方法。

3D对象扫描依赖于围绕对象创建的3D网格,并且通常有3个主要for循环来完成大部分工作,每个轴一个。您迭代网格上相隔恒定距离的点,并检查是否使用光线投射击中了任何内容。

3D对象扫描:

比边缘行走更均匀地分布覆盖点支持与navmesh不兼容的对象,但提供封面,例如“强制领域”错误的可能很小速度较慢(因为网格点的数量很多)应对景观不佳

基于导航网格的方法主要依赖于navmesh数据并且不处理对象本身:如果地图上的某个点未被任何navmesh多边形覆盖,那么这意味着它被足够大的东西占据以提供覆盖

Navmesh边缘行走:

相当快轻松处理坚固的景观拓扑无法处理力场等更容易出错:瓦片边界,m
相关新闻:
上一篇:NaturalMotion的Morpheme 1.2增加了Wii支持 下一篇:暗黑破坏神II商店中的毁灭之王