Unity自定义SRP(十四):抗锯齿和缩放渲染

Unity自定义SRP(十四):抗锯齿和缩放渲染,第1张

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:

我也被这个问题困扰着,最近终于解决了,原因在于reflection probe贴图没有在运行状态下及时生成 ,首先将场景的物体选择reflection probe static,在lighting选项里的最下面build按钮前的对号不要钩,就是说不要选择auto(5.1以上)或者continuosbaking(5.0),点击build预先手动bake一下就好了这个问题坑死我了5.0以前版本没有遇到过


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

原文地址: http://outofmemory.cn/bake/11709490.html

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

发表评论

登录后才能评论

评论列表(0条)

保存