unity放话在2021年以前全面放弃Enlighten。
两个软件各启动5分钟,只要眼睛还在,就能立即分辨出优劣。但需要说明的是虽然虚幻的渲染算法是公认的强,但unity也有主动示弱的嫌疑。在虚幻四中,默认自动开启全局渲染和光照探针,而在unity中需要自己设置这些。虽然同样情况下表现还是虚幻4更好一些,但绝不是那种过分的差距。
由于目前的硬件技术限制,实时全局光照的性能十分有限,仅限于小规模渲染之中,而且噪点抑制效果并不如意。目前绝大部分项目都在使用预计算全局光照。这是一种将直接光线和间接光线保存到光照贴图中,在渲染时与光源光线再计算的一种巧妙方法。
但是这种技术只能应用到静态物体,因为他会提前生成光照贴图,如果移动了物体,物体附近的其他表面会留下光照贴图的光线阴影。
所以这种技术一般应用在静态场景的渲染上。
解决动态物体光照计算的方式是使用光照探针,它可以存储附近物体的反射光,当动态物体经过时,供给动态物体结合光源使用
光追需要硬件提供支持,最低需要gtx2060显卡,2019年下旬处的gtx1850p系列虽然性能不错,但是阉割了光追的支持。
光追的实现方式是将直接或间接光线的路径保存下来,再与场景中的光源合并计算。相比全局光照不需要预计算,也不需要保存光照贴图。在超级显卡的加持下性能与效果表现直线上升。nvdia官网有一段实时渲染的光追视频,几乎算是史诗级的仿真。
如果想使用unity进行光追开发,需要在微软下载光追版本的编辑器,并且保证显卡是gtx2060以上。
光源的Inspector中,Mode的设置决定了该光源的计算状态。
属性 | 说明 | Lighting窗口中的对应设置 |
---|---|---|
Realtime | 运行时计算光源光照,不将该光源引入预计算 | Realtime Light |
Mixed | 部分光源可以预计算 | Mixed Lighting |
Baked | 引擎计算该光源所有的进行bake | Lightmapping settings |
[此处设置图片与详解]
unity 默认的光线是互相不影响的,如果需要启动全局照明,需要在lighting->scene中的Realtime Light 的 Realtime GlobalIllumination 勾选
Environment:环境的参数设置
Skybox Material
:天空盒材质
Sun Source
:设置太阳,可以指定一个平行光作为太阳,然后该平行光的旋转角度会影响其亮度和颜色
Environment Lighting:环境光照的设置
Source
:环境光照来源
Skybox:源于天空盒
Gradient:源于一个从地平线到穹顶的颜色渐变
Color:来源于单色
Intensity Multiplier
:环境光照明强度强化
Ambient Mode
:环境光照明模式
Baked:烘焙在光照贴图中
Realtime:实时
Environment Reflections:环境反射的设置
Source
:环境反射来源
Skybox:来源于天空盒
Custom:来源于一个自定义的Cubemap(方盒贴图)
Resolution
:环境反射贴图分辨率
Compression
:是否压缩环境反射贴图
Intensity Multiplier
:环境反射强度强化
Bounces
:环境反射计算次数
Realtime Lighting:关于实时光照烘焙的设置
Realtime Global Illumination
:是否进行实时光照烘焙
Mixed Lighting:关于混合光照烘焙的设置
Baked Global Illumination
:是否进行混合光照烘焙
Lighting Mode
:光照模式
Baked Indirect
Distance Shadowmask
Shadowmask
Subtractive
Lightmapping Settings:关于光照烘焙的通用设定
Lightmapper
:选择光照烘焙器
Enlighten:这是常用的一种烘焙器,unity声称2021年完全删除该烘焙器
Progressive CPU:这是新版的一种烘焙器,它会先烘焙摄影机可见区域,再烘焙其他区域,所以预览较快
Progressive GPU(Preview):
Indirect Resolution
:间接光照分辨率(每单位长度多少体素(texel)),数值越高,光照细节越高
Lightmap Resolution
:光照贴图分辨率(每单位长度多少体素),通常设置为Indirect Resolution的10倍左右
Lightmap Padding
:修正两个物体的Lightmap之间的距离,以避免颜色渗透
Lightmap Size
:光照贴图大小(最大4096)
Compress Lightmaps
:是否压缩光照贴图
Ambient Occlusion
:是否烘焙环境光遮罩
Final Gather
:是否对最后一次GI光线反射后的光照结果再进行一次FG计算,勾选上会有较好的质量表现,但烘焙时间会增加
Directional Mode
:
Directional:
non-directional:
Indirect Intensity
:间接光照的强度
Albedo Boost
:
Lightmap Parameters
:设置详细的光照贴图参数(可以使用几个默认值,或者创建新设置,应该是给熟手用的吧)
Other Settings:其他设置
Fog
:添加场景雾效
Color:雾效颜色
Mode:雾效衰减模式
Density:雾效密度
Halo Texture
:
Halo Strength
:
Flare FadeSpeed
:
属性 | 说明 | 范围 |
---|---|---|
Point light | 点光源 | 以自身为中心的球体 |
Spot light | 聚光灯 | 自身为顶点的锥形 |
Directonal light | 有向平行光 | 全局 |
Area | 区域光,需要bake | 比如灯箱,属于有型发光体 |
Color
:灯光颜色
Intensity
:灯光强度
Indirect Multiplier
:在计算该灯光所产生的间接光照时的强度倍乘
Shadow Type
: 阴影设置
Soft Shadows 使用带虚化边缘的阴影
Hard Shadows 使用普通阴影
No Shadows 无阴影
Baked Shadow Angle
:烘焙阴影的角度
Realtime Shadows
:实时阴影
Strength:实时阴影强度
Resolution:阴影贴图分辨率
Bias:阴影偏移,当增加这个值来修正一些阴影的artifact
Normal Bias:法线偏移,通常适当减少这个值来修正一些阴影的artifact(不同于Bias的使用场合)
Near Plane:阴影剪切平面,对于与摄影机距离小于这个距离的场景物体不产生阴影
Cookie
:Cookie相当于在灯光上贴黑白图,用来模拟一些阴影效果,比如贴上网格图模拟窗户栅格效果
Cookie Size
:调整Cookie贴图大小
Draw Halo
:灯光是否显示辉光,不显示辉光的灯本身是看不见的
Flare
:Flare可以使用一张黑白贴图来模拟灯光在镜头中的“星状辉光”效果
Render Mode
:渲染模式
Culling Mask
:遮罩,对哪些物体层起作用
关于探针点的放置,这篇文章不错
https://www.jianshu.com/p/39b3fcee1370
这篇是关于探针代理的用法
https://www.jianshu.com/p/2967b5a188c2