【互动媒体创意编程0】柏林噪声生成的随机地形

【互动媒体创意编程0】柏林噪声生成的随机地形

前言

重接从结课以来陆陆续续一边学一边写的大作业。
这大概是最近时间里写得最舒服的一科作业了。除了偶尔有的bug,整体来说难度都不高,并且写出来真的非常好看也非常有意思。
《代码本色》是我从大一的时候就知道的一本书,但知道最近才真正仔仔细细去看一遍。现在我将前面五章内容的作业写到一个文档中,因为它们之间彼此有一些联系,也可以从相互之间得到一些启发。
我在构思的前期花费了很多时间。相关的想法网上有很多,但是都不是很有趣。因此我花费了很多时间在油管上找了一些实例,参考了一些,也仿写了一些。(有一些想法真的是很妙呀。)

第0章:随机游走和泊林噪声

这是模仿youtube上的一个代码挑战编写的程序。先来看效果:

在这里插入图片描述
比较显而易见的是,这样的地形很显然是由一块平整地形进行局部节点拔高形成的。
在二维平面中,我们很容易能够将整块画布切分为一定密度的网格,只需要计算它的行和列,并连接成线即可。
不过,我们如果想要一块可以动的地形,那么就必然不可能通过画线来实现这样的网格,除非我们计算每一个节点的位置,然而这样的做法很显然是没有必要的。
processing为用户定义了绘制特定图形的方法,即beginShape()、vertex()以及endShape()。通过这三个函数,我们将能够利用计算好的节点位置批量生成图形。在这里,这个方法显现出了巨大的优势。
在这里插入图片描述

代码也很简单:

int cols,rows;  
int density =20; 
color currentColor;
int scl = 20;

void setup(){
   
  size(900,600,P3D);  
  int w = 900;
  int h = 600;
  cols = w/scl;
  rows = h/ scl;
}  


void draw()  {
            
  background(0);     
  stroke(255);     
  noFill();        

  for(int y=0;y < rows;y++){
         
    beginShape(TRIANGLE_STRIP)
  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
柏林噪声算法是一种用于生成2D地图的算法。它是由柏林数学家卡尔·维特所提出的。该算法的基本原理是通过一系列随机生成器产生噪声,在二维空间中形成连续的噪声图案。 柏林噪声算法的过程可以简单概括为以下几个步骤: 1. 确定地图大小和分辨率:首先需要确定生成地图的大小和分辨率,即地图的宽度和高度,以及像素的数量。 2. 创建随机生成器:使用随机生成器产生随机数序列,这些随机数将用于生成噪声地图。柏林噪声算法通常使用梅森旋转算法或其他类似的高质量随机生成器。 3. 生成噪声图案:按照一定的规则和算法,使用随机生成生成噪声图案。柏林噪声算法通常使用渐变产生随机数的方法,即每个点的随机数值是由其周围点的随机数值决定的,通过对这些值进行插值计算得到最终的噪声图案。 4. 进行后处理:得到的噪声图案可能会有一些不合理或不自然的地方,需要进行后处理来修正。常见的后处理方法包括平滑、调整亮度和对比度等。 5. 输出地图:最终生成的2D地图可以输出为图片文件或其他形式的图形数据,供使用者进行进一步处理或应用。 柏林噪声算法生成的2D地图具有丰富的细节和真实感,可以应用于游戏开发、地理信息系统等领域。它是一种有效而常用的生成地图的算法,被广泛应用于计算机图形学和计算机模拟领域。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值