以下の内容はhttps://marumaro7.hatenablog.com/entry/material_hdr_insensityより取得しました。


【Unity】マテリアルのHDRカラー強さをスライダーで調整する方法

要件

Unity6000.026f1
URPプロジェクト

はじめに

マテリアルのHDRカラーの「強さ」の変更方法で少し詰まったのでメモ

まず、HDRカラーの「強さ」を設定する専用の変数は存在しません。
色のR,G,Bの値に数値を乗算することで実現します。

サンプル

using UnityEngine;
using UnityEngine.UI;

public class HDRColorController : MonoBehaviour
{
    [Header("UI")]
    [SerializeField] private Slider _colorIntensitySlider;   // HDR強度スライダー
    [SerializeField] private Image _colorImage;              // 色取得用UI(ColorPickerなど)

    [Header("Material Settings")]
    [SerializeField] private Material _backgroundImageBaseMaterial; // 操作対象のマテリアル
    [SerializeField] private string _colorPropertyName = "_Color";  // マテリアルのColorプロパティ名(Reference名)

    private void Start()
    {
        // スライダーが設定されているか確認
        if (_colorIntensitySlider != null)
        {
            _colorIntensitySlider.onValueChanged.AddListener(OnColorIntensityChanged);
        }
    }

    /// <summary>
    /// HDR強度スライダーが変更された時に呼ばれる処理
    /// </summary>
    private void OnColorIntensityChanged(float value)
    {
        if (_backgroundImageBaseMaterial == null || _colorImage == null)
            return;

        // マテリアルにプロパティが存在するか検証
        if (_backgroundImageBaseMaterial.HasProperty(_colorPropertyName))
        {
            // UIから選択された色
            Color baseColor = _colorImage.color;

            // HDR強度を2のべき乗で計算
            float factor = Mathf.Pow(2, value);

            // HDR適用(RGBのみ拡張)
            Color hdrColor = new Color(
                baseColor.r * factor,
                baseColor.g * factor,
                baseColor.b * factor,
                baseColor.a
            );

            // マテリアルに設定
            _backgroundImageBaseMaterial.SetColor(_colorPropertyName, hdrColor);
        }
    }
}


スライダーの値を2のべき乗としている理由は、
HDRの強度は「線形に上げる」よりも「指数的に上げる」方が自然なためです。
お好みによりスライダーの値をそのまま使用しても問題ありません。

            // HDR強度を2のべき乗で計算
            float factor = Mathf.Pow(2, value);

参考

https://discussions.unity.com/t/how-to-get-set-hdr-color-intensity/226028




以上の内容はhttps://marumaro7.hatenablog.com/entry/material_hdr_insensityより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14