找回密码
 立即注册
查看: 290|回复: 0

Unreal 灯光照明与烘培

[复制链接]
发表于 2022-10-4 21:18 | 显示全部楼层 |阅读模式
<hr/> 这篇是UE的灯光与烘培的学习笔记,不大全面,有问题请随时指正 这里是b站链接
<hr/>
【主要涵盖的话题】


  • 技术和艺术的讨论
  • 资产和场景的准备
  • 灯光烘培设置
  • 动态照明设置
  • 图像基础的灯光设置
  • 阴影
  • 反射
<hr/>
【一:目标媒介】


  • 考虑项目是否会定义到移动设备,或者是在一些需要高保真的媒体设备使用
  • 每个镜头都是独立的视频项目的编辑方案
  • 对于24FPS,30FPS和60FPS的项目的不同处理的方案
  • 不需要完全实时渲染的项目
  • 如果整个项目都是静态的,那么可以预先烘培
  • 开放世界的灯光无法提前烘培,所以需要light map并使用动态照明处理
  • 考虑硬件的最低规格
<hr/>
【二: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进行评估计算
  • 可以做特有的材质优化
  • 更多的抗锯齿操作
<hr/>
【三:如何给一套好的照明准备资产】


  • 确保材质是物理正确的



matRef


常见问题有:


  • base color太亮或太暗。


  • 金属度为了确认是不是金属最好保持是1或0。


  • specular保持0到1之间的灰度,而不是颜色。


  • 最黑的常见物是碳(rgb:0.03),最白的是雪(rgb:0.9)。永远不会是纯白或纯黑。


  • vantablack是世界上最黑的黑(rgb:0.0045, roughness:1)




vantablack


  • 打灯前确保移除自动曝光



deactiveAutoExposure


  • 放置chrome sphere和grey sphere



chromeSphere


保证它是纯反射物

  • 设置一个3.14(pi)的 directional light,并且用color picker 查看灰度



50%Grey

<hr/>
【四:烘培灯光 VS 动态灯光】

Baked Lighting:

优势:


  • GI
  • cheap soft shadows,陈本低的阴影
  • Less GPU demanding,较低的GPU需求
劣势:


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

优势:


  • what u see is what u get,所见及所得
  • 非静态的
劣势:


  • No GI
  • GPU demanding,对GPU有要求
<hr/>
【五:常用烘培灯光设置】

基础灯光设置:


  • Direction Light(Stationary)
  • Lightmass Baking(GI)
  • Skydome(static)
什么是light map?


  • light maps以纹理贴图的形式储存了灯光信息
  • 它是HDR tecture并且储存了灯光方向
  • 它的好处是处理起来很快,阴影柔和,但是如果文件太小则会缺少阴影的细节清晰度。



lightasset2



lightasset


  • min lightmap resolution将定义UV islands(padding)之间的空间
  • 更小的padding会减少像素的浪费以及在相同的分辨率下得到更好的阴影效果
<hr/>
Lighting Type:


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

    • Directional light
    • point light
    • spot light



  • emit no photon:

    • sky light


<hr/>
Lightmass Setting:





lightmass


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




lightmass_chart


  • 间接照明质量是最影响时长的
<hr/>

  • volume light sample scale

    • 降低static lighting level scale会增加volume lighting samples的数量



  • lightmass Portal

    • 对门窗类型的照明十分有用



  • lighting Scenarios

    • 只用编辑一个enviroment level
    • 照明方案会以light maps的形式分别储存
    • 一个时间使用一个照明方案(不存在过渡,不能同时拥有两种在一个场景)


<hr/>
【六:常用动态照明设置】

基础灯光设置:


  • Direction Light(movable)
  • SKydome(moveable)
  • Distance Field AO
  • 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

<hr/>
【八:shadow maps,for Dynamic Shadowing】


  • Depth map,判断存在阴影的部分



depthMap


  • 如果shadow map质量太低会有锯齿
  • 如果shadow map bias太高则会有漏光
  • 使用相机视锥来优化场景,近景给予更多的资源



camFrustum

<hr/>
【九:Directional Light Stationary area shadows:】


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



areaShadow

<hr/>
【十:capsule shadows:】





capsuleshadows


  • 使用一个类似资产的外轮廓来创建一个十分柔和的阴影
<hr/>
【十一:Raytraced contact shadows:】


  • 将contact shadow length 设置的很小来获得细节上的阴影
  • 在比例很小的物体上很有用,但是比较耗费资源
<hr/>
【十二:Reflections:】


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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-13 07:42 , Processed in 0.088436 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表