Questions tagged «procedural»

由算法/过程生成的信息。与记录的信息相比,通常将其使用。例如,与合成器的振荡器产生的声音相比,采样器记录并刚刚播放的声音与3D程序中由噪声算法产生的图像与云的数字照片形成对比。

5
如何产生类似于Minecraft的洞穴?
我已经在3D程序世界中工作了一段时间,并且想开始添加洞穴系统。我目前正在使用2D / 3D Perlin Noise来生成地形,并结合使用Marching Cubes来实现更平滑的地形。当涉及到相互连通的山洞时,我感到很困惑。 我希望能得到更多类似于Minecraft的洞穴系统的东西。它们似乎是非常紧密的联系,几乎可以在任何方向随机分支,并且洞穴中的几乎任何点都将具有相当圆形的外观,并且整个半径范围都相等(不是最好的措词,但是不确定如何放置它) 。 生成我想要的洞穴的最大挑战是,我要动态生成世界。当前,世界是逐块生成的,从玩家所在的地方开始,然后从那里向外生成。我不想产生任何世界,然后使用游荡模式,细胞自动机等将洞穴挖出来。 是否有任何众所周知的算法可用于此目的?如果是这样,是否有人想分享他们如何做类似的事情?我将不胜感激任何帮助。 一个很好的例子:

3
如何以程序方式(创建)实时(L系统)种植艺术(2D)树?
最近,我编写了一个L系统模块,这使我进一步感兴趣。我也是植物大战僵尸迷,真的很喜欢智慧树的概念。很想创造类似的程序艺术,只是为了娱乐和了解更多。 问题:我应该如何动态地创建艺术树(可能是使用固定摄像机/透视图的2d树)? 理想情况下,我想从一种植物(只有带有叶的茎)开始,并通过对其结构的某种影响(输入/用户操作)动态地使其生长。这些影响可能导致不同类型的分支,分支曲线,其传播,果实的位置,花朵的颜色等。希望它确实充满生命/精神。:) 植物大战僵尸:智慧之树 动态地生长一棵相似的树会很棒,但是会产生更多的变化和动画。 我的背景:程序员,很少使用游戏引擎(Ogre3d,cocos2d,Unity)。尚未真正真正使用openGL进行直接编程,试图解决此问题:)。 我已经准备好花大量的时间,请告诉我有关API的信息?像您这样的专家将如何处理这个问题? 为什么是2D?我认为仅考虑二维即可解决问题。 艺术灵感: 只有树木,有果实和叶子,底部没有灌木 在大的树(可见树枝,绿叶,花朵,果实等),在左边,后面的猴子。 PixelJunk的Eden(艺术风格的灵感)。 分形过程式生成的苹果树 如果您很容易理解这个问题,请告诉我,我可能会进一步详细说明。 我希望对各种方法的讨论对每个人都有帮助。你们真棒。

3
将程序生成的世界与其他世界相匹配
您读过罗杰·泽拉兹尼(Roger Zelazny)的《琥珀编年史》吗? 想象自己在第三人称MMO游戏中玩。您在世界上产生并开始游荡。一段时间后,当您认为已经学会了地图时,便意识到自己处在一个从未见过的地方。您返回到您确定知道的最后一个地方,并且它仍然存在。但是世界其他地方已经发生了变化,您甚至都没有注意到它是如何发生的。 我读过有关程序世界的信息。我已经阅读了有关Perlin噪声和八度音阶,单纯形噪声,菱形平方算法,有关构造板块和水蚀模拟的信息。我相信我对程序化世代的一般方法有一些模糊的理解。 有了这些知识,我不知道如何才能做上面写的事情。我想到的每个想法都会遇到一些理论问题。这是我可以想到的一些想法: 1)“可逆”世代,以种子号作为输入,并完整描述了一个块号 我怀疑是否有可能,但是我想像一个函数,该函数将接收种子并产生数字矩阵,并在此矩阵上构建块。对于每个唯一编号,都有一个唯一的块。第二个函数,获取该唯一的组块编号并生成包含该编号的种子。我试图在下图中制定一个方案: 2)使块完全随机,并在它们之间进行过渡。 正如阿修索建议的那样。这种方法的好处是它是可能的,并且不需要魔术功能:) 我认为这种方法的弊端在于,不可能拥有一个多元化的世界。如果让您说一个仅由一个数字表示的群岛和一个大洲,并且它是相邻的块,那么块的大小就不会等于大块。而且我怀疑是否可以在各个块之间进行漂亮的过渡。我想念什么吗? 因此,换句话说,您正在开发具有程序生成世界的MMO。但是,除了拥有一个世界,您还有许多。您将采用哪种方法来生成世界,以及如何在玩家未注意到过渡的情况下实现玩家从一个世界到另一个世界的过渡。 无论如何,我相信您已经有了大致的想法。你会怎么做?

4
一个人如何拯救一个程序世界?
我最近读过关于如何创建程序世界的信息,但是如何保存一个程序世界? 在Terraria或Minecraft之类的游戏中,用户可以自由修改地形,但不能从初始种子重新创建该世界。使用什么技术来保存程序化但可修改的世界?

