Unity Shader学习笔记(19)屏幕后处理效果、调整亮度、饱和度、对比度 |
您所在的位置:网站首页 › unity调整场景的亮度 › Unity Shader学习笔记(19)屏幕后处理效果、调整亮度、饱和度、对比度 |
纹理动画部分介绍完了,下面要介绍的是Unity的屏幕后期处理效果,使用MonoBehaviour.OnRenderImage来实现,以及调整屏幕的亮度、饱和度、对比度的方法,想知道的可以看看,会对大家学习屏幕后处理有很大的帮助。屏幕后处理效果(screen post-processing effects) 即在渲染完场景得到屏幕图像后在进行处理的效果,如景深、运动模糊等。 Unity提供接口方便处理渲染后的图像:OnRenderImage。第一个参数渲染得到纹理,第二个参数是输出到屏幕的纹理。 MonoBehaviour.OnRenderImage (RenderTexture src, RenderTexture dest) 在上面函数内,通常使用Graphics.Blit函数处理渲染纹理。 调整后图像与原图对比: 通过mono脚本处理屏幕后效果: public class BrightnessSaturationAndContrast : PostEffectsBase { [Range(0.0f, 3.0f)] public float brightness = 1.0f; [Range(0.0f, 3.0f)] public float saturation = 1.0f; [Range(0.0f, 3.0f)] public float contrast = 1.0f; void OnRenderImage(RenderTexture src, RenderTexture dest) { if (TargetMaterial != null) { TargetMaterial.SetFloat("_Brightness", brightness); TargetMaterial.SetFloat("_Saturation", saturation); TargetMaterial.SetFloat("_Contrast", contrast); } Graphics.Blit(src, dest, TargetMaterial); } }材质的shader: Pass { // 关掉深度写入,避免挡住后面物体渲染,(如果OnRenderImage在所有不透明Pass后直接执行(而非所有都渲染完)) ZTest Always Cull Off ZWrite Off ... fixed4 frag(v2f i) : SV_Target { fixed4 renderTex = tex2D(_MainTex, i.uv); // 亮度 fixed3 finalColor = renderTex.rgb * _Brightness; // 饱和度 fixed luminance = 0.2125 * renderTex.r + 0.7154 * renderTex.g + 0.0721 * renderTex.b; fixed3 luminanceColor = fixed3(luminance, luminance, luminance); // 饱和度为0的颜色值 finalColor = lerp(luminanceColor, finalColor, _Saturation); // 对比度 fixed3 avgColor = fixed3(0.5, 0.5, 0.5); // 对比度为0的颜色值 finalColor = lerp(avgColor, finalColor, _Contrast); return fixed4(finalColor, renderTex.a); } } Unity Shader学习笔记系列教程:Unity Shader学习笔记(一)DrawCallUnity Shader学习笔记(2)Shader、ShaderLab、Cg/HLSL/GLSLUnity Shader学习笔记(3)Unity Shader模板、结构、形式Unity Shader学习笔记(4)Unity Shader内置变量、函数、ShaderModelUnity Shader学习笔记(5)第一个简单ShaderUnity Shader学习笔记(6) 漫反射Unity Shader学习笔记(7)高光反射Unity Shader学习笔记(8)纹理映射、凹凸映射Unity Shader学习笔记(9)渐变纹理、遮罩纹理Unity Shader学习笔记(10)纹理(Texture)的属性Unity Shader学习笔记(11)渲染队列、透明效果Unity Shader学习笔记(12)渲染路径(Rendering Path)Unity Shader学习笔记(13)混合光源、光的衰减Unity Shader学习笔记(14)阴影Unity Shader学习笔记(15)立方体纹理、反射、折射、菲涅尔反射Unity Shader学习笔记(16)渲染纹理(Render Texture)Unity Shader学习笔记(17)程序纹理(Procedural Texture)、程序材质Unity Shader学习笔记(18)纹理动画、顶点动画、广告牌技术Unity Shader学习笔记(20)卷积、卷积核、边缘检测算子、边缘检测Unity Shader学习笔记(21)模糊、高斯模糊Unity Shader学习笔记(22)Bloom效果Unity Shader学习笔记(23)运动模糊Unity Shader学习笔记(24)深度纹理、法线纹理Unity Shader学习笔记(25)全局雾效Unity Shader学习笔记(26)边缘检测(深度和法线纹理)Unity Shader学习笔记(27)渲染轮廓线(描边)方法、卡通风格渲染、素描风格渲染Unity Shader学习笔记(28)噪声纹理、消融效果、水波效果、噪声雾效Unity Shader学习笔记(29)表面着色器(Surface Shader)Unity Shader学习笔记(30)Unity中渲染优化技术Unity Shader学习笔记(31)基于物理的渲染技术(PBS)、BRDFUnity Shader学习笔记(32)Unity中的Standard ShaderUnity Shader学习笔记(33)全局光照(GI)、反射探针、线性空间和伽马空间、HDR |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |