🍊这篇是UE的灯光与烘培的学习笔记,不大全面,有问题请随时指正🍊
🍊这里是b站链接🍊


Unreal 灯光照明与烘培

🚩【主要涵盖的话题】

  1. 技术和艺术的讨论
  2. 资产和场景的准备
  3. 灯光烘培设置
  4. 动态照明设置
  5. 图像基础的灯光设置
  6. 阴影
  7. 反射

🚩【一:目标媒介】

  • 考虑项目是否会定义到移动设备,或者是在一些需要高保真的媒体设备使用
  • 每个镜头都是独立的视频项目的编辑方案
  • 对于24FPS,30FPS和60FPS的项目的不同处理的方案
  • 不需要完全实时渲染的项目
  • 如果整个项目都是静态的,那么可以预先烘培
  • 开放世界的灯光无法提前烘培,所以需要light map并使用动态照明处理
  • 考虑硬件的最低规格

🚩【二:Deferred Renderer和Forward Renderer】

🥕Deferred Renderer:

  • 是UE4的默认渲染器
  • 它的工作方式就是储存所有原始数据在Screen Space Buffers(Color,Normal,Depth,…)然后将他们组合到一起成为Final Image
  • 照明灯光一起评估
  • 额外的screen space则会被用在更复杂的后处理效果与照明效果的组合
  • 支持所有的渲染功能

🥕Forward Renderer:

  • 为了VR开发的
  • 所有的lighting和shading都在object draw time进行评估计算
  • 可以做特有的材质优化
  • 更多的抗锯齿操作

🚩【三:如何给一套好的照明准备资产】

  1. 确保材质是物理正确的
    matRef
    常见问题有:
      1. base color太亮或太暗。
      1. 金属度为了确认是不是金属最好保持是1或0。
      1. specular保持0到1之间的灰度,而不是颜色。
      1. 最黑的常见物是碳(rgb:0.03),最白的是雪(rgb:0.9)。永远不会是纯白或纯黑。
      1. vantablack是世界上最黑的黑(rgb:0.0045, roughness:1)
    • vantablack
  2. 打灯前确保移除自动曝光
    deactiveAutoExposure
  3. 放置chrome sphere和grey sphere
    chromeSphere
    保证它是纯反射物
  4. 设置一个3.14(pi)的 directional light,并且用color picker 查看灰度
    50%Grey

🚩【四:烘培灯光 VS 动态灯光】

🥕Baked Lighting:

🤓优势:

  1. GI
  2. cheap soft shadows,陈本低的阴影
  3. Less GPU demanding,较低的GPU需求

😈劣势:

  1. slower iteration,迭代变慢
  2. static lighting,是静态的,如果生成更多的资产则新资产不会对照明产生影响
  3. more maps in memory,需要储存空间来放light maps

🥕Dynamic Lighting:

🤓优势:

  1. what u see is what u get,所见及所得
  2. 非静态的

😈劣势:

  1. No GI
  2. GPU demanding,对GPU有要求

🚩【五:常用烘培灯光设置】

基础灯光设置:

  1. Direction Light(Stationary)
  2. Lightmass Baking(GI)
  3. Skydome(static)

什么是light map?

  • light maps以纹理贴图的形式储存了灯光信息
  • 它是HDR tecture并且储存了灯光方向
  • 它的好处是处理起来很快,阴影柔和,但是如果文件太小则会缺少阴影的细节清晰度。
  • lightasset2
  • lightasset
  • min lightmap resolution将定义UV islands(padding)之间的空间
  • 更小的padding会减少像素的浪费以及在相同的分辨率下得到更好的阴影效果

Lighting Type:

  • 当烘培灯光时,一般只会使用static light(静态光) 或者是 stationary light(固定光)
  • emit photons:
    • Directional light
    • point light
    • spot light
  • emit no photon:
    • sky light

Lightmass Setting:

lightmass

  • static Lighting Level Scale * Indirect Lighting Quality = 1.0;

lightmass_chart

  • 间接照明质量是最影响时长的

  • volume light sample scale
    • 降低static lighting level scale会增加volume lighting samples的数量
  • lightmass Portal
    • 对门窗类型的照明十分有用
  • lighting Scenarios
    • 只用编辑一个enviroment level
    • 照明方案会以light maps的形式分别储存
    • 一个时间使用一个照明方案(不存在过渡,不能同时拥有两种在一个场景)

🚩【六:常用动态照明设置】

基础灯光设置:

  1. Direction Light(movable)
  2. SKydome(moveable)
  3. Distance Field AO
  4. Screen Space AO

什么是Distance Field:

  • Distance Field 储存了每个点到最近表面的距离
  • distanceField
  • df_setup
  • dfao
  • 需要避免过多的缩放
  • 很大的物体对于distance field 的支持不理想,需要拆分成较小的部分

🚩【七:图像基础的照明 IBL】

基础灯光设置:

  • 设置场景,确保有一个平面可以投射并接受阴影
  • 有一个back plate(需要制作跟踪)(可以理解为UE里做nuke的事情)
  • Directional light(moveable)
  • Skylight with HDRI(moveable)
  • fake steps shadow
  • backPlate
  • 当人走向光照位置则激活阴影
  • IBL

🚩【八:shadow maps,for Dynamic Shadowing】

  • Depth map,判断存在阴影的部分
  • depthMap
  • 如果shadow map质量太低会有锯齿
  • 如果shadow map bias太高则会有漏光
  • 使用相机视锥来优化场景,近景给予更多的资源
  • camFrustum

🚩【九:Directional Light Stationary area shadows:】

  • 激活Lightmass下的:use Area Shadows for Stationary Light
  • areaShadow

🚩【十:capsule shadows:】

capsuleshadows

  • 使用一个类似资产的外轮廓来创建一个十分柔和的阴影

🚩【十一:Raytraced contact shadows:】

  • 将contact shadow length 设置的很小来获得细节上的阴影
  • 在比例很小的物体上很有用,但是比较耗费资源

🚩【十二:Reflections:】

  • 反射较为资源
  • 使用planer reflection来得到平面的反射(本质是在镜像它),平面的物体适用,但此不适用于有机形状。