【实现100个unity特效之3】使用PerlinNoise(柏林噪声)实现平滑的灯光闪烁效果

简介: 【实现100个unity特效之3】使用PerlinNoise(柏林噪声)实现平滑的灯光闪烁效果

解释

Perlin噪声是一种用于生成随机数的算法,常用于游戏中的自然环境生成,如地形、云层、水面等。它可以生成连续的、自然的随机数序列,使得生成的随机数更加真实。在这个代码示例中,Perlin噪声被用来生成一个随机数,用于控制灯光的亮度。具体来说,Mathf.PerlinNoise(Time.time, Time.time *5.0f)生成了一个在0到1之间的随机数,然后使用Mathf.Lerp(min, max, noise)将这个随机数映射到min和max之间,作为灯光的亮度值。

代码

using UnityEngine;

//灯光闪烁
[RequireComponent(typeof(Light))]
public class LightFlicker : MonoBehaviour {
    private Light light;
    public float min = 1.2f; //最小亮度
    public float max = 2.0f; //最大亮度

    private void Awake() {
        light = GetComponent<Light>(); //获取灯光组件
    }

    private void Update() {
        float noise = Mathf.PerlinNoise(Time.time, Time.time *5.0f); //使用Perlin噪声生成随机数
        light.intensity = Mathf.Lerp(min, max, noise); //根据随机数设置灯光亮度
    }
}

这个算法会返回一个0到1之间的 foat 类型的值

这个算法的特点是:随着参数 x,y 值的移动,它的返回值会是连续且平滑变换的随机值

目录
相关文章
|
2月前
Threejs用切线实现模型沿着轨道行驶
这篇文章详细介绍了如何使用Three.js让一个模型沿着预定的曲线路径移动,并保持模型的方向始终沿着路径的切线方向,提供了实现这一效果的具体代码和步骤。
85 1
Threejs用切线实现模型沿着轨道行驶
|
4月前
|
开发框架
threejs做特效:实现物体的发光效果-EffectComposer详解!
【8月更文挑战第7天】实现物体的发光效果-EffectComposer详解!
439 6
threejs做特效:实现物体的发光效果-EffectComposer详解!
|
4月前
|
图形学
小功能⭐️Unity中利用材质自发光实现物体闪烁效果
小功能⭐️Unity中利用材质自发光实现物体闪烁效果
|
6月前
|
图形学
【unity小技巧】实现FPS武器的瞄准放大效果(UGUI实现反向遮罩,全屏遮挡,局部镂空效果)
【unity小技巧】实现FPS武器的瞄准放大效果(UGUI实现反向遮罩,全屏遮挡,局部镂空效果)
86 1
|
6月前
|
图形学
【unity小技巧】FPS游戏实现相机的偏移震动、武器射击后退和后坐力效果
【unity小技巧】FPS游戏实现相机的偏移震动、武器射击后退和后坐力效果
60 1
|
6月前
|
Go 图形学
【Unity小技巧】3D人物移动脚步和跳跃下落音效控制
【Unity小技巧】3D人物移动脚步和跳跃下落音效控制
67 1
|
6月前
|
图形学
【unity小技巧】实现没有动画的FPS武器摇摆和摆动效果
【unity小技巧】实现没有动画的FPS武器摇摆和摆动效果
44 0
|
6月前
|
图形学
【unity小技巧】实现FPS射击游戏枪武器随镜头手臂摇摆效果
【unity小技巧】实现FPS射击游戏枪武器随镜头手臂摇摆效果
59 0
|
6月前
|
图形学
【unity小技巧】FPS简单的射击换挡瞄准动画控制
【unity小技巧】FPS简单的射击换挡瞄准动画控制
35 0
|
7月前
|
传感器 芯片
[远心镜头] 物方远心、像方远心和双远心镜头的区别
[远心镜头] 物方远心、像方远心和双远心镜头的区别
170 0