unity灯光渲染参数

unity灯光渲染参数,第1张

LightMapping Settings

Lightmapper:烘光的解决方案,Enlighten:使用的CPU烘培,烘培更慢,Progressive CPU:也是使用CPU烘培,烘培更强大,官方推荐使用该模式,渲染效果更好。Progressive GPU:烘培更快使用GPU烘培

PrioritizeView:启用此选项可使渐进式光照贴图器将更改应用到当前在“ 场景视图"可见的纹理像素,然后将更改应用于视口外的纹素。

Direct Samples:直接照明计算的样本数量,较高的采样值可以减少噪点并可以改善光照贴图的质量,但是它们也会增加烘焙时间

Indirect Samples:间接照明计算的样本数量,较高的采样值可以减少噪点并可以改善光照贴图的质量,但是它们也会增加烘焙时间

下图是Direct Samples与Indirect Samples数值大小的对比

IndirectResolution:间接光的光照精度。数值越大间接光越细腻,

LightmapResolution:烘培的精度,控制光照贴图的分辨率,默认烘培40个像素点。这个值越大烘培精度越高烘培越慢。

LightmaoSize:UV信息的间距,光照信息不正确的时候可以调整此参数,一般参数为2是合理的

LightmapSize:光照贴图的大小。一般1024是合理的

CompressLightmaps:是否压缩光照贴图

FinalGather:最终的聚集,

DirectionalMode:勾选后会烘培灯光方向贴图,贴图效果会更好。凹凸感更强。

fog:是否开启雾化效果

Color:雾化颜色

Model:雾化模式:

2.Exponential:雾密度随距离呈指数增长。

Density:使用此控制雾的密度。随着密度的增加,雾显得更浓。

3:ExponentialSquared:雾的密度随着距离的增加而增加(呈指数和平方)。

Density:使用此控制雾的密度。随着密度的增加,雾显得更浓。

HaloTexture:设置要用于在灯光周围绘制 光晕 的纹理。

HaloStrength:光晕强度,从0到1之间的值定义光晕周围Halos的可见性

Flare Fade Speed; 定义 镜头眩光

的时间(以秒为单位)。该。默认情况下设置为3。

FlareStrength:耀斑强度,从0到1之间的值定义灯光的镜头光斑的可见性。

SpotCoolie:设置要用于 聚光灯 的 Cookie 纹理。

本文总结 Unity 中物体的渲染顺序逻辑。

Unity 中的渲染顺序,第一维度是由摄像机确定的,换句话说 Unity 是以摄像机为单元进行渲染,最后再根据设置的规则将多个摄像机渲染的画面合起来。

在同一个摄像机下,Unity 以物体材质上的 RenderQueue 数值进行了划分,将所有物体分为两个队列

在 Opaque 队列中的物体,根据包围盒中心距离摄像机的距离,由近到远排序,进行渲染,Opaque 队列中物体都是不透明物体,通常开启了 ZWrite,由近到远渲染可以做遮挡剔除,减少 OverDraw,Opaque 队列中的物体,可以设置 SortingLayer, SortingOrder, Shader 的 RenderQueue 等值,但不会起作用

透明物体的 Shader 通常关闭了 ZWrite,SortingLayer, SortingOrder, RenderQueue 这些值的设置会影响显示的顺序,所以透明物体的渲染顺序遵循的规则是

UGUI 元素使用的 UI Default 材质通常 RenderQueue 为 3000,走的是透明物体的渲染,所以根据 SortingLayer ->SortingOrder ->RenderQueue 的顺序进行排序,当以上值都相同时,根据元素在 Hierarchy 视图中的顺序进行

SRP中实现MSAA很简单。我们先在 CustomRenderPipelienAsset 中添加对应的枚举,MSAA默认关闭:

在 CameraRenderer 中,我们和后处理效果一块使用即可。在 Setup 中,如果开启后处理模块,我们设置MSAA采样数,并将其应用到我们的渲染目标的声明,位于最后一个参数中:

默认采样数为1,如果设置了MSAA,那么使用对应的采样数。

关闭MSAA和4xMSAA:

目前的MSAA只处理了颜色缓冲,如果想应用于深度我们需要分开设置。

注意MSAA想得到较好的效果是比较耗能的,之后会尝试增加TAA之类的抗锯齿方法。

缩放渲染可用于调整渲染的分辨率。在 CustomRenderPipelienAsset 中添加相应的浮点变量:

在 CameraRenderer 中,我们添加一个布尔变量来确定是否使用缩放渲染:

Render 中确定是否使用缩放:

注意在编辑器窗口中我们就不使用缩放了,以免耗能,在 PrepareForSceneWindow 中将布尔值设为false:

如果设置缩放渲染的话,就使用缩放数值调整缓冲大小,否则使用原摄像机的视口大小即可:

在 Setup 中应用,调整渲染目标的缓冲大小:

在 Render 中,我们也将缓冲大小传入 postFXStack.Setup 中。对于发光效果,我们可以设置一个布尔值来控制是否引用缩放,在 PostFXSettings 中设置 BloomSettings 结构体:

DoBloom 中,根据是否忽略缩放来调整缓冲大小:

对应的地方应用即可。

对于后处理,我们额外添加一个缩放pass来进行渲染缩放:

一个很简单的复制pass。

在 DoColorGradingAndToneMapping 的最后,根据缓冲大小的设置决定使用不同的pass:

0.5和2:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7794756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存