2011-08-29 98 views
0

我想用C++绘制一个岛屿/土地的2D轮廓。这只是一个简单的岛屿,看起来像一个here在opengl中绘制一个岛的2D轮廓

我尝试了像绘制多边形一样的方法,填充颜色黑色,然后硬编码顶点的吨,以获得岛的形状,并保持边缘看起来很粗糙,就像例子中的那个一样。但是我觉得这不是最好的办法,因为顶点的数量太多了。这也很难调整,因为它不像我在Photoshop中,我可以直观地拉/添加/更改点。

有没有更好更聪明的方法来绘制2D岛屿轮廓以获得山形边缘?至于岛屿的整体造型,是我幼稚的种植方式吨点形成多边形形状的唯一途径?

我刚刚开始使用OpenGL,并会非常感谢您的任何建议。谢谢!

+0

为什么不只是使用带alpha通道/掩码的单个纹理四元组? – Flexo

+0

嗯..帕尔如果我听起来太新手了。由于剪影完全是黑色,为什么我需要纹理?我怎样才能使用四通道和阿尔法通道掩模来绘制岛屿?我仍然需要对顶点列表进行硬编码,或者我不需要? – Carven

+0

我认为“awoodland”是指:绘制一个平面(2个三角形),用代表岛屿轮廓的图像纹理,并激活alpha以获得岛屿轮廓周围的透明度。把飞机放在背景上,就是这样。这样你就可以在Photoshop中编辑它并用OpenGL显示它。 – Valkea

回答

1

有很多方法可以解决这个问题,这里有两个简单的方法;

简单的方法:如评论中所述,在图像编辑器(带有alpha)中创建岛并绘制为启用混合的四分之一/三角形。

更难的方法:导入一个矢量图形(矢量意义点形状)并绘制成多边形。如果使用现有的格式,这对新手来说可能会变得复杂。此外,效果不如方法1,但可以有更好的视觉效果,特别是如果您计划放大/缩放。

最终完全取决于你如何实现它,但第一种方法是直接简单的,我建议对于一个新手(一定要稍后回来,并尝试方法2尽管;))。