XNA 2D相机性能

时间:2011-06-27 02:58:50

标签: xna

我想知道在SpriteBatch.Begin()中使用变换矩阵是渲染整个世界还是仅渲染视口定义的区域?如果没有,那么在没有严重性能问题的情况下渲染巨大世界的最佳方法是什么?

提前致谢!

1 个答案:

答案 0 :(得分:3)

您可以计算出此视口的边界矩形,而不是在矩形外部绘制任何内容。如果您的世界是基于网格的,那么这将变得更加容易。

对于基于网格的世界,您需要两个(嵌套的)for循环来绘制视口,宽度和高度。 对于每个循环,您需要一个起点和终点。

获取每个循环的起始点:将(宽度/高度)除以网格中单元格的(宽度/高度),然后将“放置”此数字。

获取每个循环的终点:将(宽度/高度)除以网格中单元格的(宽度/高度),然后将“天花板”除以此数字。

从那里,您可以使用先前计算的起点和终点正常绘制网格。

如果您的世界不是基于网格,您可以使用简单的“矩形点”测试或八叉树。

相关问题