2015年11月17日火曜日

Unity Reflection Probe

unity触り始めた。

Reflecion Probe は環境マップをキューブの形に適用しすることで壁や床の映り込みを補正するもの

映り込みがずれる

Unity 5.2から起きているかもしれない。

3m四方のキューブだが映り込みが1m位遠くにずれている


なので大きいキューブなら相対的にずれが少ないがやはり1mくらいずれている
こちらは30m四方

1m小さくするとぴったり一致したが範囲外になるので映り込みが薄くなっている

Blend Distanceが怪しい

どうも5.2からの機能かも。
ブレンドの長さが決められるパラメータだと思われるが写りこむものもそれに引っ張られている感じ。デフォルトでは1.0の値が入っている


しかもパラメータで変更することができない(デファードレンダリングにしても不可)

強引に小さな値にしてみたらぴったり一致し映り込みも薄くならない。
ただしブレンド領域もなくなる

下記スクリプトをprobeに付けて値を0等小さくにする
ただしゲームモードにしないと反映されない。
using UnityEngine;

[ExecuteInEditMode]
public class ReflectionProbe_param : MonoBehaviour {

    [SerializeField]
    private float bdValue;

    void Start () {
        this.GetComponent<ReflectionProbe>().blendDistance = bdValue;
    }
}

エディタ編集で値を更新する場合。
using UnityEngine;

public class refLectionProbe_param : MonoBehaviour {

    [SerializeField]
    private float bdValue;

    void OnValidate() {
        this.GetComponentt<ReflectionProbe>().blendDistance = bdValue;
 }
}


似たような問題を挙げているところがあった
Box projection reflection probes are inaccurate in 5.2