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:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)