Mathf.PerlinNoise

原创 2015年07月10日 12:18:25

这个函数会基于一个二维perlin noise图像(本质是算法,并不是真正的生成一张图片),用x和y作为uv坐标(取值范围都是0-1,超出这个范围的情况和uv坐标是一样的,perlin noise图像是可以无限延长放大的)在这个图像中取点,将这个点的灰度值作为函数结果返回。

Perlin Noise的特点是:返回值随着x,y坐标的移动,是连续且平缓的变化的随机值,这点和Random是完全不同的,而且这个特点非常重要,应用范围很广。可以想象,把x或者y的值随着时间去改变,会得到动态变化的一系列数值。

用法举例:

Void Update()
{
Color color = new Color(Mathf.PerlinNoise(Time.time, 0), Mathf.PerlinNoise(0, Time.time), Mathf.PerlinNoise(Time.time, Time.time));
light.color = color;
}

上述代码会让灯光颜色随机发生变化,但是因为三个通道都是平缓的变化,所以最终灯光的颜色也是一个平缓的变化过程。r通道是横向向右移动取值,g通道是纵向向下移动取值,b通道是像右下45度方向移动取值。

版权声明:请尊重原创内容,转载请注明来源及链接。

相关文章推荐

游戏开发中的程序生成技术

简介PCG是程序生成游戏内容的简称,它使用了随机或者伪随机数的技术,给游戏带来了无限的可能。相比于传统的由设计师将游戏世界中的一草一木都精心配制,PCG的方法是去配置一些生成的规则,然后由生成算法自动...

Unity中使用柏林噪声生成地图

主要是利用Unity的 Mathf.PerlinNoise   函数(柏林噪声)的不同寻常的功能。https://docs.unity3d.com/ScriptReference/Mathf.Perl...

Unity PerlinNoise问题

最近在搞的随机地图生成器,用到了Unity的PerlinNoise函数 由于我意外的设置了参数,导致PerlinNoise返回了完全相同的值。 0.465xxxxxxx 后来经过其他小伙...

## Unity3D实现粒子光环效果

Unity3D实现粒子光环效果参考效果: http://i-remember.fr/en

Lerp 实现匀速运动

Mathf.Lerp的常见误用是Update() { Transform.position = new Vector3(transform.position.x, targetPosition...

Unity 脚本学习总结

1.创建代码对应的基类:public class MyObjClass : MonoBehaviour2.创建枚举:public enum Direction { DirectX, ...
  • zszeng
  • zszeng
  • 2015年06月28日 15:56
  • 1372

[算法]柏林噪声 Perlin Noise

关于柏林噪声的原理和算法在参考文献[1]的博客中,已经描述的非常详细。我在查阅Perlin本人的论文和那篇博客后,先写了一个一维PerlinNoise的演示程序~。在写完这个演示程序之后,发现原来不懂...

[柏林噪声(Perlin Noise)(译)]

如有转载,请注明: http://www.azure.com.cn 原文链接:http://freespace.virgin.net/hugo.elias/models/m_perlin.ht...

Perlin Noise

Many people have used random number generators in their programs to create unpredictability, make th...

3D数学之柏林噪声(Perlin Noise)

经过四天的努力,终于自己实现了3D柏林噪声,当第一次用它成功渲染出茶壶的时候,感觉自己跟《当幸福来敲门》的男主角chris一样,当时不由自主为自己鼓起了掌. 4天时间啊,这4天时间基本上没有背单词,白...
  • seamanj
  • seamanj
  • 2013年09月07日 02:19
  • 6908
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Mathf.PerlinNoise
举报原因:
原因补充:

(最多只允许输入30个字)