首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何生成酷炫的背景图片? | 数字艺术 Perlin Noise

很多小伙伴在编写粒子运动的代码的过程中,使用随机数生成器创建“随机数”来使粒子对象的运动和行为显得更自然,这种随机数往往代表不可预测性。...这些自然效果的表现,都可以通过 Perlin Noise 表现出来。 Perlin noise Perlin noise是一个随机序列生成器,它的表现比标准random更自然、更和谐。...插值 使用缓和的曲线来计算它们的权重和。由高等数学可以知道,函数越是高阶可导函数曲线越是平滑,在一阶导满足连续性,但它的二阶导在晶格顶点处(即t = 0或t = 1)不为0,会造成明显的不连续性。...应用 一维 Perlin函数 控制虚拟人物 在游戏中,使用柏林噪声不断调整虚拟人物的关节位置,使其看起来更生动。 绘制草图 电脑画的线总是笔直的,这会使它们看起来不自然和不友好。...可以使用Perlin噪波为绘制线算法引入抖动,使其看起来像是用手绘制的。 二维 Perlin函数 地形 Perlin Noise 用来表现地形的连绵起伏。

1.3K20

Procedural Noise Adversarial Examples for Black-Box Attacks on Deep Neural Networks 论文笔记(2)

使用一类现实和自然纹理来生成对抗样本, 利用扰动对机器学习算法最终的结果产生不同....贝叶斯优化由两部分组成, 首先是概率代理模型, 通常是高斯过程(GP), 第二是指导其查询的获取函数. 该算法使用此获取功能来选择输入以查询目标分类器并观察输出....该算法具有查询效率, 因为它在其更新的后验中使用过去查询提供的所有信息, 同时还考虑了关于目标函数的模型的不确定性. 高斯过程 贝叶斯优化的第一个组成部分是我们目标函数的概率替代模型....测试结果 由于Perlin-BO和Perlin-R的结果具有相似性, 因此可以合理地假设这是我们选择的程序噪声函数中最强的对抗性扰动. 然而, 这可以通过更复杂的生成函数来改进. D....通过使用Perlin-BO的通用版本创建可转移性攻击, 还可以将查询数量大大减少到类似于FGA-B的级别. 我们假设我们的Perlin噪声攻击利用了学习算法中的固有弱点以及它们对图像中模式的解释.

