这里需要使用 Unity 的 OnRenderImage 函数对渲染后的画面进行处理
其中还需要使用 Graphics.Blit(src, dest) 函数来对渲染纹理进行对应的shader处理

  • 脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;[ExecuteAlways]
[RequireComponent(typeof(Camera))]
public class PostEffectBase : MonoBehaviour
{protected Material CheckShaderAndCreateMaterial(Shader shader, Material material){if (shader == null) return null;if (shader.isSupported && material != null && material.shader == shader)return material;if (!shader.isSupported) return null;material = new Material(shader) { hideFlags = HideFlags.DontSave };return material;}
}
using System;
using UnityEngine;public class BrightnessSaturationAndContrast : PostEffectBase
{public Shader briSatConShader;private Material briSatConMaterial;public Material material{get{briSatConMaterial = CheckShaderAndCreateMaterial(briSatConShader, briSatConMaterial);return briSatConMaterial;}}[Range(0f, 3f)]public float brightness = 1.0f;[Range(0f, 3f)]public float saturation = 1.0f;[Range(0f, 3f)]public float contrast = 1.0f;private void OnRenderImage(RenderTexture src, RenderTexture dest){if (material != null){material.SetFloat("_Brightness", brightness);material.SetFloat("_Saturation", saturation);material.SetFloat("_Contrast", contrast);Graphics.Blit(src, dest, material);}else Graphics.Blit(src, dest);}
}
  • shader
Shader "Hidden/Brightness_Saturation_And_Contrast"
{Properties{_MainTex ("Texture", 2D) = "white" {}_Brightness ("Brightess", Float) = 1.0_Saturation ("Saturation", Float) = 1.0_Contrast ("Contrast", Float) = 1.0}SubShader{Cull Off ZWrite Off ZTest AlwaysPass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct a2f{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;};sampler2D _MainTex;half _Brightness;half _Saturation;half _Contrast;v2f vert (a2f v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = v.uv;return o;}fixed4 frag (v2f i) : SV_Target{fixed4 renderTex = tex2D(_MainTex, i.uv);fixed3 finalColor = renderTex.rgb * _Brightness;fixed luminance = dot(unity_ColorSpaceLuminance, renderTex);fixed3 luminanceColor = fixed3(luminance, luminance, luminance);finalColor = lerp(luminance, finalColor, _Saturation);finalColor = lerp(unity_ColorSpaceGrey.xyz, finalColor, _Contrast);return fixed4(finalColor, renderTex.a);}ENDCG}}
}

参考 Unity Shader 入门精要这本书

