public void LogRenderingMode(TCShaderRenderingMode renderingMode, int renderQueueAdd) { if (_currInfo == null) { return; } _currInfo.RenderingMode = renderingMode; _currInfo.RenderingQueueAdd = renderQueueAdd; }
// rending mode public static void SetupMaterialWithRenderingMode(Material material, TCShaderRenderingMode renderingMode, bool resetQueue) { var renderQueue = -1; switch (renderingMode) { case TCShaderRenderingMode.Cutout: material.SetOverrideTag("RenderType", "TransparentCutout"); material.SetInt(_srcBlend, (int)BlendMode.One); material.SetInt(_dstBlend, (int)BlendMode.Zero); material.SetInt(_zWrite, 1); material.EnableKeyword(KEYWORD_ALPHA_TEST_ON); material.DisableKeyword(KEYWORD_ALPHA_BLEND_ON); renderQueue = (int)RenderQueue.AlphaTest; break; case TCShaderRenderingMode.Transparent: material.SetOverrideTag("RenderType", "Transparent"); material.SetInt(_srcBlend, (int)BlendMode.SrcAlpha); material.SetInt(_dstBlend, (int)BlendMode.OneMinusSrcAlpha); material.SetInt(_zWrite, 0); material.DisableKeyword(KEYWORD_ALPHA_TEST_ON); material.EnableKeyword(KEYWORD_ALPHA_BLEND_ON); renderQueue = (int)RenderQueue.Transparent; break; default: // Opaque material.SetOverrideTag("RenderType", ""); material.SetInt(_srcBlend, (int)BlendMode.One); material.SetInt(_dstBlend, (int)BlendMode.Zero); material.SetInt(_zWrite, 1); material.DisableKeyword(KEYWORD_ALPHA_TEST_ON); material.DisableKeyword(KEYWORD_ALPHA_BLEND_ON); break; } if (resetQueue) { material.renderQueue = renderQueue; } }