docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Gradient Noise Node

    Description

    Generates a gradient, or Perlin, noise based on input UV. The scale of the generated noise is controlled by input Scale. In terms of performance cost, Gradient Noise node can be slightly more computationally intensive than sampling a texture map. Because the UV value is used as the seed for the noise generation, you can offset, scale, or distort the UV value to generate different noise patterns.

    Ports

    Name Direction Type Binding Description
    UV Input Vector 2 UV Input UV value
    Scale Input Float None Noise scale
    Out Output Float None Output value in the range 0.0 to 1.0

    Generated Code Example

    The following example code represents one possible outcome of this node.

    float2 unity_gradientNoise_dir(float2 p)
    {
        p = p % 289;
        float x = (34 * p.x + 1) * p.x % 289 + p.y;
        x = (34 * x + 1) * x % 289;
        x = frac(x / 41) * 2 - 1;
        return normalize(float2(x - floor(x + 0.5), abs(x) - 0.5));
    }
    
    float unity_gradientNoise(float2 p)
    {
        float2 ip = floor(p);
        float2 fp = frac(p);
        float d00 = dot(unity_gradientNoise_dir(ip), fp);
        float d01 = dot(unity_gradientNoise_dir(ip + float2(0, 1)), fp - float2(0, 1));
        float d10 = dot(unity_gradientNoise_dir(ip + float2(1, 0)), fp - float2(1, 0));
        float d11 = dot(unity_gradientNoise_dir(ip + float2(1, 1)), fp - float2(1, 1));
        fp = fp * fp * fp * (fp * (fp * 6 - 15) + 10);
        return lerp(lerp(d00, d01, fp.y), lerp(d10, d11, fp.y), fp.x);
    }
    
    void Unity_GradientNoise_float(float2 UV, float Scale, out float Out)
    {
        Out = unity_gradientNoise(UV * Scale) + 0.5;
    }
    
    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)