为什么Monogame模型与效果绑定?

当我使用ContentManager在Monogame中加载模型时,模型包含每个网格上的效果( mesh.Effects )。 这让我感到困惑,因为模型似乎与其渲染直接相关,而不是作为独立的3D模型存在。 此外,这使得在代码中应用自定义效果更加困难,因为我已经遍历每个ModelMeshPart并分配了效果。 与2D的比较将是包含它自己的SpriteBatch设置的Texture2D ,这是没有意义的。 为什么模型与效果绑定在一起,我怎样才能将它们分开?

我相信这主要是为了更大的灵活性与模型的材料(只是纹理),并从FBX标准,这允许以这种方式的影响派生。

另外,请记住,效果会告诉GPU如何呈现特定的几何graphics,SpriteBatch是用于批量处理GPU调用的工具。

也就是说,这可能不是游戏中的一个特性(你可能需要统一的效果和效果批处理),所以你应该写一个你自己的Draw