Light_a_Project_in_UE
🍊这篇是UE的灯光与烘培的学习笔记,不大全面,有问题请随时指正🍊
🍊这里是b站链接🍊
Unreal 灯光照明与烘培
🚩【主要涵盖的话题】
- 技术和艺术的讨论
- 资产和场景的准备
- 灯光烘培设置
- 动态照明设置
- 图像基础的灯光设置
- 阴影
- 反射
🚩【一:目标媒介】
- 考虑项目是否会定义到移动设备,或者是在一些需要高保真的媒体设备使用
- 每个镜头都是独立的视频项目的编辑方案
- 对于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进行评估计算
- 可以做特有的材质优化
- 更多的抗锯齿操作
🚩【三:如何给一套好的照明准备资产】
- 确保材质是物理正确的
常见问题有:- base color太亮或太暗。
- 金属度为了确认是不是金属最好保持是1或0。
- specular保持0到1之间的灰度,而不是颜色。
- 最黑的常见物是碳(rgb:0.03),最白的是雪(rgb:0.9)。永远不会是纯白或纯黑。
- vantablack是世界上最黑的黑(rgb:0.0045, roughness:1)
- 打灯前确保移除自动曝光
- 放置chrome sphere和grey sphere
保证它是纯反射物 - 设置一个3.14(pi)的 directional light,并且用color picker 查看灰度
🚩【四:烘培灯光 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有要求
🚩【五:常用烘培灯光设置】
基础灯光设置:
- Direction Light(Stationary)
- Lightmass Baking(GI)
- Skydome(static)
什么是light map?
- light maps以纹理贴图的形式储存了灯光信息
- 它是HDR tecture并且储存了灯光方向
- 它的好处是处理起来很快,阴影柔和,但是如果文件太小则会缺少阴影的细节清晰度。
- 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:
- static Lighting Level Scale * Indirect Lighting Quality = 1.0;
- 间接照明质量是最影响时长的
- volume light sample scale
- 降低static lighting level scale会增加volume lighting samples的数量
- lightmass Portal
- 对门窗类型的照明十分有用
- lighting Scenarios
- 只用编辑一个enviroment level
- 照明方案会以light maps的形式分别储存
- 一个时间使用一个照明方案(不存在过渡,不能同时拥有两种在一个场景)
🚩【六:常用动态照明设置】
基础灯光设置:
- Direction Light(movable)
- SKydome(moveable)
- Distance Field AO
- Screen Space AO
什么是Distance Field:
- Distance Field 储存了每个点到最近表面的距离
- 需要避免过多的缩放
- 很大的物体对于distance field 的支持不理想,需要拆分成较小的部分
🚩【七:图像基础的照明 IBL】
基础灯光设置:
- 设置场景,确保有一个平面可以投射并接受阴影
- 有一个back plate(需要制作跟踪)(可以理解为UE里做nuke的事情)
- Directional light(moveable)
- Skylight with HDRI(moveable)
- fake steps shadow
- 当人走向光照位置则激活阴影
🚩【八:shadow maps,for Dynamic Shadowing】
- Depth map,判断存在阴影的部分
- 如果shadow map质量太低会有锯齿
- 如果shadow map bias太高则会有漏光
- 使用相机视锥来优化场景,近景给予更多的资源
🚩【九:Directional Light Stationary area shadows:】
- 激活Lightmass下的:use Area Shadows for Stationary Light
🚩【十:capsule shadows:】
- 使用一个类似资产的外轮廓来创建一个十分柔和的阴影
🚩【十一:Raytraced contact shadows:】
- 将contact shadow length 设置的很小来获得细节上的阴影
- 在比例很小的物体上很有用,但是比较耗费资源
🚩【十二:Reflections:】
- 反射较为资源
- 使用planer reflection来得到平面的反射(本质是在镜像它),平面的物体适用,但此不适用于有机形状。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ZeTiiCannotStop!
评论