1
程序网格:UV贴图
我制作了一个程序网格,现在我想对其应用纹理。问题是,我无法按照自己的意愿坚持下去。 想法是在整个网格上仅将纹理绘制一次,这样就不会重复。我应该如何绘制UV才能做到这一点? 我的网格是由56个三角形组成的简单平面。我会添加图片来清除问题,但是由于我的声誉低于10分,所以无法添加。 任何帮助表示赞赏。 编辑(亲切的人给了我投票,谢谢): 认识我的网格物体: 而当纹理(试图重复纹理): 而我的质感: 编辑2: bummzack的指令就像一个护身符一样工作,并且网孔也按我想要的那样纹理化。谢谢。

5
网格上的布尔运算
给每个网格一组顶点和三角形。有谁知道一种算法,或一个寻找的地方(我先尝试谷歌,但没有找到一个好的开始的地方)在所述网格上执行布尔运算,并为生成的网格获取一组顶点和三角形?特别令人感兴趣的是减法和联合。 图片示例:http : //www.rhino3d.com/4/help/Commands/Booleans.htm

2
如何使我的2D角色正常站立在斜坡上?
我已经在Unity3D(2D模式)中得到了这个角色...在一个看起来像这样的坡度中, 但是我希望角色沿着红线站立。 如何在Unity3d中制作? 我有这个设置。 我正在使用简单的Addforce进行运动...如果删除z位置约束,则会导致奇怪的运动,如滚动等等。

1
程序几何生成
我最近一直在研究OS X的SceneKit,并注意到有几种工厂方法可以创建几何形状,例如: 框,胶囊,锥,圆柱,平面,金字塔,球体,圆环和管。 我有兴趣在我的渲染器中添加这样的原始形状,但是我一直在努力寻找任何合理的来源,从中我可以收集对程序生成的理解。有许多资源详细介绍了该理论,但是缺少适当的源代码来对其进行备份。 SceneKit提供了工厂方法,该方法允许动态设置此类形状的属性。对于Box,可以为每个面应分为的宽度,高度和深度段数提供整数值。 我了解理论,但缺乏知识来开始细分几何面以实现所需的效果。 每个形状的顶点很可能很容易在简单的循环中生成。让我感到困扰的是,我知道如何创建这些面,或者是为每个面创建适当的纹理坐标。可以按每张面孔计算法线,因此我很自信可以实现自己想要的目标,只是知道从哪里开始。 谁能提供有关程序几何的任何详细信息?我真正需要的是一些源代码来收集一些信息。我在教程中搜索了很多内容,但到目前为止,只提出了一些合理的站点或博客。任何优秀的书籍,教程,博客或研究论文将不胜感激。 根据评论进行编辑 我应该澄清的是,我知道如何为基本形状创建顶点,其中大多数可能可以通过简单的循环来实现。我不理解的是如何从生成的顶点数组创建面。如何从看似无序的顶点阵列中创建一个或多个三角形带? 我假设一旦超过了这一点,就可以从每张脸创建法线。尽管我还没有深入研究,但是我已经看到了很多对此的参考,并且确信它很容易实现。 理想情况下,我希望能够从一组给定的属性(例如SceneKit提供的方式)生成几何。鉴于SceneKit已经做到了,并且您可以在Blender和Maya等中做类似的事情,我想我不是在尝试实现不可能的事情。 最后一个方面是应用纹理。再说一次,这不是我实现的,但是已经阅读并了解了需求。 这里的主要问题是我知道我想要实现什么,但是正在努力解释如何为上述原语实现。我希望能够通过源代码找到一些相似的知识,但是到目前为止,我确实还没有遇到任何合适的东西。

3
随机图生成-散布/聚类随机节点的策略
我正在太空中做一个简单的4X策略游戏,其中每个节点都是一个兴趣点(行星,小行星等)。 要随机生成地图,请按照以下步骤操作 确定地图每个节点的类型(例如,可能有5个类似地球的行星,10个贫瘠的行星等) 将每种类型的节点放置在地图上。 对于第2步,我希望每种节点类型的分布均匀。因此,例如,我将从放置所有类似地球的行星开始。如果我简单地做一个rand(map.width,map.height)来确定位置,我可能最终会把所有类地球的行星聚在一起,这将使从该区域开始的玩家受益。 是否有任何方法(例如使用不同的图形函数或噪声函数)可以生成彼此分散的(x,y)坐标序列。同样,有什么方法可以生成彼此接近的坐标?

1
Starcraft 2使用什么技术绘制地图?
我有一个在运行时按程序生成的地图,目前正在研究渲染该地图的方法。我对星际争霸2的外观很感兴趣,我想就它采用什么方法来实现它提出一些建议。其次,如果可能的话,我想看任何教程,文章甚至源代码示例。 我想提供一些主要建议,但也请提出其他可能对我有所帮助的建议。 可捕捉的图块-一张典型的星际飞船地图似乎由一组模型图块组成,人们可以将它们组合在一起以创建悬崖,坡道和其他高地地形。他们采用什么方法使它们看起来如此自然?我的意思是,很难发现重复。 地形纹理-地形纹理是如此变化,甚至是动态的(虫族蠕变)。用什么方法做到这一点? 谢谢。

1
如何从样条曲线生成3D赛道?
我想围绕描述其形状的样条线生成3维赛道。 这是一个说明性视频。 轨道应该是一条沿着3D样条线扫过的无尽隧道,并抛出一些障碍。到目前为止,我最好的想法是沿样条线放一个圆形。 我还希望获得一些指向如何管理几何的指针,即如何从放样操作创建几何,如何在内存,碰撞和纹理化中管理其“生命周期”。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.