Bloom的实现原理,
1:首先根据一个阈值提取出图像中较亮的区域,
2:再利用高斯模糊对这张亮度数值进行模糊处理,
3:模拟光线扩散的效果,最后再将其和原图像进行混合,得到最终的效果。
代码如下:
Shader "Unlit/TestBloom"
{
Properties
{
_MainTex("Main Texture", 2D) = "white" {}
_LightValue("LightValue", Range(0,1)) = 0
}
SubShader
{
CGINCLUDE
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
sampler2D _MainTex;
float4 _MainTex_ST;
float _LightValue;
struct appdata
{
float4 vertex : POSITION;
f