在opengl中绘制岛屿的二维轮廓 我试图用OpenGL绘制C++中的一个岛屿/陆地排序的二维轮廓。它只是一个简单的岛屿,看起来有点像

在opengl中绘制岛屿的二维轮廓 我试图用OpenGL绘制C++中的一个岛屿/陆地排序的二维轮廓。它只是一个简单的岛屿,看起来有点像,c++,opengl,graphics,C++,Opengl,Graphics,我尝试了一些方法,比如绘制多边形,填充黑色,然后对大量顶点点进行硬编码,以获得岛的形状,并保持边缘看起来粗糙,如示例中所示。但我觉得这并不是最好的方法,因为顶点的数量太多了。这也很难调整,因为这不像我在Photoshop中那样,我可以直观地拉/添加/更改点 有没有更好更聪明的方法来绘制2D岛屿轮廓,以获得山一样的边缘?至于岛的整体形状,我天真的种植成吨的点来形成多边形形状是唯一的方法吗 我刚刚开始使用OpenGL,如有任何建议,我将不胜感激。谢谢 有很多方法,这里有两个简单的方法 简单方法:如评

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

有没有更好更聪明的方法来绘制2D岛屿轮廓,以获得山一样的边缘?至于岛的整体形状,我天真的种植成吨的点来形成多边形形状是唯一的方法吗


我刚刚开始使用OpenGL,如有任何建议,我将不胜感激。谢谢

有很多方法,这里有两个简单的方法

简单方法:如评论中所述,在图像编辑器中创建孤岛(使用alpha),并在启用混合的情况下绘制为四边形/三边形

更难的方法:导入矢量图形(矢量表示形成形状的点)并绘制为多边形。如果使用现有格式,这对新手来说可能会变得复杂。此外,虽然没有方法1那么有效,但可以获得更好的视觉效果,尤其是在计划缩放时


最后,如何实现它完全取决于您自己,但第一种方法简单明了,我建议新手(请务必稍后再来尝试方法2;)。

为什么不使用带有alpha通道/掩码的单一纹理四边形?嗯……如果我听起来太新手,请原谅。既然轮廓完全是纯黑色,为什么我需要纹理?如何使用四边形和alpha通道遮罩绘制岛?我仍然需要对顶点列表进行硬编码,或者我不必这样做?我认为“awoodland”的意思是:绘制一个平面(2个三角形),用代表岛屿轮廓的图像对其进行纹理处理,并激活alpha以获得岛屿轮廓周围的透明度。把飞机放在背景上,就这样了。这样你就可以在photoshop中编辑它并用OpenGL显示它。所以看起来没有简单的方法直接在代码中绘制它,而绘制点是唯一的方法?你可以直接用
glWritePixels
绘制,但这确实不是一个好方法。纹理存储在图形卡上,但每帧都将数据从主机CPU复制到GPU。