zoukankan      html  css  js  c++  java
  • 噪声简介

    1.噪声

      噪声是游戏编程的常见技术,广泛应用于地形生成,图形学等多方面。

      

     2.为什么需要噪声

      噪声其实就是为了把一些随机变量引入到程序中,在我们写程序时,也经常会使用random()生成随机值,但是它的问题是生成随机值太随机了得到的值往往总是参差不齐,如下图使用随机值作为像素点的黑白图

      

       而使用噪声,我们得到的值随机但是看起来却是平缓的,这种图看起来也更自然舒服(对比图中左侧为基础噪声,右侧是fbm:分型布朗姆运动 后的效果)

      

    3.噪声的特性

      3.1随机性

        噪声的基础就是随机

      3.2哈希性

        在《我的世界》中,由于世界是无限大的,他以chunk区块(16*16*255格子)为单位,之家在玩家附近的区块。也就是说当玩家在移动时,它会卸载远离的区块,加载靠近的区块。

        一个问题是当玩家离开一个区块,进入第二个区块,然后再回到第一个区块时,他看到的应该是保持一致的,所以这时我们输入相同的值应该要返回固定的值。

        因此可哈希是噪声的一个重要性质。

      3.3平滑性

        对于一个随机生成的地形来说,如果简单的使用随机和哈希组合,那么容易得到下图(以一维地图为例,x轴为位置,y轴为地形)

       

        由图可见,由于随机的杂乱无章,地形非常的参差不齐,这可不是一个自然的地形。

        我们期望的地形应该如下,不仅随机切要平滑才显得自然

        

  • 相关阅读:
    【数学】三分法
    【数学】【背包】【NOIP2018】P5020 货币系统
    【数学】【CF27E】 Number With The Given Amount Of Divisors
    【单调队列】【P3957】 跳房子
    【极值问题】【CF33C】 Wonderful Randomized Sum
    【DP】【CF31E】 TV Game
    【神仙题】【CF28D】 Don't fear, DravDe is kind
    【线段树】【CF19D】 Points
    【字符串】KMP字符串匹配
    【二维树状数组】【CF10D】 LCIS
  • 原文地址:https://www.cnblogs.com/dan2/p/14242174.html
Copyright © 2011-2022 走看看