【发布时间】:2012-12-09 23:37:02
【问题描述】:
目前我正在做一个小项目,只是为了找点乐子。它是一个使用 OpenGL 的 C++、WinAPI 应用程序。
我希望它会变成一个在六边形网格上玩的 RTS 游戏,当我完成基本游戏引擎后,我计划进一步扩展它。
目前,我的应用程序包含一个包含顶点和高度图信息的 VBO。高度图是使用中点位移算法(菱形)生成的。
为了实现六边形网格,我采用了here 解释的想法。它会向下移动普通网格的奇数行,以便相对轻松地渲染六边形,而不会产生太多进一步的复杂性(我希望)。
几天后它开始融合,我添加了鼠标选择,这是通过以独特的颜色渲染网格中的每个十六进制来实现的,然后在此 FBO 中对给定的鼠标位置进行采样以识别 ID选中的单元格(在下面屏幕截图的右上角可见)。
在我项目的下一阶段,我想看看生成更多“可玩”的地形。对我来说,这意味着每个六边形的形状应该比上图中看到的更规则。
所以终于说到我的意思了,有没有:
- 在我当前的方法中平滑或调整顶点的方法 这会将六边形的所有点都带到一个平面上(共面)。
编辑: 对于任何寻找有关如何使点共面的信息的人here is a great explination。
- 一种更好的程序地形生成方法,允许 为了更好地控制这类事情。
- 一种以不同方式表示我的顶点信息的方法,允许这样做。
需要明确的是,我并不是要实现带有凸起边缘或平台的扁平六角网格(如下所示)。
)
我希望所有几何图形都加入并引导到下一个位。
我希望实现与我现在所拥有的类似的东西(相对较好的起伏山丘和地形),但具有更可控的高原。这让我可以灵活地在以后关闭区域(无法播放的图块),如果需要,我可以在其中添加更高细节的网格。
欢迎任何反馈,我将其用作学习练习,所以请 - 所有 cmets 欢迎!
【问题讨论】:
标签: terrain procedural-generation hexagonal-tiles heightmap