最近公司项目终于闲下来,重新回来写文章啦,不过还有几个人记得我呢。 我的速度平均两周一篇文章吧,要是看得人多我就加速!评论告诉我你想看什么! 又来开坑了,看到群里好像很多人搞不懂unity的灯光烘焙,所以我单开一个系列来讲这些,希望你看完应该能对Unity灯光有系统性的认识。 也许现在你没法全部看懂,但看完我的整个灯光系列,你就能掌握。 两种光源又会产生各自的 漫反射(Diffuse)和镜面反射(Specular)。 DirectDiffuse 亮部 DirectSpecular 高光 IndirectDiffuse 环境间接光 IndirectSpecular 环境反射
再加上Shadow 阴影,这就是组成光影的五个元素。 所以需要“作假”,选择项目里不需要“实时变化”的部分,提前渲成离线内容,即烘焙。 注:高光会根据视角变化,没法烘焙,亮部烘焙成光照贴图会导致高光消失。 理想的一盏灯,即要对静态物体生成光照贴图,又要照亮动态物体。 早期unity灯光只有bake和realtime两种模式,想实现上述目的,必须创建两盏灯,极其不方便,于是应需增加了Mix灯光。 而这个混合灯光与烘焙模式之间的关系,是入门光照系统中,最大的一道坎。 橙色为灯光类型,深蓝色为间接光作假方式,蓝绿色为接受灯光的物体。 BakeGI:将间接漫反射颜色记录成图片(光照贴图),针对静态物体 光照探头:将间接漫反射颜色记录成球谐信息(光照探头),针对动态物体 RealtimeGI:与BakeGI相似,灯光可实时改变颜色方向(本来被弃用,但新版本HDRP又加了回来)
https://unity.cn/projects/progressive-lightmapper unity.cn 阴影有四种模式:Realtime,Bake,Shadowmask,Distance Shadowmak 把模型移开,地面的阴影依然存在,可见是烘焙阴影。但直接光依然是实时,所以有高光点。 回到Project Settings。Shadow Distance指的是,实时阴影在距离摄像机多远处消失。距离越远,阴影的精度会越低。 假设远处有一栋房子,在阳光下参数投影。在阴影边界处,无法避免出现下图现象 这时候,如果烘焙Distance Shadowmask,则可以用极低分辨率的mask来补全远处阴影。下图地面大小10m*10m,shadowmask贴图像素只有 64 * 64 https://www.artstation.com/luteli https://www.zhihu.com/people/lute-li/posts |