前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Unity3D-光照系统

Unity3D-光照系统

作者头像
孙寅
发布2020-06-02 17:02:33
1.4K0
发布2020-06-02 17:02:33
举报
文章被收录于专栏:宜达数字宜达数字
1、什么是局部光照(Local illumination)

简单说:光在模型表面的照射效果。

2、什么是全局光照(Global illumination)也称GI

这个其实是三维软件中的称呼。其实光从太阳经到达地面是经过无数次的反射和折射。 全局光照里面又有Realtime GI(实时全局光照),默认情况下Unity的光源都是实时的,代表这些灯源会把光线照射到场景并每帧更新,

3、两者的异同?

全局光照参考的条件太复杂,而且占据大量的CPU资源! 局部光照只考虑模型表面的照射效果,所以更加灵活,简易。

3-1、Unity的光照系统

在Unity中提供了两种非实时的全局光照。 一种是预计算的GI(Precomputed Realtime GI) 另一种是烘焙的GI(Baked GI) 这两种都是可以执行Build指令或者勾选Auto自动烘焙,才能生效。注意:他们只会计算或烘焙勾选了Lightmap Static 的物体,如果想影响动态物体需要使用灯光探头。 预计算的GI与烘焙GI虽然都能实现GI效果,但是预计算允许对光源记性修改,而烘焙GI完成后在修改光源也不生效。

案例:模拟日夜循环

1、添加光照探头

Paste_Image.png

2、进行编译

3、修改灯光的角度,模拟日落系统

Paste_Image.png

4、预计算实时GI的间接光照实现

Paste_Image.png

1、首先关闭系统的实时渲染功能

Paste_Image.png

2、添加聚光灯

Paste_Image.png

3、进一步测试

我们将长方体设置为静态LightMap

设置周围的方块体也为LightMap

打开预计算的实时GI - Precomputed Realtime GI

选中Lighting里面的编译进行

设置完后

之前的图,没有设置静态LightMap

注:设置完LightMap static后的游戏物体不可以移动。

如果场景中有非静态物体也需要接收全局光照,则需要添加Light Probe Group,分布的密度和位置取决于对光照敏感程度的要求和光照变化的强度。

Paste_Image.png

Paste_Image.png

然后烘焙就可以使用了

关于灯光的类型

灯光类型

Baking:选项中

三种烘焙选择

Realtime:Unity默认选择Realtime,灯光会通过烘焙GI系统处理直接光源与间接光源。 Baked:只会被场景内的静态对象拿去GI计算,在Baked GI模式下不会照亮非静态物体 Mixed:场景内的静态对象会被烘焙GI拿去做计算,同时仍会继续运算即时光源到非静态对象上。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、什么是局部光照(Local illumination)
  • 2、什么是全局光照(Global illumination)也称GI
  • 3、两者的异同?
    • 3-1、Unity的光照系统
      • 案例:模拟日夜循环
      • 4、预计算实时GI的间接光照实现
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档