基于现有地形的动态地形生成

如何解决基于现有地形的动态地形生成

|| 这个问题与这里提出的问题非常相似。 我的问题是我有一张地图,像这样: 该地图是使用2D Perlin噪波制作的,然后遍历创建的高度图,根据相应元素的高度或坡度为地形中的每个元素分配类型和颜色值,因此非常标准。地图数组是二维的,并且是屏幕尺寸的精确尺寸(每像素一个像素),因此在1200 x 800分辨率下,我的装备大约需要2秒钟。 现在放大突出显示的矩形: 显然,随着尺寸的增加而丢失了细节。问题就在这里。我想即时创建其他细节,然后在播放器四处移动时将其写入磁盘(播放器只是一个点,仅限于沿网格移动)。我看到了两种方法,第一种很快就想到了: 这是从旧地形的采样元素创建的新的偏向局部地形的放大视图,在上一张图像中,该网格由黄色网格空间(位于中心左侧)突出显示。但是,此系统将需要进行大量修改,例如,如果您将一个单元向上和向左移动黄色网格空间到沙滩砖上,则地形会完全改变: 因此,要使此功能正常运行,您需要进行大量操作,我想这个词应该是插值法,以便在玩家移动本地世界中需要达到40个左右的网格空间时创建平滑过渡。下一个世界。这似乎很复杂而且非常微不足道。 第二种方法是将原始地图的网格分解为较小的位,也许将每个正方形除以4?我还没有实现这一点,也不确定如何以某种方式实际增加细节,但是我认为那最终可能是最好的解决方案。 关于如何解决这个问题有什么想法吗?请记住,它必须是本地的并且是即时的。我想不惜一切代价避免增加地图的分辨率。     

解决方法

        将您的Perlin杂讯重写为位置的函数。然后,您可以增加八度音程(从而增加细节级别),并以更高的分辨率对区域重新采样。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?