summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Unit/LensEffect/LensEffect_BlurRim.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2022-03-10 14:07:40 +0800
committerchai <chaifix@163.com>2022-03-10 14:07:40 +0800
commit22891bf59032ba88262824255a706d652031384b (patch)
tree7595439ba9966c9402d37e37cee5e8cf098757d5 /Assets/Scripts/Unit/LensEffect/LensEffect_BlurRim.cs
parent8b04ea73e540067f83870b61d89db4868fea5e8a (diff)
* move folder
Diffstat (limited to 'Assets/Scripts/Unit/LensEffect/LensEffect_BlurRim.cs')
-rw-r--r--Assets/Scripts/Unit/LensEffect/LensEffect_BlurRim.cs86
1 files changed, 0 insertions, 86 deletions
diff --git a/Assets/Scripts/Unit/LensEffect/LensEffect_BlurRim.cs b/Assets/Scripts/Unit/LensEffect/LensEffect_BlurRim.cs
deleted file mode 100644
index db0c1956..00000000
--- a/Assets/Scripts/Unit/LensEffect/LensEffect_BlurRim.cs
+++ /dev/null
@@ -1,86 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEngine.Rendering;
-
-public class LensEffect_BlurRim : LensEffectBase
-{
- public override ERenderingEvent renderingEvents => ERenderingEvent.AfterForwardOpaque;
-
- Color rimColor;
- int tempID;
-
- public LensEffect_BlurRim(Color color) : base()
- {
- rimColor = color;
- tempID = Shader.PropertyToID("_BlurRim_RT0");
- }
-
- public override void AfterForwardOpaque(EStage stage, CommandBuffer cb)
- {
- if (stage == EStage.BeforeIterate)
- {
- Before(cb);
- }
- else if (stage == EStage.Iterate)
- {
- Iterate(cb);
- }
- else if (stage == EStage.AfterIterate)
- {
- After(cb);
- }
- else if (stage == EStage.FinishRender)
- {
- }
- }
-
- void Before(CommandBuffer cb)
- {
- cb.GetTemporaryRT(tempID, -1, -1, 24, FilterMode.Bilinear);
- cb.SetRenderTarget(tempID);
- cb.ClearRenderTarget(true, true, new Color(0, 0, 0, 0));
- }
-
- void Iterate(CommandBuffer cb)
- {
- Matrix4x4 obj2Wod = Matrix4x4.identity;
- int subMeshCount = 0;
- if (curBodypartRenderer.renderer is SkinnedMeshRenderer)
- {
- SkinnedMeshRenderer smr = curBodypartRenderer.renderer as SkinnedMeshRenderer;
- Vector3 pos = smr.rootBone.transform.position;
- Quaternion rot = smr.rootBone.transform.rotation;
- obj2Wod = MatrixUtility.RotateAndTranslate(pos, rot);
- obj2Wod = Matrix4x4.Translate(new Vector3(1, 0, 0)) * obj2Wod;
- subMeshCount = smr.sharedMesh.subMeshCount;
- }
- else if (curBodypartRenderer.renderer is MeshRenderer)
- {
- obj2Wod = curBodypartRenderer.renderer.transform.localToWorldMatrix;
- obj2Wod = Matrix4x4.Translate(new Vector3(1, 0, 0)) * obj2Wod;
- subMeshCount = curBodypartRenderer.renderer.GetComponent<MeshFilter>().sharedMesh.subMeshCount;
- }
-
- for (int i = 0; i < subMeshCount; ++i)
- {
- MaterialEntry mat = GetTempMaterial(StaticDefine.shaders[EShader.SolidColor].name);
- mat.material.SetColor("_Color", rimColor);
- mat.material.SetMatrix("_ObjectToWorld", obj2Wod);
- mat.material.SetTexture("_MainTex", curBodypartRenderer.renderer.sharedMaterial.GetTexture("_MainTex"));
- cb.DrawRenderer(curBodypartRenderer.renderer, mat.material, i);
- }
- }
-
- void After(CommandBuffer cb)
- {
- MaterialEntry blur = GetTempMaterial(StaticDefine.shaders[EShader.Blur].name);
-
- Vector4 tileOffset = RenderingUtility.GetTillingOffset(MainCamera.Instance.camera, owner.center, owner.unitDetail.snapshotBound);
- blur.material.SetVector("_UnitTileOffset", tileOffset);
-
- cb.Blit(tempID, BuiltinRenderTextureType.CameraTarget, blur.material);
- cb.ReleaseTemporaryRT(tempID);
- }
-
-} \ No newline at end of file