Colors 填充由XNA中的顶点绑定的二维区域

Colors 填充由XNA中的顶点绑定的二维区域,colors,xna,fill,vertices,Colors,Xna,Fill,Vertices,我正在通过实践学习XNA,正如标题所述,我试图看看是否有一种方法可以填充由平面上的顶点集合定义的2D区域。我想用颜色填充,而不是基于文件的纹理 例如,以一个圆角矩形为例,其顶点由四个四分之一圆三角形扇定义。顶点是通过构建三角形集合来定义的,但三角形可能不相邻 此外,我想用不止一种颜色来填充它——也就是说,将绑定区域划分为四个垂直条带,每个条带都有不同的颜色。您不必向我提供代码,将我引向资源将有很大帮助。我可以方便地使用谷歌(我确实先尝试过,但失败得很惨) 这既是对“什么适合XNA”的探索,也是对

我正在通过实践学习XNA,正如标题所述,我试图看看是否有一种方法可以填充由平面上的顶点集合定义的2D区域。我想用颜色填充,而不是基于文件的纹理

例如,以一个圆角矩形为例,其顶点由四个四分之一圆三角形扇定义。顶点是通过构建三角形集合来定义的,但三角形可能不相邻

此外,我想用不止一种颜色来填充它——也就是说,将绑定区域划分为四个垂直条带,每个条带都有不同的颜色。您不必向我提供代码,将我引向资源将有很大帮助。我可以方便地使用谷歌(我确实先尝试过,但失败得很惨)


这既是对“什么适合XNA”的探索,也是对其实现的探索。作为XNA的新手,我还想在可以做和不能做的基础上学习什么应该做和不应该做。

不太多,但这里有一个开始:

颜色填充是通过使用着色器完成的。这是一个很好的主题资源

您需要计算几何体并建立顶点缓冲区来保存它。请注意,XNA中的所有矢量几何体都是3D的,但使用固定在平面上的摄影机将模拟2D

要向不同的三角形添加不同的颜色,基本上需要将几何体分组到单独的顶点缓冲区中。然后,对每个缓冲区使用带有
颜色
参数的着色器,

在将缓冲区传递到图形设备之前,请设置适当的颜色。或者,您可以使用,它基本上允许您为每个顶点指定颜色

如果我理解正确,你需要开始研究三角剖分算法。Wikipedia应该列出其中一些。从技术上讲,XNA所有与图形相关的东西都是3d的,只是Spritebatch和friends允许你做2d绘图。。。