使用shader怎么实现屏幕高斯模糊
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,今天就跟大家聊聊有关使用shader怎么实现屏幕高斯模糊,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.新建一个C#脚本,改脚本必须挂在摄像
千家信息网最后更新 2025年12月03日使用shader怎么实现屏幕高斯模糊
今天就跟大家聊聊有关使用shader怎么实现屏幕高斯模糊,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
1.新建一个C#脚本,改脚本必须挂在摄像机上
using UnityEngine;using System.Collections;////// 高期模糊/// public class GaussianBlur : PostEffectsBase { //调整高斯模糊迭代次数 [Range(0, 4)] public int iterations = 3; //模糊范围 [Range(0.2f, 3.0f)] public float blurSpread = 0.6f; //缩放系数 //downSample越大,需要处理的像素越少,同时也能进一步提高模糊程序, //但过大的downSample可能会使图像像素化。 [Range(1, 8)] public int downSample = 2; public Shader gaussianBlurShader; private Material gaussianBlurMaterial = null; public Material material { get { gaussianBlurMaterial = CheckShaderAndCreateMaterial(gaussianBlurShader, gaussianBlurMaterial); return gaussianBlurMaterial; } } void OnRenderImage(RenderTexture src, RenderTexture dest) { if (material != null) { //利用缩放对图像进行降采样,从而减少需要处理的像素个数,提高性能。 int rtW = src.width / downSample; int rtH = src.height / downSample; //分配一块缓冲区,这是因为,高斯模糊需要调用两个Pass,我们需要使用一块中间缓存来 //存储第一个Pass执行完毕后得到的模糊结果。 RenderTexture buffer0 = RenderTexture.GetTemporary(rtW, rtH, 0); //将该临时渲染纹理的滤波模式设置为双线性。这样,在调用第一个Pass时,我们需要处理的 //像素个数就是原来的几分之一。对图像进行降采样不仅可以减少需要处理的像素个数,提高性能, //而且适当的降采往往还可以得到更好的模糊效果。 buffer0.filterMode = FilterMode.Bilinear; Graphics.Blit(src, buffer0); //高斯模糊迭代次数 for(int i=0; i2.新建一个顶点着色器的shader,实现高斯模糊的shader代码如下:
using UnityEngine;using System.Collections;////// 高期模糊/// public class GaussianBlur : PostEffectsBase { //调整高斯模糊迭代次数 [Range(0, 4)] public int iterations = 3; //模糊范围 [Range(0.2f, 3.0f)] public float blurSpread = 0.6f; //缩放系数 //downSample越大,需要处理的像素越少,同时也能进一步提高模糊程序, //但过大的downSample可能会使图像像素化。 [Range(1, 8)] public int downSample = 2; public Shader gaussianBlurShader; private Material gaussianBlurMaterial = null; public Material material { get { gaussianBlurMaterial = CheckShaderAndCreateMaterial(gaussianBlurShader, gaussianBlurMaterial); return gaussianBlurMaterial; } } void OnRenderImage(RenderTexture src, RenderTexture dest) { if (material != null) { //利用缩放对图像进行降采样,从而减少需要处理的像素个数,提高性能。 int rtW = src.width / downSample; int rtH = src.height / downSample; //分配一块缓冲区,这是因为,高斯模糊需要调用两个Pass,我们需要使用一块中间缓存来 //存储第一个Pass执行完毕后得到的模糊结果。 RenderTexture buffer0 = RenderTexture.GetTemporary(rtW, rtH, 0); //将该临时渲染纹理的滤波模式设置为双线性。这样,在调用第一个Pass时,我们需要处理的 //像素个数就是原来的几分之一。对图像进行降采样不仅可以减少需要处理的像素个数,提高性能, //而且适当的降采往往还可以得到更好的模糊效果。 buffer0.filterMode = FilterMode.Bilinear; Graphics.Blit(src, buffer0); //高斯模糊迭代次数 for(int i=0; i看完上述内容,你们对使用shader怎么实现屏幕高斯模糊有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
像素
高斯
处理
个数
图像
性能
次数
缓存
迭代
内容
屏幕
适当
两个
同时
就是
效果
模式
程序
系数
纹理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
学习软件开发模型的体会
为什么服务器玩英雄联盟会卡
漳州财务软件开发排行榜
焦作公安局网络安全
单线程更新数据库
河北软件开发者网站
网络安全的课题反思
掌上信息历史数据库
服务器安装部署知识
昆仑显示屏实时数据库
腾讯科技文章 互联网寒潮
国家网络安全无人驾驶公交
自动化和网络安全
活动目录数据库管理
升腾服务器怎么选择
网络技术咨询服务 税率
苹果电脑 软件开发
当前最好的网络安全技术
数据库与信息系统的安全
win10 服务器登陆失败
河北七棵树网络技术服务
深圳市瑞美网络技术有限公司
计算机网络技术要买笔记本吗
hp服务器如何重启底层管理
铁路网络安全红线问题包括哪些
东营轻工业软件开发公司
国家网络安全总部
衡阳长沙会员管理软件开发
dell服务器750w495w
《网络安全法》的意义包括_