diff options
author | chai <chaifix@163.com> | 2022-03-10 14:07:40 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2022-03-10 14:07:40 +0800 |
commit | 22891bf59032ba88262824255a706d652031384b (patch) | |
tree | 7595439ba9966c9402d37e37cee5e8cf098757d5 /Assets/Scripts/Unit/LensEffect | |
parent | 8b04ea73e540067f83870b61d89db4868fea5e8a (diff) |
* move folder
Diffstat (limited to 'Assets/Scripts/Unit/LensEffect')
14 files changed, 0 insertions, 529 deletions
diff --git a/Assets/Scripts/Unit/LensEffect/LensEffectBase.cs b/Assets/Scripts/Unit/LensEffect/LensEffectBase.cs deleted file mode 100644 index 94e5f6a7..00000000 --- a/Assets/Scripts/Unit/LensEffect/LensEffectBase.cs +++ /dev/null @@ -1,111 +0,0 @@ -using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEngine.Rendering;
-
-public class MaterialEntry
-{
- public string shader;
- public Material material;
-}
-
-// unit 镜头效果,和image effect的区别在于不光是后处理
-public abstract class LensEffectBase
-{
- public enum EStage
- {
- BeforeIterate, // 迭代之前
- Iterate, // 迭代renderer
- AfterIterate, // 迭代之后
- FinishRender, // 渲染角色之后(所有lens effect结束)
- }
-
- public abstract ERenderingEvent renderingEvents { get; }
-
- protected static Dictionary<string/*shaderName*/, List<MaterialEntry>> m_MaterailPool = new Dictionary<string, List<MaterialEntry>>();
-
- private List<MaterialEntry> m_InUseMaterials = new List<MaterialEntry>();
-
- #region upvalues
- public BodyPartRenderer curBodypartRenderer;
- public UnitController owner;
- #endregion
-
- private static MaterialEntry ClaimMaterial(string shader)
- {
- List<MaterialEntry> mats;
- if (m_MaterailPool.TryGetValue(shader, out mats) && mats.Count > 0)
- {
- MaterialEntry me = mats[mats.Count - 1];
- mats.RemoveAt(mats.Count - 1);
- return me;
- }
- Material mat = new Material(Shader.Find(shader));
- MaterialEntry entry = new MaterialEntry();
- entry.material = mat;
- entry.shader = shader;
- return entry;
- }
-
- private static void ReleaseMaterial(MaterialEntry entry)
- {
- List<MaterialEntry> mats;
- if (!m_MaterailPool.TryGetValue(entry.shader, out mats))
- {
- mats = new List<MaterialEntry>();
- m_MaterailPool.Add(entry.shader, mats);
- }
- mats.Add(entry);
- } - - protected MaterialEntry GetTempMaterial(string shader)
- {
- MaterialEntry entry = ClaimMaterial(shader);
- m_InUseMaterials.Add(entry);
- return entry;
- } - - protected void ReleaseAllInUsedMaterials()
- {
- for(int i = 0; i < m_InUseMaterials.Count; ++i)
- {
- ReleaseMaterial(m_InUseMaterials[i]);
- }
- m_InUseMaterials.Clear();
- } -
- public virtual void BeforeDepthTexture(EStage stage, CommandBuffer cb) { }
- public virtual void AfterDepthTexture(EStage stage, CommandBuffer cb) { }
-
- public virtual void BeforeDepthNormalsTexture(EStage stage, CommandBuffer cb) { }
- public virtual void AfterDepthNormalsTexture(EStage stage, CommandBuffer cb) { }
-
- public virtual void BeforeForwardOpaque(EStage stage, CommandBuffer cb) { }
- public virtual void AfterForwardOpaque(EStage stage, CommandBuffer cb) { }
-
- public virtual void BeforeImageEffectsOpaque(EStage stage, CommandBuffer cb) { }
- public virtual void AfterImageEffectsOpaque(EStage stage, CommandBuffer cb) { }
-
- public virtual void BeforeSkybox(EStage stage, CommandBuffer cb) { }
- public virtual void AfterSkybox(EStage stage, CommandBuffer cb) { }
-
- public virtual void BeforeForwardAlpha(EStage stage, CommandBuffer cb) { }
- public virtual void AfterForwardAlpha(EStage stage, CommandBuffer cb) { }
-
- public virtual void BeforeImageEffects(EStage stage, CommandBuffer cb) { }
- public virtual void AfterImageEffects(EStage stage, CommandBuffer cb) { }
-
- public virtual void BeforeEverything(EStage stage, CommandBuffer cb) { }
- public virtual void AfterEverything(EStage stage, CommandBuffer cb) { }
-
- public virtual bool CanDestroy() { return false; }
-
- public virtual void OnDestroy() { }
-
- // 角色渲染完毕
- public virtual void OnRenderFinish()
- {
- ReleaseAllInUsedMaterials();
- }
-
-}
\ No newline at end of file diff --git a/Assets/Scripts/Unit/LensEffect/LensEffectBase.cs.meta b/Assets/Scripts/Unit/LensEffect/LensEffectBase.cs.meta deleted file mode 100644 index d0d0d81b..00000000 --- a/Assets/Scripts/Unit/LensEffect/LensEffectBase.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 548560041d20266478078df50edab4e9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: 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 diff --git a/Assets/Scripts/Unit/LensEffect/LensEffect_BlurRim.cs.meta b/Assets/Scripts/Unit/LensEffect/LensEffect_BlurRim.cs.meta deleted file mode 100644 index 3a2e02ef..00000000 --- a/Assets/Scripts/Unit/LensEffect/LensEffect_BlurRim.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f49dbf9002764be4aa6ca79b78052d7a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Unit/LensEffect/LensEffect_Buzz.cs b/Assets/Scripts/Unit/LensEffect/LensEffect_Buzz.cs deleted file mode 100644 index 252efc6e..00000000 --- a/Assets/Scripts/Unit/LensEffect/LensEffect_Buzz.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.Rendering; - -// 蜂鸣 -public class LensEffect_Buzz : LensEffectBase -{ - public override ERenderingEvent renderingEvents => ERenderingEvent.AfterForwardAlpha; - - public LensEffect_Buzz() : base() - { - - } - - public override void AfterForwardAlpha(EStage stage, CommandBuffer cb) - { - if (stage == EStage.BeforeIterate) - { - Before(cb); - } - else if (stage == EStage.AfterIterate) - { - After(cb); - } - } - - void Before(CommandBuffer cb) - { - MaterialEntry buzz = GetTempMaterial(StaticDefine.shaders[EShader.Buzz].name); - - cb.SetGlobalTexture("_UnitDepthTexture", owner.unitPreprocessing.unitDepthTexture); - cb.Blit(BuiltinRenderTextureType.CameraTarget, BuiltinRenderTextureType.CameraTarget, buzz.material); - } - - void After(CommandBuffer cb) - { - - } - -}
\ No newline at end of file diff --git a/Assets/Scripts/Unit/LensEffect/LensEffect_Buzz.cs.meta b/Assets/Scripts/Unit/LensEffect/LensEffect_Buzz.cs.meta deleted file mode 100644 index 24b527a2..00000000 --- a/Assets/Scripts/Unit/LensEffect/LensEffect_Buzz.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d76bd4e3298fc574e9f90efa626f6e17 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs b/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs deleted file mode 100644 index d5d368d0..00000000 --- a/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs +++ /dev/null @@ -1,94 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.Rendering; - -public class LensEffect_Dash : LensEffectBase -{ - public override ERenderingEvent renderingEvents => ERenderingEvent.AfterForwardOpaque; - - Color rimColor; - int tempID; - float lifeTime;
- UnitSnapshot snapshot;
- TRS trs;
- float angle;
-
- float curTime = 0;
-
- public LensEffect_Dash(Color color, float lifeTime, float angle, UnitSnapshotInfo snapshot) : base() - { - rimColor = color; - tempID = Shader.PropertyToID("RT_Dash"); - this.lifeTime = lifeTime;
- trs = snapshot.trs;
- this.snapshot = UnitManager.Instance.ClaimSnapshotSolo(snapshot);
- this.angle = angle;
- } - - public override void AfterForwardOpaque(EStage stage, CommandBuffer cb) - { - if (stage == EStage.BeforeIterate) - { - Before(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));
-
- // renderer
- snapshot.transform.position = trs.position;
- snapshot.transform.rotation = trs.rotation;
- snapshot.transform.localScale = trs.scale;
-
- Matrix4x4 obj2Wod = Matrix4x4.identity;
- SkinnedMeshRenderer smr = snapshot.renderers[0] as SkinnedMeshRenderer;
- Vector3 pos = smr.rootBone.transform.position;
- Quaternion rot = smr.rootBone.transform.rotation;
- obj2Wod = MatrixUtility.RotateAndTranslate(pos, rot);
-
- MaterialEntry mat = GetTempMaterial(StaticDefine.shaders[EShader.SolidColor].name);
- mat.material.SetColor("_Color", rimColor);
- mat.material.SetMatrix("_ObjectToWorld", obj2Wod);
- mat.material.SetTexture("_MainTex", snapshot.renderers[0].sharedMaterial.GetTexture("_MainTex"));
-
- cb.DrawRenderer(snapshot.renderers[0], mat.material);
- } - - void After(CommandBuffer cb) - {
- curTime += Time.deltaTime;
-
- MaterialEntry blur = GetTempMaterial(StaticDefine.shaders[EShader.MotionBlur].name); - - Vector4 tileOffset = RenderingUtility.GetTillingOffset(MainCamera.Instance.camera, trs.position, 6);
- blur.material.SetVector("_UnitTileOffset", tileOffset);
- blur.material.SetFloat("_Angle", angle);
- blur.material.SetFloat("_AlphaMultiplier", Mathf.Clamp(1 - curTime / lifeTime, 0, 1));
-
- cb.Blit(tempID, BuiltinRenderTextureType.CameraTarget, blur.material); - cb.ReleaseTemporaryRT(tempID); - }
-
- public override bool CanDestroy()
- {
- return curTime > lifeTime;
- }
-
- public override void OnDestroy()
- {
- UnitManager.Instance.ReleaseSnapshot(ref snapshot);
- }
- -}
\ No newline at end of file diff --git a/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs.meta b/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs.meta deleted file mode 100644 index f0c4f6ab..00000000 --- a/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3fac41ebc7706eb4abec04ae44602464 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Unit/LensEffect/LensEffect_Glitch.cs b/Assets/Scripts/Unit/LensEffect/LensEffect_Glitch.cs deleted file mode 100644 index 00763a37..00000000 --- a/Assets/Scripts/Unit/LensEffect/LensEffect_Glitch.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class LensEffect_Glitch : MonoBehaviour
-{
- // Start is called before the first frame update
- void Start()
- {
-
- }
-
- // Update is called once per frame
- void Update()
- {
-
- }
-}
diff --git a/Assets/Scripts/Unit/LensEffect/LensEffect_Glitch.cs.meta b/Assets/Scripts/Unit/LensEffect/LensEffect_Glitch.cs.meta deleted file mode 100644 index 88e5b0de..00000000 --- a/Assets/Scripts/Unit/LensEffect/LensEffect_Glitch.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 48bd0d7bffad03a44a281ccb6f21f188 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Unit/LensEffect/LensEffect_MotionBlur.cs b/Assets/Scripts/Unit/LensEffect/LensEffect_MotionBlur.cs deleted file mode 100644 index 371186d0..00000000 --- a/Assets/Scripts/Unit/LensEffect/LensEffect_MotionBlur.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEngine.Rendering;
-
-public class LensEffect_MotionBlur : LensEffectBase
-{
- int tempID;
-
- public LensEffect_MotionBlur()
- {
- }
-
- public override ERenderingEvent renderingEvents => ERenderingEvent.AfterImageEffectsOpaque;
-
- public override void AfterImageEffectsOpaque(EStage stage, CommandBuffer cb)
- {
- if (stage == EStage.BeforeIterate)
- {
- tempID = Shader.PropertyToID("_Temp1");
-
- cb.GetTemporaryRT(tempID, -1, -1, 24, FilterMode.Bilinear);
- cb.SetRenderTarget(tempID);
- cb.ClearRenderTarget(true, true, new Color(0, 0, 0, 0)); - }
- else if(stage == EStage.Iterate)
- {
- 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);
- subMeshCount = smr.sharedMesh.subMeshCount;
- }
- else if (curBodypartRenderer.renderer is MeshRenderer)
- {
- obj2Wod = curBodypartRenderer.renderer.transform.localToWorldMatrix;
- 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", Color.red);
- mat.material.SetMatrix("_ObjectToWorld", obj2Wod);
-
- cb.DrawRenderer(curBodypartRenderer.renderer, mat.material, i);
- } - }
- else if(stage == EStage.AfterIterate)
- {
- 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);
- tempID = Shader.PropertyToID("_Temp1");
- cb.ReleaseTemporaryRT(tempID); - }
- else if(stage == EStage.FinishRender)
- {
- }
- }
-
-}
\ No newline at end of file diff --git a/Assets/Scripts/Unit/LensEffect/LensEffect_MotionBlur.cs.meta b/Assets/Scripts/Unit/LensEffect/LensEffect_MotionBlur.cs.meta deleted file mode 100644 index 364e3d30..00000000 --- a/Assets/Scripts/Unit/LensEffect/LensEffect_MotionBlur.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 499c4e25bc0f4d641b99f688e91c495f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Unit/LensEffect/RendererProxy.cs b/Assets/Scripts/Unit/LensEffect/RendererProxy.cs deleted file mode 100644 index 17d8d611..00000000 --- a/Assets/Scripts/Unit/LensEffect/RendererProxy.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -[RequireComponent(typeof(Renderer))] -public class RendererProxy : MonoBehaviour -{ - public delegate void OnWillRenderObjectHandler(BodyPartRenderer renderer); - public OnWillRenderObjectHandler onWillRenderObject; - - public delegate void OnRenderObjectHandler(BodyPartRenderer renderer); - public OnRenderObjectHandler onRenderObject; - - BodyPartRenderer bodyPartRenderer; - - public void Initialize(BodyPartRenderer renderer) - { - bodyPartRenderer = renderer; - } - - void OnWillRenderObject() - { - if(onWillRenderObject != null) - onWillRenderObject(bodyPartRenderer); - } - - void OnRenderObject() - { - if(onRenderObject != null) - onRenderObject(bodyPartRenderer); - } - -} diff --git a/Assets/Scripts/Unit/LensEffect/RendererProxy.cs.meta b/Assets/Scripts/Unit/LensEffect/RendererProxy.cs.meta deleted file mode 100644 index 5f8c904e..00000000 --- a/Assets/Scripts/Unit/LensEffect/RendererProxy.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 81836ced17364c94d8130f6eeb2bf115 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: |