Unity 相关

  1. 光的来源 分为 直接光 与 间接光

  2. 照射到 物体上 会产生 漫反射 与 镜面反射

  3. 直接光 的 漫反射 (用 光源方向位置 与 物体顶点法线 计算) 产生 物体的 亮部

  4. 直接光 的 镜面反射 ( 光源位置方向 物体顶点法线 视线方向 ) 产生 物体的 高光

  5. 间接光 的 漫反射 为物体 整体 进一步 变亮
    Ambient 就是最简单的 一种
    更真实的 是 根据 物体周围 的物体颜色 计算

  6. 间接光 的 镜面反射 即 为物体的 环境反射
    一种 实现方式是 环境贴图

  7. 加上 物体产生的 阴影, 上述 四种 着色的 顺序是
    亮部 -> 阴影 -> 间接光 -> 环境反射 -> 高光

  8. 亮部 与 高光 一般 为 实时计算, 高光 无法 离线(烘焙), 因为与视线有关

  9. 镜面反射 也不能 为 烘焙, 常用处理手段有
    Reflaction Probe
    SSR( Screen Space Reflection )
    Matcap

  10. 阴影 可以实时 处理, 也可以用 烘焙光照贴图 实现, 实现手段有
    LightMap
    ShadowMask
    Distance ShadowMask

  11. 间接光的漫反射 (也就是所谓的GI), 实现方式有
    光照探头
    Light Probe Group
    Light Probe Proxy Volume
    烘焙光照贴图
    BakeGI / MixGI
    烘焙动态光照信息
    Realtime GI (预烘焙实时GI)

ref: https://zhuanlan.zhihu.com/p/158589986

  1. Light Probe (灯光探头)
    实现原理是 在 光源 或 自发光物体的 周围(或其他需要的地方) 撒上 一堆 探测球, 在 预处理阶段, 探测球会 根据 光源 计算自己所在位置的 灯光信息,
    当 动态物体 渲染时 会 实时寻找 靠近自己最近的 一个或多个 探测球 的颜色 差值 后 作为自己的 光照信息
    关键点:
    实时作用于 动态物体
    动态物体应该尽量小, 太大 会导致 光照信息 计算失真

  2. Realtime GI
    实现原理是 预处理阶段 计算出 静态物体定点 的光照信息(包含了光线反弹信息), 但并不计算具体的颜色, 只记录收影响的程度
    运行时 根据 灯光颜色和强度 与 预处理阶段 计算出的 程度信息 来 计算最终的 颜色值
    关键点:
    作用于 静态物体
    允许灯光颜色,强度等信息 实时变化, 但位置信息 不能再变化了

  3. Baked GI
    原理是 使用 光照贴图的 方式, 即 预处理阶段 烘焙出一张 贴图, 贴图中记录的是 光照信息(包含了光线反弹信息), 会计算出最终的颜色
    因此 运行时 灯光信息(颜色, 强度, 位置) 不能改变, 作为贴图 作用在物体上
    关键点:
    作用于 静态物体
    灯光 与 物体 的所有信息都不能改变

ref: https://www.bilibili.com/video/BV1Hs411G7n7?spm_id_from=333.337.search-card.all.click

  1. Unity 中有两种 GI 光照方式, 分别为 “实时GI” 和 “BakeGI”
    “实时GI” 参考 [13]
    “BakeGI” 参考 [14], 它又有三种模式
    Bake Indirect: 烘焙间接
    它只烘焙间接光照, 而 直接光和阴影 都是 实时计算, 比较吃性能
    Shadowmask: 阴影遮罩
    它处了烘焙间接光照, 还会将静态物体产生的阴影烘焙到 Shadowmask 中, 需要多一份纹理, 少了一些实时运算
    substrative
    它会将静态物体的 直接光 间接光 和 阴影都作烘焙, 性能消耗最小

ref: https://www.bilibili.com/video/BV1J44y1g7w5?p=84&spm_id_from=pageDriver

  1. Unity 中 RealTimeGI 和 BakedGI 可以同时开启
    开启方法:
    在 Lighting 面板的 [Scene] 页签 下的 [Realtime Lighting] 分组中 勾选 [Realtime Global Illumination] 可开启 RealTimeGI
    在 Lighting 面板的 [Scene] 页签 下的 [Mixed Lighting] 分组中 勾选 [Realtime Global Illumination] 可开启 BakedGI
    可以从 Lighting 面板的 [RealTime Lightingmaps] 和 [Baked Lightmaps] 查看项目中 烘焙的 RealTimeGI 纹理 和 BakedGI 纹理
    同时 需要 修改 Light 的 Mode 参数 为 Bake 或 Mix
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值