曹县住房和城乡建设局网站,广告设计专业哪个大学最好,注册网站要多少钱,网络营销软文范文在渲染管线中#xff0c;后处理通常位于渲染过程的末尾#xff0c;即在所有的渲染通道#xff08;例如顶点着色器、片段着色器等#xff09;完成之后执行后处理操作。后处理操作是在已经渲染的图像上进行的#xff0c;它不会影响到场景的几何形状或光照等因素。一般来说后处理通常位于渲染过程的末尾即在所有的渲染通道例如顶点着色器、片段着色器等完成之后执行后处理操作。后处理操作是在已经渲染的图像上进行的它不会影响到场景的几何形状或光照等因素。一般来说后处理操作会在渲染目标纹理例如帧缓存或渲染纹理上进行。在每一帧的渲染完成后后处理操作会将渲染目标纹理作为输入并应用各种效果和滤镜来修改图像的外观。包括亮度处理、色相调整、饱和度与对比度调整和晕影效果的实现。由着色器控制像素颜色并使用脚本控制着色器。
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 OnRenderImage() 是Unity 中用于在渲染每一帧图像之前或之后执行自定义后处理操作的函数只能搭载在Main Camera上才能正确执行。通过OnRenderImage()控制每一帧渲染图像之后需要执行的执行自定义的后处理效果。创建C#脚本ImageEffect.cs传入对应的Material材质用于控制各种后处理的效果。编写OnRenderImage()函数。
public class ImageEffect : MonoBehaviour{public Material material;public float Brightness 1;private void OnRenderImage(RenderTexture source, RenderTexture destination){material.SetFloat(_Brightness, Brightness);Graphics.Blit(source, destination, material);}
} 变量 material用于指定要应用效果的材质。变量 Brightness用于控制图像的亮度。 在OnRenderImage()中设置材质的 _Brightness 属性,然后使用 Graphics.Blit 函数将源纹理 source 绘制到目标纹理 destination 上并应用材质。