问题标签 [procedural-generation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
math - 是否有一种算法方法可以找到给定单纯形噪声维度的比例因子?
这是单纯形噪声算法的 C# 中的一种实现
您会注意到每个噪声函数(2d、3d 和 4d)都会缩放角点贡献以适应 -1 到 1 的范围(这是返回语句中的幻数),这是合理的。据我所知,这些都是通过实验得出的。
问题是我想将其模板化为任意数量的维度,而这个因素似乎是这样做的一个障碍,所以我想找到一种获得该比例因子的算法方法。我对算法不够熟悉,无法了解影响比例的因素,但如果我不得不猜测,我认为顶部的排列表是一个主要的排列表。
有没有人对此有任何想法,也许只是说它不可行?
actionscript-3 - Flash Stage3D:渲染/更新程序纹理?
我需要经常更新 3D 对象的纹理。(它是程序生成的模式,所以不能缓存,必须每帧动态生成)
最快的方法是什么?
首先我想通过 copyPixels() 更新 bitmapData,然后通过 Texture.uploadFromBitmapData() 每帧重新上传这个 bitmapdata,但我听说这非常慢(由于将数据从系统 RAM 移动到 GPU RAM)
任何直接在 GPU 上操作纹理的方法,所以我可以避免这一步?
algorithm - 什么是 3D 更快?Perlin 或 Simplex 噪声?
好的,网上有很多 Perlin 和 Simplex 噪声的比较。但是我真的找不到一个可以在三个维度之间进行简单处理时间比较的文件,这是我最感兴趣的。我读过那个流行的 PDF(甚至理解了其中的大部分内容——耶!)但是我无法回答一个简单的问题:假设最佳实现,哪一个对于 3D 来说更快?
这个stackoverflow question answer表明 Simplex 是我的案例的一个非常明显的赢家。当然,还有其他资源声称完全相反。
然而,一般的说法似乎是 Perlin 噪声的复杂度为 O(2^N),而 Simplex 的复杂度为 O(N^2)。对于 3D 来说,Perlin 是 8,Simplex 是 9。但是,在某个网站上,我发现 Simplex 实际上是 O(N) 的声明。那么这里的真实情况是什么,这对于 3D 的速度究竟意味着什么?
我在这里不知所措,我真的主要对 3D 应用程序(用于随机地形生成,包括洞穴)的使用感兴趣,我找不到一个很好的答案来回答这个问题,如果我希望它尽可能快,我应该使用哪个可能的。
所以也许有人可以在这里帮助我:)
c# - 道路网络的 L 系统如何修改?
问候每一个人!
我目前正在研究道路网络的程序生成,并偶然发现了 L 系统算法。根据我从有关该主题的各种科学论文以及有关该主题的其他论文中的理解,该算法被更改为使用“全局目标和局部约束”,其中修改所采用的路径以适应输入值,例如地形和人口密度。现在我理解了那部分,或者至少理解了整体概念,但是我应该如何修改算法呢?
现在我有一个字符串,它根据一组规则在时间步长上进行修改。然后我分析字符串并在遍历字符时移动和转动,渲染结果并在屏幕上获得漂亮的图案。
现在,要创建主要道路网络,我是否仍应使用带有规则集的基本公理,然后应用约束?如果是这样,一套好的起始值和规则会是什么?
还是我应该用约束和全局目标替换基本规则集?如果是这样,原来的 L 系统算法还剩下什么?
非常感谢任何帮助,并且作为记录,我在 C# 和 XNA 中执行此操作,尽管我认为这更多是在理论层面上。
谢谢你的时间,
卡尔
audio - 如何在 Lazarus/Free Pascal 中生成和播放程序声音(方波等)?
如何在 Lazarus/Free Pascal 中播放和合成自定义波形?该解决方案必须是实时友好的,因为它适用于游戏引擎。它也应该是多平台的,所以它可以在win32、Linux和Mac上使用。FMOD/BASS 已经过时(即使适用),因为如果我想在商业上使用它,我不想支付费用。
javascript - 使用three.js 为粒子程序生成的纹理
我的目标是创建一个粒子系统,其中涉及为每个粒子(顶点)程序生成的纹理,但我发现很难创建一个在 Canvas 和 WebGL 渲染器下使用 three.js 的粒子系统的原型
我要达到的标准:
- 独立于渲染器(ParticleCanvasMaterial 不适用于 WebGL)
- 圆形纹理(ParticleBasicMaterial 不喜欢画布纹理;无法使其输出圆形)
- 程序生成这些纹理(不能只使用带有准备好的圆形纹理的 loadTexture )
目前可以使用three.js吗?我错过了一些功能吗?
algorithm - 什么术语描述了在不知道其他坐标的情况下生成坐标的程序/分形生成?
元胞自动机和中点位移都依赖于网格本身的信息,因为它正在生成以完成生成过程。Perlin/Simplex Noise 是我所知道的唯一一种使用预定地图为任何给定位置生成数据的方法,这种方法可以在不知道其他坐标的情况下计算任何坐标。
我试图描述的这种差异有一个术语吗?希望可以搜索到的东西?
谢谢,蒂姆
terrain - 调整六边形网格的高度图生成
目前我正在做一个小项目,只是为了一点乐趣。它是一个使用 OpenGL 的 C++、WinAPI 应用程序。
我希望它会变成一个在六边形网格上玩的 RTS 游戏,当我完成基本游戏引擎后,我计划进一步扩展它。
目前,我的应用程序包含一个包含顶点和高度图信息的 VBO。高度图是使用中点位移算法(菱形)生成的。
为了实现六边形网格,我采用了这里解释的想法。它向下移动正常网格的奇数行,以允许相对容易地渲染六边形而没有太多进一步的复杂性(我希望)。
几天后它开始聚集在一起,我添加了鼠标选择,这是通过以独特的颜色渲染网格中的每个十六进制来实现的,然后在此 FBO 中对给定的鼠标位置进行采样以识别所选的 ID单元格(在下面屏幕截图的右上角可见)。
在我项目的下一阶段,我想看看生成更多“可玩”的地形。对我来说,这意味着每个六边形的形状应该比上图中看到的更规则。
所以终于说到我的意思了,有没有:
- 一种在我当前的方法中平滑或调整顶点的方法,它将六边形的所有点都带到一个平面上(共面)。
编辑:对于任何寻找有关如何使点共面的信息的人来说,这是一个很好的解释。
- 一种更好的程序地形生成方法,可以更好地控制这类事情。
- 一种以不同方式表示我的顶点信息的方法,允许这样做。
需要明确的是,我并不是想实现一个带有凸起边缘或平台的平面六角网格(如下所示)。
)
我希望所有几何图形都加入并引导到下一个位。
我希望实现与我现在所拥有的类似的东西(相对较好的起伏山丘和地形),但具有更可控的高原。这给了我稍后关闭区域(无法播放的瓷砖)的灵活性,如果需要,我可以在其中添加更高细节的网格。
欢迎任何反馈,我将其用作学习练习,所以请 - 欢迎所有评论!
procedural-generation - 加快网格上对象的随机位置
目前我正在做以下事情,我确信这是一种缓慢的方式。基本上我穿过一个网格并确定a)是否存在一颗星星,b)如果有一颗星星是什么类型。我认为我应该做的是使用我的已知值(例如 current_star_density * 0.25)并使用它来绘制一系列点。我想我不确定的部分是当我绘制该数量时如何防止重复。
任何帮助将不胜感激。这是代码的相关部分。
java - 随机浮点数 [0-1] 到 n 个随机浮点数 [0-1]
如果我在一个球体周围有一组随机浮点数(0.0f - 1.0f)(甚至在 2D 网格上也可以),每个浮点数与它们的邻居仅相差约 0.1f,有没有办法转换这些浮动到,比如说颜色,每个颜色的 RGB 值也只与它们的邻居相差大约 0.1f,其方式(基本上)获得任何颜色的可能性相同(所以某些颜色不会偏向于其他颜色)?
我使用的方法是这样,在每个顶点的最终偏移完成后,我将所有偏移缩小到从 0.0 到 1.0 的浮点值,其中这些浮点值仍然反映值的初始分布。如果有帮助,我可以发布代码片段,或者如果您只是好奇,它们正在编辑中。
这是一个潜在的答案,谢谢 Hot Licks!不过,提供更均匀分布的东西可能会很好。尽管如此,这是一个开始(而且它本身有点酷),是的,谢谢!
编辑:删除了很多额外的东西,并得到了问题的实质。如果您对代码片段或其他相关信息感到好奇,您可以看到编辑,但这确实是我要问的大部分内容。
编辑编辑:添加(部分)解决方案代码片段。