美文网首页游戏设计&游戏开发Unity游戏开发入门unity3D技术分享
用正六边形和正五边形拼接球面并以此寻路导航

用正六边形和正五边形拼接球面并以此寻路导航

作者: cdf02aaf6ae2 | 来源:发表于2017-04-01 16:54 被阅读243次

工具

TopMod 一个研究拓扑模型的社群开发的小工具,可以用来快速生成正六边形和正五边形拼接成的球体模型。

官方
百度云

有言在先

本文基本上全部基于 HexPlanet 这个开源项目。

项目源码附带有一份文档,如果觉得本文有任何说的不够清楚明白的地方,可以再参照一下原文档。

本文不包含具体的论证过程,有兴趣可自行 Google。

原理

最接近球的正多面体

  • 正十二面体 : 十二个正五边形构成

    正十二面体
  • 正二十面体 : 二十个正分角形构成

    正二十面体
  • 还有一种很常见的球——足球,其表面图案由正五边形和六边形构成。

    足球

几个有趣的关系

  1. 将正十二面体每个面的中心连起来就是正二十面体

  2. 将正二十面体每个面的中心连起来就是正十二面体

  3. 以正二十面体为原型,将每条棱的中点拉到与原来的顶点一样的高度再与原来的顶点连起来,可以生成更多的正三角形

60个正三角形
  1. 这时再把每个面的中点连起来,便是一个足球了
足球2

最终

如果不断重复上面的第 3 步,直到三角形足够多,再进行第 4 步:

正三角形 正五边形和正六边形

便可以按我们想要的用正五边形和正六边形拼成一个球面了。

实践

上面的原理听起来简单,但真正操作起来还是要写好多代码的。感谢开篇提到的工具——TopMod,已经有人做好了。

生成三角球面模型

打开软件,选择那个现成的球——这已经重复了好几步

基础模型

点击 Window,确保勾选如图两项,以打开重构 Mesh 的两个工具箱

工具箱

选择 Root-3 模式后根据需要点击 Perform Remeshing 按钮,就可以继续生成更多的正三角形(三角形越多,此步耗时越长,可能界面会卡)

重复细分

选择 Dual 模式再点击 Create Dual 可以预览效果

预览

恢复到正三角形状态(三角形面是最受支持的)点击 File -> Save As... 即可保存模型文件

烘焙六边形网格

由于导出的是三角形面,需要我们自己烘焙正六边形和正五边形数据,具体如下:

  • 每个三角形顶点就是一个正六边形的或正五边形的中心点

  • 与此点相连的点即是邻接的多边形中心点,据此可以生成邻接数据

  • 针对每个多边形中心点应用物理碰撞检测,可以标记障碍物或水、沼泽等地形数据

  • 将所有中心点放入 KdTree(C# Unity 可用,需要稍做修改),可以快速检索球面某点所在的格子

  • 邻接数据可适用一般的 A* 算法

其它

  • Unity 导入模型会为每个三角形重新生成独立的顶点坐标和索引,所以用的时候要先去重

  • A* 算法的启发函数,可以用格子坐标与目标点的向量夹角,效果不错

  • 原文还有六边形纹理贴图的方法,有兴趣的请参见原文档

相关文章

  • 用正六边形和正五边形拼接球面并以此寻路导航

    工具 TopMod 一个研究拓扑模型的社群开发的小工具,可以用来快速生成正六边形和正五边形拼接成的球体模型。 官方...

  • 算法 & 数据结构——导航网格

    这是之前写的寻路算法《栅格导航寻路》 栅格导航: 顾名思义,所有格子大小都是一致的。格子大小决定寻路精度,对于大地...

  • 六边形消消乐

    《六边形消消乐》是一款非常趣味的休闲消除类游戏。创意的六边形棋盘,通过手指拖动和点击进行拼接和消除,直到拼成完整的...

  • Navigation导航寻路

    NavMesh简介 unity 中使用Navigation作为解决方案。 寻路(驱动一个游戏物体移动到目标位置上)...

  • 寻路之Navigation

    在unity中,通常会使用导航网格(Navigation)做寻路,但有时也会对场景直接划分格子,并自己实现A*算法...

  • 如梦令

    如梦令 秋日多云未雨, 游玩导航失误。 乘兴往前行, 误入大山深处。 寻路,寻路, 惊起林中玉兔。

  • AI制作简单Logo

    ·画一个正六边形,在效果-扭曲和变换-变换,使其产生以下效果。 ·用小白工具(A)拖出圆角。 ·改变描边,使其变成...

  • NavMeshAgent 寻路导航组件

    1 NavMesh 地面的烘焙方法 1.选中要导航的模型 或者 地面 2.在U3D右边Inspector面板右上角...

  • 第20章--网页的设计-About Face 4 读书笔记

    一、基于页面的交互 1.1导航和寻路 网页的导航量大于软件,信息架构师解决逻辑结构和内容刘等非视觉的设计工作。 1...

  • 从零开始学习导航网格#2 编译RecastNavigation

    RecastNavigation是由Mikko Mononen大佬开发的导航寻路开源库,众多游戏引擎和ai项目的3...

网友评论

    本文标题:用正六边形和正五边形拼接球面并以此寻路导航

    本文链接:https://www.haomeiwen.com/subject/eknuottx.html