我目前正在研究使用虚幻引擎进行计算密集型项目的可用性,但谷歌并没有提供太多帮助。
对于该项目中在游戏循环的后台执行的大量计算,我需要使用OpenMP进行实现。这是流体模拟。
Windows上的虚幻引擎使用Visual Studio进行编译和构建,并且应当支持Visual Studio编译器所支持的内容,但我不确定是否可以使用适当的设置使UE编译能够支持OpenMP。 或者,我可以轻松地使用英特尔Threading Building Blocks TBB完成此工作,这似乎已经被用于UE…尽管可能只是内存分配器部分?
总的来说,我的问题是UE是否支持跨平台的高度并行化计算。如果您需要在所有可用核心上运行大量相同的计算,那么如何在UE中实现呢? 我不想手动创建一些线程,运行它们的代码块,通过连接等待完成,然后继续移动。我更喜欢使用parallel_for循环。
此外,我想知道从UE“脚本”中使用其他框架(如CUDA或OpenCL)有多容易。
我来自Unity,在那里我为高性能编写了c++的本地dll的c#包装器,但我对用c#包装本机代码有些疲倦,因此我更喜欢基于c++的引擎......但是,如果它本身在我的c++代码中所能做的有限,那么这并没有太大帮助......我认为当我学习时它都可以完成,但是我已经被找不到上述问题的任何信息搞得有点困惑了。任何带有“parallel”一词的内容通常都会导致蓝图。