我正在尝试在XNA中绘制一系列正方形。我正在查看有关TriangleStrips和DynamicVertexBuffers的所有这些文章。但是,不知道从哪里开始。
当前步骤 我可以使用VertexPositionColor,TriangleList和索引绘制1个方格。现在我想绘制一系列不同颜色的正方形。
结束目标 需要记住的是最终我希望能够绘制的这些方块的数量。如果我们假设宽度为5像素,则在1920x1080的屏幕上,我们可以计算出的平方数(1920 * 1080)/ 25 = 82944。
关于如何实现这一点的任何指示都会很棒!
答案 0 :(得分:0)
通常,您可以像绘制第一个方块一样绘制更多正方形。但是,性能会有很大的损失。
相反,您可以将所有三角形添加到一个顶点缓冲区/索引缓冲区。您已经能够将两个三角形绘制为三角形列表。您应该能够轻松调整此例程以绘制两个以上的三角形。只需将相应的顶点和索引添加到缓冲区并修改绘制调用。
如果您需要使用不同颜色的相同位置的顶点,则需要将两个顶点添加到缓冲区。
这样,性能损失很小,因为只用一次绘制调用即可绘制所有内容。虽然对于大多数图形卡而言三角形的数量应该没有问题,但是一些较小或较旧的图形卡可能会遇到麻烦。如果是这样,您应该考虑更改您的绘图策略。也许甚至没有必要绘制那么多三角形。但是你可以考虑一下,如果产生的性能太低......
答案 1 :(得分:0)
如果您不关心3D,只需2D - 您可以使用SpriteBatch在屏幕上绘制正方形/矩形。这将为您处理所有顶点/索引缓冲区管理的批处理。