我目前正在研究用于计算密集型项目的虚拟引擎的可用性,而Google并没有提供太多的帮助。
我需要在游戏循环的背景下为这个项目做一些繁重的计算,这个项目目前是用OpenMP实现的。流体模拟。
windows上的虚幻引擎使用visual编译和构建,因此应该支持visual编译器所具有的功能,但我不清楚是否可以让UE使用OpenMP的适当设置进行编译。或者,我可以轻松地使用Intels线程构建块TBB,这显然已经在UE.虽然也许只有内存分配器部分?
一般来说,我想我的问题是,有什么支持跨平台,严重并行计算与UE。如果您需要在所有可用核上运行大量相同的计算,您如何在UE中做到这一点?我不感兴趣手动创建一些线程,在块代码上运行它们,通过加入等待完成,然后继续。为了我的目的,我更喜欢parallel_for循环。
此外,我想知道在UE“脚本”中使用其他框架(如CUDA或OpenCL )有多容易。
我来自统一,我在c#包装器上使用c++编写本机dll,以获得高性能,但我对本机c#中的包装感到有点厌倦,所以我更喜欢基于c++的引擎.但是如果这本身在我的c++代码中所能做的事情是有限的,那么它就没有多大帮助.我想,当我学到怎么做的时候,这一切都能起作用,但我对无法找到任何关于上述问题的信息感到有点困惑。任何带有“平行”字的东西通常都会产生蓝图。
发布于 2016-07-28 06:55:53
UE中有一个ParallelFor(),在这里定义:ParallelFor
签名是void ParallelFor(int32 Num, TFunctionRef<void(int32)> Body, bool bForceSingleThread = false)
示例使用可以很容易地在源代码中找到。
https://stackoverflow.com/questions/38554767
复制相似问题