发布网友 发布时间:2024-10-24 02:47
共1个回答
热心网友 时间:2024-11-07 17:31
基于物理的灯光单位的好处
使用基于物理的灯光单位,Frosbite开发团队总结出以下几点优势:
1. 便于确定灯光的亮度范围和曝光度范围,从而进行场景的灯光亮度设置。
2. 保证不同类型光源之间的亮度比例关系与实际测量值一致。
3. 基于实际测量值进行场景灯光亮度设置,使用测光工具和肉眼进行参数验证和微调。
需要注意的是,从渲染角度来说,物理灯光测量值的绝对值并不重要,重要的是保证亮度比例关系与实际测量值一致。
UE4引擎的测光方法工具
目前没有直接测量入射光亮度的工具,只有测量出射光的亮度值。以下两个工具可以用来测量出射光亮度值:
1. Pixel Inspector测得的HDR Luminance值,单位为cd/m^2 (Nit),乘以3.14可以粗略转换成Lux。
2. 424版本的HDR(Eye Adapation) Viszualize激活后,会在HUD上显示屏幕像素的亮度值,单位为Nit。
需要注意的是,RGB Color中的蓝色分量对亮度的贡献较小,可能导致某些情况下Pixel Inspector看到的HDR Luminance值与HDR Visualize显示的值差别较大。
操作方法:使用一个特殊材质的panel作为测光板,查看其亮度值。测量之前,记得关闭AO和Bloom。
室外光源参考值
(1)寒霜引擎开发者的测量值:以下测试结果为站在地表上水平放置测光仪器测得的到达采样点的光照度(入射光),对应天气环境为晴朗少云。来源:Moving Frostbite to Physically Based Rendering 3.0
单位:Lux
(2)UE4官方给的参考值:UDN上在讲解SkyAtmosphere时,给出了以下参考值:当太阳在正上方时,方向光应设置为120000 lux;当太阳在正上方竖直朝下照射时,水平白色漫反射表面的亮度值应为150000 Lux,其中天光贡献了其中的20%(对应Sun/Sky比值为4)。
(3)其他参考值:维基百科Daylight
如何将这些数据应用到UE4的场景中?1.Sun:Sun的亮度值可以直接作为Directional light的intensity参考值来使用(单位使用Lux)。2.Sky:Sky的光照度测量值对应UE4里面的SkyLight最终输出到地表物体表面的亮度。SkyLight组件无法直接指定具体的带物理单位的Intensity,只能从渲染结果里查看,然后与表格中的参考数据做对比,看看差异是否太大。如果过大,则需要手动调整大气散射或者SkyLight的强度。
室内光源
室内的人工光源都可以在网上查到参数,包括亮度和色温。例如:bulbs.com/ lighting.philips.com.hk...
室内外的曝光度EV值差别比较大,使用基于物理的参考值去打光时,需要将EV值调对才能得到正确的画面效果。UE4某个讲座里给出的典型的EV值如下:EV变化1个单位,曝光度会翻倍或减半,所以室内和室外的曝光度相差非常大。更详细的EV值可以在这里查询到。
其他
推荐阅读:真实物理属性的灯光环境在UE4中的应用探讨(epic 李文磊)、Lighting Process Presentation