1、降取樣
將原始貼圖(source image)的長寬逐步縮減為原來的1/4尺寸(quarter source image),如下圖所示。
2、亮度過濾、模糊及拉伸處理
對quarter image進行亮度過濾處理,濾去quarter image中的暗部,以獲取image中的亮斑部分。然後,對其進行blur模糊和拉伸處理,即將亮斑部分區域柔和且擴大化,已獲得flare效果。
亮度過濾核心**:
half4 frag(v2f i) : color
blur核心**:
half4 color = half4 (0,0,0,0);
color += 0.225 * tex2d (_maintex, i.uv);
color += 0.150 * tex2d (_maintex, i.uv01.xy);
color += 0.150 * tex2d (_maintex, i.uv01.zw);
color += 0.110 * tex2d (_maintex, i.uv23.xy);
color += 0.110 * tex2d (_maintex, i.uv23.zw);
color += 0.075 * tex2d (_maintex, i.uv45.xy);
color += 0.075 * tex2d (_maintex, i.uv45.zw);
color += 0.0525 * tex2d (_maintex, i.uv67.xy);
color += 0.0525 * tex2d (_maintex, i.uv67.zw);
亮度拉伸核心**:v2f_opts o;
o.pos = mul(unity_matrix_mvp, v.vertex);
half b = stretchwidth;
o.uv0 = v.texcoord.xy;
o.uv1 = v.texcoord.xy + b * 2.0 * offsets.xy; //offsets使用者輸入權值
o.uv2 = v.texcoord.xy - b * 2.0 * offsets.xy;
o.uv3 = v.texcoord.xy + b * 4.0 * offsets.xy;
o.uv4 = v.texcoord.xy - b * 4.0 * offsets.xy;
o.uv5 = v.texcoord.xy + b * 6.0 * offsets.xy;
o.uv6 = v.texcoord.xy - b * 6.0 * offsets.xy;
return o;
}half4 fragstretch (v2f_opts i) : color
3、貼圖合併
將原始貼圖(source image)與 模糊拉伸貼圖(blurred stretched image)進行混合疊加 ,即可實現耀斑效果,大功告成!
核心**:
blendop add
blend one one
該方法能在**展示或者人物亮相時使用,並且考慮到可以達到如此出眾的美術效果,所以雖然比起傳統bloom效果增加了2個draw call,在我們看來也是超值的。
同時,建議開發者在實際應用中增加一些pass,比如多次blur或者邊緣模化的處理方法。另外還可以對耀斑顏色做color aberration處理,效果更佳。大家可以根據自己專案的需求來進行完善。
微商如何打造乙個有逼格的品牌
據了解,80 以上的微商平均月收入都在6000元以上,但也有月入過百萬元,單支付寶的流水也過千萬級別的微商。為何他們之間有著如此大的差別?原因在於是否擁有乙個極具逼格的個人品牌。乙個企業締造品牌,最大的核心價值就是在於有人需要的時候第乙個能夠想起的就是你。那如何才能打造出屬於個人品牌?1 吸引點 通...
高逼格的block(鏈式程式設計思想 )
鏈式程式設計思想 或許剛接觸這個東西,你說滿臉懵逼的狀態,那麼下面來看一下典型的鏈式程式設計思想的用法 建立控制項 uiview redview uiview alloc init redview.backgroundcolor uicolor redcolor self.view addsubvi...
高逼格UILabel的閃爍動畫效果
高逼格uilabel的閃爍動畫效果 最終效果圖如下 原始碼 yxlabel.h 與 yxlabel.m created by youxianming on 14 8 23.import inte ce yxlabel uiview property nonatomic,strong nsstring...