unity5.0很早以前可以动态改自发光
也就是自发光对GI有影响
不过很少有人注意到这点
主要是在动态和静态上也存在不同的情况
有时候用处还是很明显的
下面是在unity5.5上做的测试
首先 作为自发光的物体必须是静态的,
其次材质的emission必须放上图片或者有颜色
然后烘焙和实时分为三种情况
而且emission下有三个选项,none就是自发光不管在哪个模式下都不对全局光产生影响
realtime就是在实时的情况下可以通过代码DynamicGI.UpdateMaterials来调整自发光的亮度或者颜色等等
baked当然也能通过代码调整,但必须是只开了pre的情况下才行,如果既开了pre又开了baked,那么只有设置成realtime才能的才能改变
如果场景只设置了baked,只有烘焙效果,并不能有实时效果
当然两个都没有的话,就没有烘焙效果和实时效果了
下面是控制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UpdataGI : MonoBehaviour {
float tempTime = 0.001f;
void Update () {
if (tempTime < 1) tempTime += 0.001f;
else
tempTime = 0;
this.gameObject.GetComponent().material.SetColor("_EmissionColor", Color.HSVToRGB(tempTime, 1,2));
DynamicGI.UpdateMaterials(this.gameObject.GetComponent());
}
}
图片效果比较像面光源