我正在研究为Windows Phone和Windows 8 RT制作游戏。游戏的第一次迭代将使用XNA作为用户界面。XNA,矢量数学和GPU
但因为我计划有可能不使用XNA其他迭代的,我写在便携式类库我的核心游戏逻辑。
我已经得到了到我在哪里在核心游戏逻辑计算矢量数学(子画面的位置)的一部分。
当我搞清楚了这一点,我有一个同事告诉我,我应该确保我的GPU(而不是CPU)做这些计算。
所以,这里是一个问题,如果我使用XNA矢量库做我的矢量计算,都将自动在GPU上做了什么?
边问:如果不是,它们应当在GPU上做了什么?或者我可以在我的Portable Class Library中执行它们并让CPU运行它们吗?
注意:如果我需要让XNA执行它们以便我可以使用GPU,那么从XNA将这些功能注入到我的核心逻辑中并不困难。我只想知道这是不是我应该做的。
注二:我的游戏是一款2D游戏。它将计算坏人和射弹沿着矢量的运动。 (这意味着这不是一个巨大的3D游戏。)
偏离主题,但我认为XNA正在走出门外。我建议寻找MonoGame的便携性和更好的未来前景。 –
@AdamHouldsworth - 我打算转到MonoGame。我听说从XNA移植到Monogame是非常容易的。所以我想我从XNA开始,然后移植它。 – Vaccano
假设你的PCL从XNA的Vector2类开始(这是一个很好的开始,因为它非常强大)。 Vector2是一个由2个浮点组成的结构。据我所知,它的方法都是CIL。如果你不是在开发一个“巨大的3D游戏”,那么你的同事在将vector2计算移到GPU中看到了什么好处?您必须在HLSL(.NET)或DirectX或OpenGL中编写自己的接口到GPU,这听起来很耗时。我认为也许你的同事搞了一些错误的优化。 –