包裹 2D 柏林噪声

2024-02-20

我正在与 Perlin Noise 合作开发高度图生成算法,我想让它环绕边缘,以便可以将其视为连续的..有没有简单的方法或技巧可以做到这一点?我想我需要类似球形噪声的东西,以便它在水平和垂直方向上环绕。我也很高兴只有 1 个缠绕轴,但有两个会更好。

现在我使用经典算法,您可以在其中设置要添加多少个八度音阶,以及用于更改每个连续八度音阶之间波的幅度和频率的乘数。

提前致谢!


Perlin 噪声作为波形的总和获得。波形是通过插值随机值获得的,较高倍频程的波形具有较小的缩放因子,而插值的随机值彼此更接近。要进行环绕,您只需要以通常的环形方式在 y 轴和 x 轴周围正确插值,即,如果您的 X 轴从 x_min 跨越到 x_max,并且最左边的随机点(正在插值)是在 x0 和最右边的 x1 (x_min

这里是使用线性插值的八度之一的伪代码。假设一个 256 x 256 矩阵,其中 Perlin 噪声网格大小是两个像素的幂……只是为了使其可读。想象一下例如尺寸==16:

 wrappable_perlin_octave(grid, size):
   for (x=0;x<256;x+=size):
     for (y=0;y<256;y+=size):
       grid[x][y] = random()
   for (x=0;x<256;x+=size):
     for (y=0;y<256;y+=size):
       if (x % size != 0 || y % size != 0): # interpolate
         ax = x - x % size
         bx = (ax + size) % 256 # wrap-around
         ay = y - y % size
         by = (ay + size) % 256 # wrap-around
         h = (x % size) / size # horizontal balance, floating-point calculation
         v = (y % size) / size # vertical balance, floating-point calculation
         grid[x][y] = grid[ax][ay] * (1-h) * (1-v) +
                      grid[bx][ay] * h * (1-v) +
                      grid[ax][by] * (1-h) * v +
                      grid[bx][by] * h * v
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

包裹 2D 柏林噪声 的相关文章

  • 如何知道您的单元测试装置是否“尺寸合适”?

    您如何知道 测试夹具 的尺寸是否合适 我所说的 测试夹具 是指一个包含大量测试的类 我在测试装置中一直注意到的一件事是它们变得有点冗长 鉴于它们也可能不够详细 您如何了解单元测试的大小是否合适 我的假设是 至少在 Web 开发的背景下 您应
  • 从原点开始在离散 2D 网格上迭代向外螺旋的算法

    例如 这是预期螺旋的形状 以及迭代的每个步骤 y 16 15 14 13 12 17 4 3 2 11 18 5 0 1 10 x 19 6 7 8 9 20 21 22 23 24 其中线条是 x 轴和 y 轴 以下是算法每次迭代 返回
  • 线段树java实现[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 你知道 二进制 的良好实现吗线段树 http en wikipedia org wiki Segmen
  • Java 2d 游戏中的路径查找?

    本质上它是我正在开发的一款吃豆人克隆游戏 我有一个 Enemy 类 并创建了该类的 4 个实例 它们都代表游戏的 4 个幽灵 所有幽灵都会在屏幕的随机区域启动 然后它们必须朝着吃豆人角色前进 当玩家控制吃豆人并移动它时 他们应该跟随它并尽可
  • 将古吉拉特语文本插入 MySQL 表会产生垃圾字符和不可读的文本

    我有三个 MySQL 表 我正在向其中插入古吉拉特语内容 当我插入两个表时 它们插入得很好并且可读 但在一个表中 它显示垃圾字符 不可读的文本 我怎样才能解决这个问题 MySQL 有每个表的字符集设置 http dev mysql com
  • 如何计算 3D Morton 数(交织 3 个整数的位)

    我正在寻找一种快速计算 3D Morton 数的方法 这个网站 http www graphics stanford edu seander bithacks html InterleaveBMN有一个基于幻数的技巧来处理 2D Morto
  • 评估 CRC-32 实现中的差异

    我见过相同基本 CRC 32 算法的许多不同实现 如下所示 int remain int sbox SIZESBOX int dividend int bit for dividend 0 dividend lt SIZESBOX divi
  • c# GDI边缘空白检测算法

    我正在寻找解决方案检测边缘空白c 位图 来自 c 托管 GDI 库 图像将是透明的 or white 大多数 400x 图片的尺寸为 8000x8000px 边缘周围有大约 2000px 的空白 找出边缘的最有效方法是什么 x y 高度和宽
  • 优化计算中使用的 # 个线程的算法

    我正在执行一个操作 我们将其称为CalculateSomeData CalculateSomeData 在连续的 代 中运行 编号为 1 x 整个运行中的代数由CalculateSomeData 的输入参数固定 并且是先验已知的 完成一次生
  • 使用什么算法来确定使系统达到“零”状态所需的最小操作数?

    这是一种更通用的问题 不是特定于语言的 有关要使用的想法和算法的更多信息 系统如下 它登记朋友群体之间的小额贷款 Alice and Bill要去吃午饭 比尔的卡坏了 所以爱丽丝支付了他的餐费 10 美元 第二天Bill and Charl
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • 删除近排序数组中未排序/离群元素

    给定一个像这样的数组 15 14 12 3 10 4 2 1 我如何确定哪些元素乱序并删除它们 在本例中为数字 3 我不想对列表进行排序 而是检测异常值并将其删除 另一个例子 13 12 4 9 8 6 7 3 2 我希望能够删除 4 和
  • 排序矩阵的选择算法

    这是谷歌面试问题 给定一个 N N 矩阵 所有行均已排序 所有列均已排序 找到矩阵的第 K 个最大元素 在 n 2 中执行它很简单 我们可以使用堆或合并排序 n lg n 对它进行排序 然后得到它 但是有没有更好的方法 比 n lg n 更
  • 用于查找最近邻居的空间划分算法如何工作?

    为了找到最近的邻居 空间分区 http en wikipedia org wiki Nearest neighbor search Space partitioning是算法之一 它是如何工作的 假设我有一组 2D 点 x 和 y 坐标 并
  • String.contains() 的时间复杂度

    String contains 的时间复杂度是多少 假设 n 是与另一个长度为 k 的字符串进行比较的字符串的长度 如果不知道您感兴趣的 String contains 的实际实现 就没有答案 或者你打算使用什么算法 一个完全幼稚的实现可能
  • 语义差异实用程序[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试找到一些语义差异 合并实用程序的好例子 比较源代码文件的传统范例是通过比较行和字符来工作的
  • 查找字符串中最常见的子字符串的算法

    是否有任何算法可用于查找字符串中最常见的短语 或子字符串 例如 以下字符串将 hello world 作为其最常见的两个单词短语 hello world this is hello world hello world repeats thr
  • 添加边后更新最大流量

    考虑我们有一个网络流量 并使用 Edmond Karp 算法 我们已经拥有网络上的最大流量 现在 如果我们向网络添加任意边 具有一定容量 更新最大流量的最佳方法是什么 我正在考虑更新关于新边缘的残差网络 并再次寻找增强路径 直到找到新的最大
  • 从给定的项目列表创建子列表

    我首先要说的是以下问题不是为了家庭作业目的即使因为我几个月前就完成了软件工程师的工作 无论如何 今天我正在工作 一位朋友向我询问了这个奇怪的排序问题 我有一个包含 1000 行的列表 每行代表一个数字 我想创建 10 个子列表 每个子列表都
  • 实时战略战争游戏人工智能算法

    我正在设计一款实时策略战争游戏 其中 AI 将负责控制大型六边形地图上的大量单位 可能超过 1000 个 一个单位有许多行动点 可以用于移动 攻击敌方单位或各种特殊行动 例如建造新单位 例如 一辆拥有 5 个行动点的坦克可以花费 3 个行动

随机推荐

  • 将二维 ArrayList 复制为新的

    所以我遇到的问题是在复制二维数组列表后 更改一个二维数组列表中的元素会影响另一个二维数组列表 我希望它们在内存中完全分开 第一个示例展示了它如何正确处理一维数组列表 import java util ArrayList public cla
  • 正则表达式匹配以测试有效年份

    给定一个值 我想验证它以检查它是否是有效的年份 我的标准很简单 其中值应该是整数4人物 我知道这不是最好的解决方案 因为几年前它不允许1000并将允许诸如5000 这个标准足以满足我当前的情况 我想出的是 d 4 虽然这有效 但它也允许负值
  • 性能:使用 JCIF 将文件复制到 Windows 网络的速度非常慢

    我正在尝试将文件从本地计算机复制到 Windows 服务器中的共享文件夹 这是我使用的功能 public static void copyFileUsingJcifs final String domain final String use
  • 如何将新工具箱添加到已安装的 Matlab 版本中?

    我需要向我的 Matlab Student 版本添加一个工具箱 我知道我必须下载工具箱文件 将它们放在某个目录中 然后指定路径 但是 我不太确定必须将文件放在哪里 我下载了两个 zip 存档 Symbolic Math Toolbox Co
  • 如何在 MMT 中粘合/识别两个结构中的内含物?

    我想形式化形式语言及其语义MMT https uniformal github io 并定义一个一般概念语义等价两种语义 one句法 准确地说 对后者进行编码实际上是一种识别 粘合 我不知道如何在 MMT 中做到这一点 接下来让我详细说明我
  • IE6 将 DOCTYPE 更改为错误的 DOCTYPE

    我正在使用定义了以下内容的网站DOCTYPE 当我访问该网站时IE6 DOCTYPE神奇地变成了 而且 好吧 它可以保留 因为一切看起来都很好 但这是重点 只有一页有DOCTYPE变成
  • 如何编写使用OpenERP ORM直接上传到Postgres数据库的Python脚本

    我需要在 Python 中编写一个 独立 脚本 仅使用 OpenERP 的 ORM 模块将销售税上传到数据库中的 account tax 表 我想做的是类似下面的伪代码 有人可以向我提供有关以下内容的更多详细信息 1 我需要设置什么sys
  • ImageView 内的 Android ProgressBar

    我有一个活动通过异步任务用数据填充列表视图 另外 我正在后台加载图片 在加载图片时 我想在图像视图中显示进度条而不是默认图标 我在互联网上搜索了任何示例等 但找不到任何有用的东西 我只找到一个响应 它说您必须使用图像视图和进度条进行框架布局
  • JQuery获取formaction和formmethod

    我有一个像这样的
  • 如何在 Git 中执行三向比较而不合并?

    我想在具有公共合并基础的两个 git 分支之间执行三向差异 并使用 kdiff3 查看它 我发现了很多关于SO的指导 以及一些非常相似的问题 1 https stackoverflow com q 26301307 3380131 2 ht
  • SQL Server Express (2012) 和 LocalDB 之间有区别吗?

    以他的优秀和受欢迎对比图 http erikej blogspot com 2011 01 comparison of sql server compact 4 and html ErikEJ 区分了SQL Server Express 2
  • MySQL GROUP BY 仅返回第一行

    我有一个名为forms具有以下结构 GROUP FORM FILEPATH SomeGroup SomeForm1 SomePath1 SomeGroup SomeForm2 SomePath2 我使用以下查询 SELECT FROM fo
  • 如何将高度(阴影)添加到我的 BottomNavigationView。默认情况下它不会出现

    I tried setting elevation from xml and programmatically both But nothing works 仅当您在 BottomNavigationView 中将白色设置为 android
  • 在匿名 PHP 函数中访问父作用域的变量 [重复]

    这个问题在这里已经有答案了 我想编写一个函数来执行一些记录事务的脏工作 但匿名函数作用域似乎没有注册父作用域 db and value变量 如何将变量传递到闭包中 讽刺的是 SO 标签 closures 并没有非常准确地描述它的 PHP 版
  • 将 NSString 的 NSArray 转换为 NSMutableString 的 NSArray

    如何做到这一点 而不必使用 for 循环 滚动 整个给定数组 我能想到的最好的办法是 NSMutableArray replacementArray NSMutableArray array originalArray enumerateO
  • 从(行、列、值)数据创建 Pandas DataFrame

    我有一个包含三列的 Pandas Dataframe 行 列 值 行值都是低于某些的整数N 并且列值都是低于某个值的整数M 这些值都是正整数 如何有效地创建数据框N行和M列 带有 at 索引i j价值val if i j val 是我原始数
  • 文档或博客:应用内购买和 Monotouch

    我正在寻找如何创建应用内购买的开发部分 itunes的配置是没问题的 但没有找到任何关于在 MonoTouch 中进行开发部分的资源 有什么想法请 github 上有一些可用的源代码 https github com Redth APNS
  • 如何确定滚动高度?

    如何使用 css Overflow auto 确定分区的滚动高度 我试过了 test scrollHeight test height but that just returns the size of the div not all th
  • 比较两个 List 对象是否相等,忽略顺序[重复]

    这个问题在这里已经有答案了 又一个列表比较问题 List
  • 包裹 2D 柏林噪声

    我正在与 Perlin Noise 合作开发高度图生成算法 我想让它环绕边缘 以便可以将其视为连续的 有没有简单的方法或技巧可以做到这一点 我想我需要类似球形噪声的东西 以便它在水平和垂直方向上环绕 我也很高兴只有 1 个缠绕轴 但有两个会