在渲染管线中,后处理通常位于渲染过程的末尾,即在所有的渲染通道(例如顶点着色器、片段着色器等)完成之后执行后处理操作。后处理操作是在已经渲染的图像上进行的,它不会影响到场景的几何形状或光照等因素。一般来说,后处理操作会在渲染目标纹理(例如帧缓存或渲染纹理)上进行。在每一帧的渲染完成后,后处理操作会将渲染目标纹理作为输入,并应用各种效果和滤镜来修改图像的外观。包括亮度处理、色相调整、饱和度与对比度调整和晕影效果的实现。由着色器控制像素颜色,并使用脚本控制着色器。
shader着色器
以控制亮度来举例:
首先定义_Brightness变量控制亮度数值,在fragment shader中进行计算:
//获取图像颜色值
//half4 col = tex2D(_MainTex, i.uv);//CG方法
half4 col = SAMPLE_TEXTURE2D(_MainTex,sampler_MainTex, i.uv);//HLSL方法
//亮度处理
half3 final_color = col.rgb * _Brightness;
C#脚本控制Shader