C# 数学库(System.Numerics 与 Math.NET)

问题描述 投票:0回答:1

我正在尝试制作自己的游戏引擎以用于学习目的,但我也在尝试制作一些经过优化并且能够处理各种

cross-platform
游戏的东西。

也就是说,我现在需要选择一个数学库来处理图形渲染的 SIMD 操作,但我无法决定应该选择哪一个。

经过一些研究,我发现 Math.NET 似乎非常适合这项工作,但本机

System.Numerics
似乎更容易使用,并且不需要第三方依赖项。

我看过一些帖子声称

System.Numerics
很慢,但它们都已经过了预产期很久了(3到6年前),所以我认为他们不再有可靠的结果了。

所以我的问题是,特别是现在

.NET Core 3.0
已经发布了,
System.Numerics
是否变得足够可靠,可以用于繁重的图形计算,或者我应该忘记它并选择像
Math.NET
这样的东西?

最后,还有我没有考虑过的更好的选择吗?我承认,如果有一个库提供了对特定于平台的代码的某种抽象,那就太好了(但我自己编写它也不会成为问题)

c# graphics game-engine numeric math.net
1个回答
0
投票

可能是速度与精度的情况。有时,游戏中的数学计算可以摆脱某些近似值,例如经典的快速反平方根计算,而不是传统上根据公式进行计算。

似乎

Math.NET
最初是作为
System.Numerics
功能更丰富的替代品,而后者并不是为了高速计算目的而开发的。随着最近的发展,
System.Numerics
可能已经赶上了
Math.NET
。最终,分析将帮助您找出哪个更好。

还有一个注释 - Unity 拥有旧的数学库,以及新的支持 SIMD 的数学库,这都表明

System.Numerics
的性能可能不那么高 - 但这只是一个观察结果。

© www.soinside.com 2019 - 2024. All rights reserved.