用opengl绘制一个岛屿的2D剪影

Drawing a 2D silhouette of an island in opengl

本文关键字:岛屿 一个 2D 剪影 opengl 绘制      更新时间:2023-10-16

我试图用OpenGL在c++中绘制岛屿/陆地的2D轮廓。它只是一个简单的岛,看起来就像这里的这个

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

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

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

有很多方法可以做到这一点,这里有两种简单的方法;

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

更难的方法:导入矢量图形(矢量意味着构成形状的点)并绘制为多边形。如果使用现有格式,这对于新手来说可能会变得复杂。而且,虽然没有方法1那么有效,但是可以有更好的视觉效果,特别是如果你计划缩放/缩放。

最后,这完全取决于你想要如何实现它,但第一种方法是直接和简单的,我建议新手使用(一定要稍后回来尝试方法2;))。