public void LogRenderingMode(TCShaderRenderingMode renderingMode, int renderQueueAdd)
        {
            if (_currInfo == null)
            {
                return;
            }

            _currInfo.RenderingMode     = renderingMode;
            _currInfo.RenderingQueueAdd = renderQueueAdd;
        }
示例#2
0
        // 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;
            }
        }