MonoGame/XNA纹理2D最佳实践

MonoGame/XNA纹理2D最佳实践,xna,monogame,Xna,Monogame,对于一个巨大的贴图,我必须渲染许多不同的纹理。目前,我不确定解决该问题的最佳性能。在我的选项中有两个选项。每个绘制周期渲染整个平铺贴图(每个平铺一个平铺),或为平铺集合创建渲染目标(将特定数量的平铺渲染为一个纹理),以减少平铺数量 我知道存在10MB的RenderTarget缓存限制,我也知道巨大的纹理可能会导致性能问题。(VRAM限制和纹理交换) 是否有一个神奇的纹理大小,我应该坚持?(除了提示:二的力量)好吧,你必须决定什么对你最合适,在不同的计算机上测试。我的方法是创建静态对象(无缝草)的

对于一个巨大的贴图,我必须渲染许多不同的纹理。目前,我不确定解决该问题的最佳性能。在我的选项中有两个选项。每个绘制周期渲染整个平铺贴图(每个平铺一个平铺),或为平铺集合创建渲染目标(将特定数量的平铺渲染为一个纹理),以减少平铺数量

我知道存在10MB的RenderTarget缓存限制,我也知道巨大的纹理可能会导致性能问题。(VRAM限制和纹理交换)


是否有一个神奇的纹理大小,我应该坚持?(除了提示:二的力量)

好吧,你必须决定什么对你最合适,在不同的计算机上测试。我的方法是创建静态对象(无缝草)的单一纹理层,然后绘制所有其他动态对象(岩石、树木)。但也取决于游戏类型……你能澄清一下吗:你说的是渲染屏幕上的内容,或者一些屏幕外的地图?你说的是多少块瓷砖?是否需要以编程方式渲染它们?如果滚动一个简单的平铺贴图,将屏幕的部分预渲染为纹理将非常不切实际。请记住,您只需要将平铺纹理发送一次到gpu,而动态渲染目标需要在更改时发送。我下意识的建议是,在您有一个正在运行的应用程序、对其进行分析并确认确切的瓶颈之前,避免进行优化。