找回密码
 立即注册
查看: 450|回复: 2

Unreal Develop (二) 光与色的标准

[复制链接]
发表于 2021-2-19 09:05 | 显示全部楼层 |阅读模式
什么样的光和色能还原真实世界?尝试梳理一些已知的标准。
首先是结论:Unreal中标准阳光与相机的设置
Physical Correct:
    Postprocess:Metering Mode ManualCamera:Shutter Speed 1/125 ISO 100 Fstop 16Light:55° 120000+ lux 6500-K
Math Equivalent (EV100):
    Postprocess:Metering Mode ManualCamera:Shutter Speed 1/1 ISO 100 Fstop 1Light:55° 3.75+ lux 6500-K
sRGB

摄影的结果以sRGB显示在屏幕上: https://en.wikipedia.org/wiki/SRGB
真实的可见光范围如图是一半椭圆形,ProPhoto RGB格式包含最大的色域范围多用于working space。sRGB是较小的三角形,常用于output space,在屏幕上显示。
维基百科
无论什么色彩空间,都包含基准点D65 white point也就是标准的白色。
White Point

以切光和颜色都是大脑的幻觉,正常视角平均经验光的混合,我们认为是白光。国际制定标准,北欧晴朗中午的平均亮度就是白光 https://en.wikipedia.org/wiki/Illuminant_D65
自然界中,反射全可见光谱的最亮的物体,我们认为固有色为白色。比如石膏,可以反射全可见光谱超过90%光,们认为它是纯洁无暇的白色
石膏在阴影中是看起来是暗蓝的,在阳光下是亮黄的,在白光下,才是真正的白。所以我们眼睛要看到的,渲染后屏幕上要显示的,是白: 白=白色 * 白光 (texture * light)
White Color & Mid Grey

游戏中固有色白,是albedo为 sRGB 1.0 1.0 1.0的贴图。还有另一种固有色很常用,那就是中灰。中灰是视觉上颜色亮度为白色一半的颜色,物理上反光度大约20%的颜色。在游戏的颜色矫正中,由于tonemapping对中间亮度的线性表现较好,所以使用中灰好于白色。sRGB的中灰: rgb(124,124,124), gamma 2.2, brightness 50%, CIEXYZ 20%.
摄影电脑等不同中灰的标准 https://en.wikipedia.org/wiki/Middle_gray
White Light & Color Temperature

太阳是红色的,天空是蓝色的。当天空布满了云彩,混合了太阳和天空的光。这时云彩是白的,光也是白光。柔和的漫天云彩的白光下,物体的颜色就是固有色albedo。
对于漫天乌云的场景我们几乎只需要一个白的ambient light。但是对于其它的天气,我们需要知道太阳和天空光的色温。https://en.wikipedia.org/wiki/Color_temperature
关于色温:日光是 6000k-6500k 白色是6500k 天空是 10000+k。知道色温,还需要强度。
Light Luminous

光的度量单位lumen,代表物体单位时间发射光的能量总和。lux = lumen/㎡
不同时段太阳的强度:https://en.wikipedia.org/wiki/Daylight
世界标准太阳强度109,870lux
Camera Settings

有标准国际光照,也有标准相机设置:https://en.wikipedia.org/wiki/Sunny_16_rule
在标准天空下,表现光照信息的相机标准设置为 Shutter Speed 1/125 ISO 100 Fstop 16
EV100

由于阳光亮度的lux数值非常大,如果计算精度有限会造成细节的丢失,所以Unreal提供了EV100的Exposure度量计算方案,EV100 = log2(Aperture/(Shutter Speed) * 100 /ISO)而真实计算的时候还有乘以lux,所以:
对于物理真实的阳光以及相机参数:
(1/16) * 1/125 * 100 * 120000 待确认是否直接乘以lux
约等于 (1/1) * 1/1 * 100 * 3.75
所以等价于真实物理标准的光照设置为:主光3.75lux shutter speed 1 fstop 1 ISO 100
对结果进行验证反推

1.Unreal中的标准白光
标准白光就是还原固有色的光。用一束光直射中灰固有色的面片,发现3.14lux还原了中灰。在真实的情况欧洲太阳在正午的入射角是55度,所以标准光的强度应该是 X * sin55 = 3.14。得出x = 3.82lux。然而标准光中有一部分是天光,所以阳光强度小于3.82lux,我们可以认为这个结果接近3.75lux。
不同状况的环境采集与光照设定                     

真实世界的光照,白天可以达到上万lux,晚上可能只有几十lux,用真实的物理参数对精度的要求很高。所以最好的情况是采集天空球的时候就设置好相机参数表现目标效果,记录好参数,并且测量太阳月亮的lux然后通过参数算出照在感光器上的强度输入游戏。

本帖子中包含更多资源

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

×
发表于 2021-2-19 09:14 | 显示全部楼层
厉害[赞][赞]
发表于 2021-2-19 09:22 | 显示全部楼层
超棒!
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-15 17:54 , Processed in 0.176531 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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