資源簡介
UnityShader實例15,配套資源,,適用于移動平臺的屏幕bloom特效,效率不錯

代碼片段和文件信息
using?UnityEngine;
using?System.Collections;
using?System;
[ExecuteInEditMode]
[AddComponentMenu?(“PengLu/ImageEffect/MobileBloom“)]
public?class?ImageEffect_MoblieBloom?:?MonoBehaviour?{
#region?Variables
public?Shader?BloomShader?=?null;
private?Material?BloomMaterial?=?null;
private?RenderTextureFormat?rtFormat?=?RenderTextureFormat.Default;
public?Color?colorMix?=?new?Color(1.0f?1.0f?1.0f?1.0f);
[Range(0.0f?1.0f)]
????public?float?threshold?=?0.25f;
????[Range(0.0f?2.5f)]
????public?float?intensity?=?0.75f;
????[Range(0.2f?1.0f)]
????public?float?BlurSize?=?1.0f;
#endregion
//?Use?this?for?initialization
void?Start?()?{
FindShaders?();
CheckSupport?();
CreateMaterials?();
}
void?FindShaders?()?{
if?(!BloomShader)?{
BloomShader?=?Shader.Find(“PengLu/ImageEffect/Unlit/MobileBloom“);
}
}
void?CreateMaterials()?{
if(!BloomMaterial){
BloomMaterial?=?new?Material(BloomShader);
BloomMaterial.hideFlags?=?HideFlags.HideAndDontSave;
}
}
bool?Supported(){
return?(SystemInfo.supportsImageEffects?&&?SystemInfo.supportsRenderTextures?&&?BloomShader.isSupported);
//?return?true;
}
bool?CheckSupport()?{
if(!Supported())?{
enabled?=?false;
return?false;
}
rtFormat?=?SystemInfo.SupportsRenderTextureFormat?(RenderTextureFormat.RGB565)???RenderTextureFormat.RGB565?:?RenderTextureFormat.Default;
return?true;
}
void?OnRenderImage?(RenderTexture?sourceTexture?RenderTexture?destTexture)
{
#if?UNITY_EDITOR
FindShaders?();
CheckSupport?();
CreateMaterials?();
#endif
if(threshold?!=?0?&&?intensity?!=?0){
int?rtW?=?sourceTexture.width/4;
????????int?rtH?=?sourceTexture.height/4;
????????BloomMaterial.SetColor?(“_ColorMix“?colorMix);
????????BloomMaterial.SetVector?(“_Parameter“?new?Vector4(BlurSize*1.5f?0.0f?intensity0.8f?-?threshold));
????????//?material.SetFloat(“_blurSize“BlurSize);
????????RenderTexture?rtTempA?=?RenderTexture.GetTemporary?(rtW?rtH?0rtFormat);
????????????rtTempA.filterMode?=?FilterMode.Bilinear;
????????????RenderTexture?rtTempB?=?RenderTexture.GetTemporary?(rtW?rtH?0rtFormat);
????????????rtTempA.filterMode?=?FilterMode.Bilinear;
????????????Graphics.Blit?(sourceTexture?rtTempABloomMaterial0);
????????????Graphics.Blit?(rtTempA?rtTempB?BloomMaterial1);
????????????RenderTexture.ReleaseTemporary(rtTempA);
?
????????????rtTempA?=?RenderTexture.GetTemporary?(rtW?rtH?0?rtFormat);
????????????rtTempB.filterMode?=?FilterMode.Bilinear;
????????????Graphics.Blit?(rtTempB?rtTempA?BloomMaterial2);
????????????BloomMaterial.SetTexture?(“_Bloom“?rtTempA);
????????????Graphics.Blit?(sourceTexture?destTexture?BloomMaterial3);
???????
????????????RenderTexture.ReleaseTemporary(rtTempA);
????????????RenderTexture.ReleaseTemporary(rtTempB);
}
else{
Graphics.Blit(sourceTexture?destTexture);
}
}
//?Update?is?called?once?per?frame
//?void?Update?()?{
//? #if?UNITY_EDITOR
//? if?(Applicatio
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4338??2015-09-17?14:50??ImageEffectUnlitMobileBloom.shader
?????文件???????3278??2015-09-17?14:50??ImageEffect_MoblieBloom.cs
-----------?---------??----------?-----??----
?????????????????7616????????????????????2
- 上一篇:myeclipse2016+破解文件+教程
- 下一篇:屏幕特效之徑向模糊
評論
共有 條評論