0

我正在尝试在 XNA 中绘制一系列正方形。我正在查看所有关于 TriangleStrips 和 DynamicVertexBuffers 的文章。但是,不确定从哪里开始。

当前步骤 我可以使用 VertexPositionColor、TriangleList 和索引绘制 1 个正方形。现在我想画一系列不同颜色的正方形。

最终目标 要记住的是,我最终希望能够绘制多少个这样的方格。如果我们假设宽度为 5px,在 1920x1080 的屏幕上,我们可以计算出正方形的数量为 (1920 * 1080) / 25 = 82944。

任何关于如何实现这一点的指示都会很棒!

4

2 回答 2

0

通常,您可以像绘制第一个正方形一样绘制更多正方形。但是,性能会有很大损失。

相反,您可以将所有三角形添加到一个顶点缓冲区/索引缓冲区。您已经能够将两个三角形绘制为三角形列表。您应该能够轻松调整此例程以绘制两个以上的三角形。只需将相应的顶点和索引添加到缓冲区并修改绘图调用。

如果需要同一位置的顶点颜色不同,则需要在缓冲区中添加两个顶点。

这样,性能损失很小,因为你只用一个绘制调用绘制所有东西。虽然三角形的数量对于大多数显卡来说应该没有问题,但一些较小或较旧的显卡可能会遇到麻烦。如果是这样,你应该考虑改变你的绘图策略。也许甚至没有必要画那么多三角形。但是你可以考虑一下,如果结果性能太低......

于 2012-06-04T18:43:41.983 回答
0

如果您不关心 3D,只关心 2D - 您可以使用SpriteBatch在屏幕上绘制正方形/矩形。这将为您处理所有顶点/索引缓冲区管理的批处理。

于 2012-06-04T20:20:36.820 回答