Unity-URP学习笔记(八)使用RendererFeature制作屏幕后期-高斯模糊

Unity-URP学习笔记(八)使用RendererFeature制作屏幕后期-高斯模糊

URP使用RendererFeature制作高斯模糊

结果展示

在这里插入图片描述

Shader展示

Shader "Custom/GaussianBlur"
{
   
	Properties 
	{
   
		_MainTex ("ScreenTexture", 2D) = "" {
   }
	}
	HLSLINCLUDE
	#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
	struct a2v 
	{
   
		float4 vertex:POSITION;
		float2 texcoord:TEXCOORD0;
	};
	struct v2f 
	{
   
		float4 pos : POSITION;
		float2 uv : TEXCOORD0;
		float4 uv01 : TEXCOORD1;
		float4 uv23 : TEXCOORD2;
		float4 uv45 : TEXCOORD3;
	};

	float2 _offset;
	sampler2D _MainTex;
	//顶点着色器
	//传入的offset的值为(intensity,0,)和(0,intensity)。
	//(intensity,0,)和(0,intensity)分别为横向和纵向。
	v2f vert (a2v v) {
   
		v2f o;
		o.pos = TransformObjectToHClip(v.vertex);
		o.uv.xy = v.texcoord.xy;
		//存6个向外扩散的坐标
		o.uv01 =  v.texcoord.xyxy + _offset.xyxy * float4(1,1, -1,-1);
		o.uv23 =  v.texcoord.xyxy + _offset.xyxy * float4(1,1, -1,-1) * 2.0;
		o.uv45 =  v.texcoord.xyxy + _offset.xyxy * float4(1,1, -1,-1) * 3.0;
		return o;
	}
	//片元着色器
	half4 frag (v2f i) : COLOR {
   
		//高斯模糊,也叫正态分布。重点就是权重分配,越靠近像素中心,权重越高。这里的权重,写的大概值。
		half4 color = float4 (0,0,0
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值