亮度,饱和度,对比度后处理效果相关推荐

  1. UnityShader入门精要-屏幕后处理效果 亮度饱和度对比度、边缘检测、高斯模糊、bloom效果、运动模糊

    (从这里开始可能会记录的更简略一些,时间紧张想迅速读完这本书的主要内容,可能有的部分不会自己上手做) 屏幕后处理通常指渲染完整个场景得到屏幕图像后,再对图像进行操作,抓取屏幕可以使用OnRenderI ...

  2. 无人机图像处理工具-亮度、对比度、饱和度调整/匀光匀色/图像去雾

    无人机图像处理工具,java写的,已打包为64位可执行文件exe,并且绑定lib文件(jre),无需在电脑上单独安装java运行环境.支持亮度.对比度.饱和度调整,匀光匀色(自动色阶.自动对比度),图 ...

  3. 计算机视觉之图像增广(翻转、随机裁剪、颜色变化[亮度、对比度、饱和度、色调])

    随着深度学习的进步和硬件的更新迭代,计算机视觉技术也得到了更大的提升,在计算机视觉领域,经常要训练深度学习的模型,而训练模型的最终目的是为了更好的应用到实际当中去,那就要解决一个精度问题和泛化能力,对 ...

  4. 灰度、亮度、对比度、饱和度

    彩色图像有R.G.B三种颜色叠加,灰度图像只有灰色,灰色是分等级的,不同的等级代表颜色的轻重.举个例子,彩色电视机的图像就是彩色图像,而黑白电视机的图像就是灰色图像,它的图像并不是我们理解的只是黑白两 ...

  5. 修改亮度、对比度、色调、饱和度,达到预期效果

    用户态可以通过v4l2自带工具进行一些UVC相机参数的设定,包括采集卡驱动之类,也可以通过v4l2自带工具进行参数设定. 通过修改这些参数的值,可以弥补相机本身彩色部分自带不足. 总的来说就这么几种命 ...

  6. iOS 修改图片的亮度、对比度、饱和度

    iOS 修改图片的亮度.对比度.饱和度 在iOS开发过程中,需要对图片的亮度.对比度.饱和度进行修改时,可以使用图像处理框架CoreImage. 注:使用CoreImage框架首先要在工程中添加&qu ...

  7. python opencv调节图片亮度与对比度

    python opencv调节图片亮度与对比度 亮度调整是将图像像素的强度整体变大/变小,对比度调整指的是图像暗处变得更暗,亮出变得更亮,从而拓宽某个区域内的显示精度. 创建两个滑动条分别调整对比度和 ...

  8. 2021-01-07 python opencv调节图片亮度与对比度

    python opencv调节图片亮度与对比度 度调整是将图像像素的强度整体变大/变小,对比度调整指的是图像暗处变得更暗,亮出变得更亮,从而拓宽某个区域内的显示精度. 创建两个滑动条分别调整对比度和亮 ...

  9. 计算机屏幕亮度调到多少合适,电脑屏幕的亮度和对比度调到多少比较合适,对眼睛伤害最小?有哪位高手了解?...

    选购液晶电视的八大关注事项: 1.留意显示尺寸是否齐全:现在液晶电视的主流尺寸基本上都是27英寸.32英寸和37英寸,这些已经能够满足客厅以及卧室的观看需求,但这里要提醒一下,最好是购买产品线比较丰富 ...

最新文章

  1. nginx+tomcat动静分离结构
  2. 深度学习核心技术精讲100篇(二)-图网络中的社群及社群发现算法
  3. Visual Studio 2008中常用快捷键
  4. emacs python ide_Emacs Python IDE win7 x64
  5. Storage 使用
  6. 轻量在线人工客服系统 支持多商家+自动适配移动端
  7. tomcat安装成功页面翻译
  8. 自托管websocket和webapi部署云服务器域名及远程访问
  9. java基础 内部类详解
  10. 安装matlab7.0步骤,Matlab 7.0 安装指导
  11. thinkphp6–cms多微信管理系统源码
  12. 电脑桌面计算机英语,IT计算机英语词汇
  13. Flash 用FLASH遮罩效果做图片切换效果
  14. 河南省第二类医疗器械首次注册
  15. 微信小程序登录-PHP后端
  16. C语言程序设计第五版谭浩强课后答案 第九章习题答案
  17. 记一次聚拢Android线程实操
  18. [Python]_[初级]_[多线程下载单个文件]
  19. 软考中级系统集成项目管理工程师自学好不好过?
  20. EMC设计攻略—各种接口电路的设计!RS485,RS232,以太网等等

热门文章

  1. comsol-圆环勾选内部面
  2. 《财富自由之路》-李笑来归纳摘要总结
  3. 独立键盘控制风火轮c语言,单片机项目教程--C语言版(十二五)(高职高专)...
  4. LabVIEW控制Arduino实现超声波测距(进阶篇—5)
  5. 说一下对cookie和Storage(localStorage和sessionStorage) 的认识和区别?
  6. 对“用FSMC驱动TFT-LCD”的烂笔头
  7. 【英语】学习记录——6/3
  8. 标准DH模型正运动学求解程序编写
  9. 自制linux开发板安装系统,6410开发板linux系统安装流程
  10. 抖音网页应用获取如下数据?有没有相同开发的网页应用?用uniapp进行开发