docs.unity3d.com
    目次を表示する/隠す

    Normal From Texture ノード

    説明

    入力 Texture で定義されるハイトマップを法線マップに変換します。UV 値は入力 UV、サンプラー状態は入力 Sampler で定義できます。これらのポートに何も接続されていない場合は、入力からデフォルト値が使用されます。詳細は ポートバインディング を参照してください。

    作成された法線マップの強度は入力 Offset と入力 Strength で定義できます。Offset は法線のディテールの最大距離を定義し、Strength は結果の乗数として機能します。

    ポート

    Name Direction タイプ バインディング 説明
    Texture 入力 Texture なし ハイトマップ
    UV 入力 Vector 2 UV テクスチャー座標
    Sampler 入力 Sampler State なし Texture のサンプラー
    Offset 入力 Vector 1 なし サンプルを補正する量
    Strength 入力 Vector 1 なし 強度の乗数 
    Out 出力 Vector 3 なし 出力値

    生成されるコードの例

    以下のサンプルコードは、このノードの出力の一例を示したものです。

    void Unity_NormalFromTexture_float(Texture texture, SamplerState Sampler, float2 UV, float Offset, float Strength, out float3 Out)
    {
        Offset = pow(Offset, 3) * 0.1;
        float2 offsetU = float2(UV.x + Offset, UV.y);
        float2 offsetV = float2(UV.x, UV.y + Offset);
        float normalSample = Texture.Sample(Sampler, UV);
        float uSample = Texture.Sample(Sampler, offsetU);
        float vSample = Texture.Sample(Sampler, offsetV);
        float3 va = float3(1, 0, (uSample - normalSample) * Strength);
        float3 vb = float3(0, 1, (vSample - normalSample) * Strength);
        Out = normalize(cross(va, vb));
    }
    
    トップに戻る
    Copyright © 2023 Unity Technologies — 商標と利用規約
    • 法律関連
    • プライバシーポリシー
    • クッキー
    • 私の個人情報を販売または共有しない
    • Your Privacy Choices (Cookie Settings)