2010-05-15 62 views
0

我正在学习XNA,并且如标题所述,我试图查看是否有方法填充由顶点集合定义的2D区域平面。我想填充颜色,而不是基于文件的纹理。在XNA中填充由顶点约束的2D区域

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

此外,我想用不止一种颜色填充它 - 即将装订区域划分为四个垂直带,并且每个颜色都不同。你不必向我提供代码,指向我的资源将有很大的帮助。我可以很方便地与谷歌(我曾尝试过,但失败惨痛)。

这是对“XNA适合什么”的探索,因为它是它的实现。对XNA来说很新,我也想知道什么可以或不可以做什么,应该做什么也不应该做什么。

+1

如果我正确地理解了你,你需要开始研究三角测量算法。维基百科应该列出其中的一些。 – SigTerm 2010-05-15 21:38:32

回答

1

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

颜色填充通过使用着色器来完成。 Reimer's XNA Tutorials on pixel shaders是关于这个话题的很好的资源。

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

要为不同的三角形添加不同的颜色,您基本上需要将几何图形分组为不同的顶点缓冲区。然后,使用带有color参数的着色器,对于每个缓冲区, 在将缓冲区传递给图形设备之前设置适当的颜色。另外,你可以使用a vertex format containing color information,它基本上让你给每个顶点分配一个颜色。

+0

从技术上讲,XNA的所有图形相关的东西都是3D,只是Spritebatch和朋友让你做2D绘图...... – RCIX 2010-05-16 00:19:10