92110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    简单聊聊 Perlin 噪声(下篇)

    程序开发中总会用到随机方法,一般的随机方法虽然通用,但是产生的随机数又因为过于"随机",不适合用来生成平滑连续的随机数据(譬如自然地形的高度),这个时候我们便需要使用特殊的随机方法了, Perlin...除此之外, 二维 Perlin 噪声的生成过程就和 二维 Value 噪声的生成过程就没有什么不同了( ar,br,cr,drar, br, cr, drar,br,cr,dr 为四个端点对应的梯度向量...噪声还是比较简单的,譬如 三维 Perlin 噪声,使用的是立方体(三维中的方形)的 8 个顶点作为插值端点,更高维度的话,则是使用 超立方体 的各个端点作为插值端点,端点个数与维度( DDD )呈指数关系...的生成方法来生成 一维 Perlin 噪声了....,他是将很多个不同频率,不同振幅的基础噪声(譬如 Value噪声, Perlin噪声 等等)相互叠加,最后形成的一种噪声(统称为分形噪声).

    1.2K10

    WebGL进阶——走进图形噪声

    不同Noise生成的材质 基础噪声算法 一个基础的噪声函数的入参通常是一个点坐标(这个点坐标可以是二维的、三维的,甚至N维),返回值是一个浮点数值:noise(vec2(x,y))。...细胞噪声; 梯度噪声 (Gradient Noise) 梯度噪声产生的纹理具有连续性,所以经常用来模拟山脉、云朵等具有连续性的物质,该类噪声的典型代表是Perlin Noise。...算法步骤 梯度噪声是通过多个随机梯度相互影响计算得到,通过梯度向量的方向与片元的位置计算噪声值。这里以2d举例,主要分为四步:1. 网格生成;2. 网格随机梯度生成;3. 梯度贡献值计算;4....这类噪声可以模拟细胞形态、皮革纹理等。 算法步骤 细胞噪声算法主要通过距离场的形式实现的,以单个特征点为中心的径向渐变,多个特征点共同作用而成。主要分为三步:1. 网格生成;2. 特征点生成;3....这里将通过实现如上图球体的纹理贴图效果,为了简化代码,我使用Three.js来实现。

    2.7K30

    简单聊聊 Perlin 噪声(上篇)

    程序开发中总会用到随机方法,一般的随机方法虽然通用,但是产生的随机数又因为过于"随机",不适合用来生成平滑连续的随机数据(譬如自然地形的高度),这个时候我们便需要使用特殊的随机方法了, Perlin...噪声便是一种能够产生平滑(随机)数值的随机方法....Value 噪声 为了更容易的理解 Perlin 噪声,我们先从较简单的 Value 噪声看起: 首先我们考虑 一维 情况(即通过一维坐标来获取随机值),如果我们仅使用一般随机方法的话,得到的随机数值是这样的...一种朴素的想法就是在整数坐标处仍然使用一般随机方法来生成随机值,但是对于处在(相邻)两个整数坐标之间的点(即浮点坐标点),则使用线性插值的方式(在这两个整数坐标点对应的随机值之间线性插值)来生成随机值,...可以看到数据比起之前已经平滑连续了不少,但是在整数坐标处仍然不够平滑连续(整数坐标处不可导(自然也不连续)),而这是由于我们之前采用了线性插值的方式来生成随机值造成的,改善的方式也比较明晰,就是改用非线性插值的方式来生成整数坐标间的随机值

    1.1K20

    一篇文章搞懂柏林噪声算法,附代码讲解

    本文以一种通俗简单的方式介绍Ken Perlin的改进版柏林噪声算法,算法代码采用c#编写,开源免费使用。如果你只是想看完整代码,可以点击文章结尾链接查看。...柏林噪声是一个非常强大算法,经常用于程序生成随机内容,在游戏和其他像电影等多媒体领域广泛应用。算法发明者Ken Perlin也因此算法获得奥斯卡科技成果奖(靠算法拿奥斯卡也是没谁了666)。...本文将剖析他于2002年发表的改进版柏林噪声算法。在游戏开发领域,柏林噪声可以用于生成波形,起伏不平的材质或者纹理。...那如何让柏林噪声算法模拟出这样的自然噪声特性,解决方法也很简单:我们可以使用不同的频率(frequencies)和振幅(amplitudes)参数进行多几次柏林噪声计算,然后将结果叠加在一起。...然而,做数据预处理时,就很适合使用多组倍频叠加来模拟更自然的噪声(比如用于提前生成游戏地形等)。 那我们应该分别挑选多大的频率和振幅来进行噪声计算呢?这个可以通过persistence参数确定。

    11K52

    利用噪声构建美妙的 CSS 图形

    如果从程序员的角度去理解的话,可以理解为我们在 JavaScript 中使用的 random() 函数,生成的数大致在 0~1 内是完全随机的。...柏林噪声 这样,我们就自然而然的引入了柏林噪声。 Perlin 噪声 ( Perlin noise ) 指由 Ken Perlin 发明的自然噪声生成算法。...使用 @rn(100) 填充每个格子的话,大概是这样: 观察一下,很容易发现,相邻的盒子之间,或者多个连续的格子之间,存在一定的关联性,这就使得,我们利用它创造出来的图形,会具备一定的规律。...这两个参数可以理解为控制随机效果的频率和幅度。 其中 new Perlin(shuffle) 即运用到了柏林噪声算法。...我们只需要在上述代码的基础上,将普通的完全随机,改为柏林噪声随机 @rn(): :doodle { grid-gap: 1px;

    57820

    谈谈随机数

    且看下图,沙丘的形成,过程是随机的,但却给人一种美,这样的场景有很多,比如地形,火焰,雨雪天气,木质纹路等,都有各自的美,当我们感叹大自然的鬼斧神工,自然会有疑问:如何通过随机算法来模拟它们? ?...这就是噪声:在三维空间提供高效的,可实现,可重复的伪随机信号。当然,上面的随机算法也能制造出噪声,但比较尖锐,生硬不自然,我们成为White Noise,比如电视上的雪花屏。...例如,Perlin噪声被大量用于云朵、火焰和地形等自然环境的模拟;Simplex噪声在其基础上进行了改进,提到了效率和效果;而Worley噪声被提出用于模拟一些多孔结构,例如纸张、木纹等。...---摘自candycat的博文《谈谈噪声》 ? 这里就不阐述噪声纹理的算法和思路了,这块内容也很多,个人的理解也很浅薄。...如上图,是Perlin噪声的4次分形叠加产生的灰度图,添加颜色表,模拟地形的一个过程。机器的特点是不易出错,可以完美的执行任务,通过噪声,可以在可控范围内随机的创造出不完美,反而更有质感,真实感。

    1.7K110

    Procedural Noise Adversarial Examples for Black-Box Attacks on Deep Neural Networks论文笔记(1)

    这种攻击形式揭露了神经网络对于Perlin噪声的脆弱性, Perlin噪声是一种程序性噪声(Procedural Noise), 一般用于生成真实的纹理, 使用Perlin噪声可以实现对所有的分类器都实现...top1 至少90%的错误率, 更加令人担忧的是, 该文显示出大多数的Perlin噪声是具有"普适性"(Universal)的, 在对抗样本中, 数据集的大部分, 使用简单的扰动使得高达70%的图片被错误分类...Perlin噪声模式是用来生成自然界的纹理的, 在图片和视频游戏中也有应用, 有趣的是, 这些扰动视觉上类似通用的对抗扰动(Universal Adversarial Perturbation), 能够使用相同的对抗噪声模式来高概率地欺骗一个深度神经网络...提出了黑盒优化的贝叶斯优化方法, 用来学习Perlin噪声的参数, 使用很少的迭代次数就可以制造出成功的对抗样本 和通用的扰动类似, 展现了一个通过我们的perlin噪声生成的单扰动能够实现许多成功的攻击对于大量的数据点集合而言..., 使用所生成的对抗样本来黑盒攻击真实的模型.

    1.2K30

    用噪声,做视觉艺术家

    云朵、山脉、泥土、树木都是大自然的鬼斧神工,但如何使用计算机模拟出这些自然界的纹理呢?你可能猜不到,我们可以通过噪声来实现。噪声,是一种图像算法,主要用来模拟生成各种纹理。...Tron 生成更真实的纹理,最终他通过一些噪声实现了那些纹理,并因此获得了奥斯卡奖。...梯度噪声 n维噪声这里不再详细实现,原理类似于二维噪声,只是插值的对象逐渐增加。 分形 我们还可以将多次噪声处理的结果进行叠加,从而得到更多、更自然的细节,这项技术被称为“分形”。...而本文仅仅是掀开了噪声的一个小小的角落,噪声是如此的变化多样,将各种噪声算法进行组合迭代,加入各种插值算法,调整各个参与的变量等等都能够带给我们无穷无尽的惊喜。...噪声算法的设计初衷是将大自然各种各样的天然纹理用数字图像表示出来,然而在今天,如今已经被广泛的应用在了音乐可视化、代码生成艺术、物理与仿真等各个领域,未来将成为视觉艺术家的手中利器。

    59320

    【译】模拟鼠标移动

    ,生成连续的随机位置。...值得庆幸的是,有一种技术可以完全满足我们的需求:单形噪音(或者更常见的称为 Perlin 噪声)。 让我们看看下面的图像,其中每列的高度是每次算法产生的值的大小。...上图是经典的随机函数生成的图像,下图则是单形噪音算法生成的图像。 ? 算法 你能十分明显地注意到底部图形看起来更平滑,因为每列的高度都与前一列有关联。...这些图表仅显示一个维度(x轴,从左到右),但使用单形噪音算法,你可以获得多个维度的值。在我们的例子中,我们将需要两个维度的值,对应着假鼠标的X和Y坐标。...我们需要做的第一件事就是实现一个生成噪音的脚本。就我而言,我正在使用 Seph 的这个脚本。

    3.3K30

    AIGC在游戏开发中的革命性潜力-自动生成内容与智能化NPC

    在此部分,我们将通过代码实例,展示如何使用Python和深度学习技术生成基础的游戏内容。1....基于噪声生成地形Perlin噪声是一种常用的程序生成地形的技术,特别适用于生成自然环境如山脉、海洋、森林等。...以下代码展示了如何使用Perlin噪声生成基本的2D地形图,这一技术常用于生成开放世界游戏中的地图。...开发者还可以使用更多的AI技术,如遗传算法和强化学习,来优化和调整关卡的设计,使其既具有挑战性又能适应玩家的技能水平。...地图与关卡自动生成:利用程序生成技术,特别是Perlin噪声等算法,AIGC能够自动生成大规模的游戏地图和复杂的关卡,减少手动设计的时间成本,并增加游戏的重复可玩性。

    21420

    无缝切地图的3D赛车游戏火了,小哥花16个月用JS打造,浏览器免费就能玩

    此外,考虑到不同电脑对浏览器的适配,这款赛车游戏还给出了不同级别的渲染设置,从“粗糙大色块”到更精细的树木和围栏都能生成。 要是有电脑显卡的话,还可以更改一下浏览器设置,给图形渲染加加速。...所以,这个赛车游戏中“任意变幻”的环境是如何生成的? 首先是生成环境地形。...小哥采用了类似柏林噪声(Perlin noise)的自定义算法,来生成环境高度图(Heightmap,用于生成三维地形的图像),随后进行简单修改让山景看起来更逼真。...柏林噪声,Ken Perlin发明的自然噪声生成算法,经常用于在游戏和特效中生成随机内容,包括火焰、云彩、奇形怪状的岩石以及树木和大理石表面等。 △高度图,图源维基百科 随后是制作赛道。...此外,他也采用了更“平和”的电动汽车作为核心赛车手,因为这样一来就不需要考虑齿轮或RPM等部件,而音频和物理特性也更容易编写了。(小哥称:内燃机正逐渐过时!)

    73310

    QQ 25年技术巡礼丨技术探索下的清新设计,打造轻盈简约的QQ9

    1.2 随机性 最简单的随机图像,就是模拟一台老式的黑白电视机,而生成的白噪图,这种算法也非常简单,只需要在每个像素点随机生成一个单通道的灰度颜色就可以了。...关于 Perlin 噪音,我们使用的是其改进后的算法,在二维图形中,噪音由原来4个顶点的插值计算下降到了3个顶点的插值计算,以达到减少运算量的效果。...02.从灰阶图到多彩图 上面我们已经介绍了如何利用噪音算法模拟那些看似随机但又显得十分自然的图像,下面内容将继续为大家介绍如何将噪音变成极光动画的。...为此,我们需要使用到 3D Perlin 噪音,由于 Perlin 噪音在任意方向都是平滑、连续的。于是我们要做的就是定期的,朝着固定方向切割 3D 空间就可以了。...、走马灯等效果: 03.性能优化 一开始我们使用的是 CPU 进行 Perlin 算法的计算,再把得到的结果转成 Bitmap 进行渲染。

    4.4K56

    人工智能设计师之智能排版的另一种实现方式

    Flipboard的自动排版系统Duplo 最近在整理算法驱动设计的案例,翻到Flipboard的自动排版系统,再次研究了下,把相关的技术思路整理了下: Flipboard主要要解决的是多种屏幕尺寸的排版方案选择...一、大批量生成排版方案 ---- ? 例如: 生成3栏的横向版面,Duplo可以进行匹配组合,生成2000+个排版样式。...二、排版方案生成的逻辑 ---- 把复杂的版面进行拆解,分解成更小的单元,使用的时候,进行组合,拼装出目标版面。 ? 如,上图从2栏的模版里选取适合的,加上从1栏的模版里选取的进行组合。...3.1 Page flow 这里用到了Perlin noise算法,Perlin Noise 可以用来表现自然界中无法用简单形状来表达的物体的形态,比如火焰、烟雾、表面纹路等。...3.2 每一页面中文字所占比例 这里认为80%或更高的比例更适合,即得分越高。 3.3 不同尺寸版面内容展示的一致性 由于是考虑适配各种屏幕的排版方案,因而会考虑选取一种内容展示更一致的方案。

    2K70

    PLC:自动纠正数据集噪声,来洗洗数据集吧 | ICLR 2021 Spotlight

    论文提出了更通用的特征相关噪声类别PMD,基于此类噪声构建了数据校准策略PLC来帮助模型更好地收敛,在生成数据集和真实数据集上的实验证明了其算法的有效性。...该算法首先使用原数据集进行warm-up阶段的训练,得到一个尚未拟合噪声的初步网络。...将$|f(x)-\frac{1}{2}|$的判断修改为|$f{hx}(x)-f{\tilde{y}}(x)|$,当结果大于阈值$\theta$时,将标签$\tilde{y}$修改为标签$h_x$。...在实践过程中,将差值判断加上对数会更加鲁棒。 Analysis ***  这一块是论文的核心,主要从理论的角度验证论文提出方法的通用性和正确性。...Conclusion ***  论文提出了更通用的特征相关噪声类别PMD,基于此类噪声构建了数据校准策略PLC来帮助模型更好地收敛,在生成数据集和真实数据集上的实验证明了其算法的有效性。

    49720

    Precomputed Real-Time Texture Synthesis with Markovian Generative Adversarial Networks

    (eg.双层均值池化和取样于一半分辨率的模糊的卷积核是等价的)]来拟合网络的反向过程,单纯得在前馈模式中处理.尽管由固定大小的Patch训练,结果得到的网络可以在任意维上生成连续的(continuous....为了减少失真并增加纹理的可变性,我们可以选择性得在输入图片中加入Perlin噪声....图12进一步得讨论了以高斯为基础的方法和我们的方法的不同.通常来说,它的结果更忠实的遵守了原始与风格相关的颜色分布,而且纹理背景更好,这是由于在学习中抒噪声映射到高斯分布上.另一方面,我们的方法产生更一致的纹理转化并且不需要承受一些复杂前景不满足高斯分布的状况...图13展示了使用训练过的模型来解码噪声图,不指引的纹理合成也是有效的.在这种情况下,Perlin噪声图在VGG_19中向前计算并为解码器生成了特征图.让我们惊异的是,由随机Imagenet中的图片训练的模型可以将特征图解码成合理的纹理....我们创造了个同一张纹理图和随机从ImageNet中选取的图片训练的生成网络.一旦被训练,我们的模型可以将棕色噪声解码成现实纹理,或者是把照片解码成画作.我们展示了我们的模型在给复杂的图片内容保留一致的纹理的一些优点

    1.5K60

    扩散模型最新综述!

    2.1.2 前向/反向过程,以及过渡内核 扩散模型是一种生成模型,它通过正向过程将起始状态转化为先验高斯噪声,反向过程则使用转移核将先验状态反噪并返回到起始状态。...2.1.3 从离散到连续 当扰动核足够小时,可以将离散过程(式(1)和式(2))推广到连续过程。离散马尔可夫链的扩散模型可以纳入连续随机微分方程(SDE)框架,其中生成过程逆转固定正向扩散过程。...2.2.1 去噪扩散概率模型(DDPM) DDPM是一种生成模型,通过从高斯噪声中恢复数据来生成新数据。该模型通过定义前向和反向过程以及转移核,将离散过程推广到连续过程。...向前SDE将连续扩散过程和随机微分方程联系起来,反向过程与ItōSDE的解相关联,该解由用于均值漂移的漂移项和用于额外噪声的白噪声布朗运动组成。...3.2.2 新兴的前向过程 隐式空间扩散算法有其优势,但也增加了框架的复杂性和计算负荷。为了解决这个问题,现代研究正在探索前向过程设计,以创建更健壮和更高效的生成模型。

    1.2K10

    想要制作沙盒游戏?那么这一款插件你一定不能错过(Unity3D)

    如果感兴趣的话,可以看代码的实现过程,代码中有很多的注释,可以用来学习。 五、理解无限世界生成原理 以下是无限世界生成的工作原理: (1)使用柏林噪声函数产生二维噪声,类似于旧电视上的静电噪声。...(2)使用二维柏林噪音函数循环生成三维地形,在给定范围内遍历每一个x、z坐标,然后将预制体填充到这个范围内的所有方块。...我们只计算当前坐标内的所有位置,而不进行无限生成,因为玩家在不奔跑的时候就没有比较生成无限的世界。 (3)柏林噪声本身是相当枯燥的地形。我们将几个不同频率和振幅的柏林噪声函数相加,得到更有趣的结果。...然后也不能一直调用而不受限制,这个办法就是生成一层包围的区域,WorldGenerator组件将玩家周围的区域分割成块,然后每个块的每个位置调用VoxelGenerate,也就是生成像素块 (6)树木和建筑物不能产生柏林噪声...七、功能介绍 完全基于Unity + UNET环境部署为基础 客户端和服务器的脚本在一起 无限大的世界 通过Perlin生成噪声过程 结构产生:树木等。

    1.9K30

    扩散模型的基本内容介绍

    在本文中,我们将研究扩散模型的理论基础,然后演示如何在PyTorch中使用扩散模型生成图像。 介绍 扩散模型是生成模型,这意味着它们用于生成与训练数据相似的数据。...从根本上讲,扩散模型的工作原理是通过连续添加高斯噪声破坏训练数据,然后通过学习反转这个噪声过程来恢复数据。训练后,我们可以使用扩散模型通过简单地通过学习的去噪过程传递随机采样的噪声来生成数据。...虽然有更复杂的方法来参数化,我们只需设置: 也就是说,我们假设多元高斯分布是具有相同方差的独立高斯分布的乘积,方差值可以随时间变化。我们将这些方差设置为我们的前向过程中的方差策略中的值。...鉴于此限制,图像扩散模型通常使用类似 U-Net 的架构来实现。 反向过程解码和 反向过程的路径由连续条件高斯分布下的许多变换组成。...最终,他们使用以下目标: 我们的扩散模型的训练和采样算法可见下图: 扩散模型总结 在本节中,我们详细探讨了扩散模型的理论。

    82110
    领券