
抓手
本文详说如何在URP管线下做毛玻璃效果。
有两种方法,方法一是用URP自带的OpaqueTexture,但是Opaque是不透明的意思,
所以它的缺陷是半透明的物体它是不会渲染到OpaqueTexture里去的。
方法二是用RendererFeature,本文主要讲第二种方法。
底部附有工程下载。
实现原理
先在一帧里用RendererFeature用某个camera截一帧的图。
然后用CommandBuffer做多次高斯模糊,达到这种毛玻璃效果。
最后渲染到一个RenderTexture上。
具体实现
先写一个ScriptableRendererFeature和ScriptableRenderPass。
RendererFeature的具体理论可以看我之前的文章:《Unity的URP的自定义后处理效果》https://blog.csdn.net/zakerhero/article/details/106793571
先实现ScriptableRendererFeature,名为GlassBlurRenderPassFeature:
using UnityEngine;
using UnityEngine.Rendering.Universal;
public class GlassBlurRenderPassFeature : ScriptableRendererFeature
{
//设置一个RendererFeature的配置
[System.Serializable]
public class Settings
{
public RenderPassEvent renderEvent = RenderPassEvent.BeforeRenderingPostProcessing;
public LayerMask layerMask = -1;
public Material blurMat;
public string textureName = "";
public string cmdName = "";
public string passName = "";
//目标RenderTexture
public
6519


 之 毛玻璃效果&spm=1001.2101.3001.11974&articleId=108630810&d=1&t=3&u=901bbba5a2084b2588387e395c0f962f)

被折叠的 条评论
为什么被折叠?



