Exemplo n.º 1
0
    private void SetupOutlineMode(Material material, OutlineWidthMode outlineWidthMode,
                                  OutlineColorMode outlineColorMode)
    {
        switch (outlineWidthMode)
        {
        case OutlineWidthMode.None:
            SetKeyword(material, "MTOON_OUTLINE_WIDTH_WORLD", false);
            SetKeyword(material, "MTOON_OUTLINE_WIDTH_SCREEN", false);
            SetKeyword(material, "MTOON_OUTLINE_COLOR_FIXED", false);
            SetKeyword(material, "MTOON_OUTLINE_COLOR_MIXED", false);
            break;

        case OutlineWidthMode.WorldCoordinates:
            SetKeyword(material, "MTOON_OUTLINE_WIDTH_WORLD", true);
            SetKeyword(material, "MTOON_OUTLINE_WIDTH_SCREEN", false);
            SetKeyword(material, "MTOON_OUTLINE_COLOR_FIXED", outlineColorMode == OutlineColorMode.FixedColor);
            SetKeyword(material, "MTOON_OUTLINE_COLOR_MIXED", outlineColorMode == OutlineColorMode.MixedLighting);
            break;

        case OutlineWidthMode.ScreenCoordinates:
            SetKeyword(material, "MTOON_OUTLINE_WIDTH_WORLD", false);
            SetKeyword(material, "MTOON_OUTLINE_WIDTH_SCREEN", true);
            SetKeyword(material, "MTOON_OUTLINE_COLOR_FIXED", outlineColorMode == OutlineColorMode.FixedColor);
            SetKeyword(material, "MTOON_OUTLINE_COLOR_MIXED", outlineColorMode == OutlineColorMode.MixedLighting);
            break;
        }
    }
Exemplo n.º 2
0
        private static void SetOutlineMode(Material material, OutlineWidthMode outlineWidthMode,
                                           OutlineColorMode outlineColorMode)
        {
            SetValue(material, PropOutlineWidthMode, (int)outlineWidthMode);
            SetValue(material, PropOutlineColorMode, (int)outlineColorMode);

            var isFixed = outlineColorMode == OutlineColorMode.FixedColor;
            var isMixed = outlineColorMode == OutlineColorMode.MixedLighting;

            switch (outlineWidthMode)
            {
            case OutlineWidthMode.None:
                SetKeyword(material, KeyOutlineWidthWorld, false);
                SetKeyword(material, KeyOutlineWidthScreen, false);
                SetKeyword(material, KeyOutlineColorFixed, false);
                SetKeyword(material, KeyOutlineColorMixed, false);
                break;

            case OutlineWidthMode.WorldCoordinates:
                SetKeyword(material, KeyOutlineWidthWorld, true);
                SetKeyword(material, KeyOutlineWidthScreen, false);
                SetKeyword(material, KeyOutlineColorFixed, isFixed);
                SetKeyword(material, KeyOutlineColorMixed, isMixed);
                break;

            case OutlineWidthMode.ScreenCoordinates:
                SetKeyword(material, KeyOutlineWidthWorld, false);
                SetKeyword(material, KeyOutlineWidthScreen, true);
                SetKeyword(material, KeyOutlineColorFixed, isFixed);
                SetKeyword(material, KeyOutlineColorMixed, isMixed);
                break;
            }
        }
Exemplo n.º 3
0
        private static void ValidateOutlineMode(Material material, OutlineWidthMode outlineWidthMode,
                                                OutlineColorMode outlineColorMode)
        {
            var isFixed = outlineColorMode == OutlineColorMode.FixedColor;
            var isMixed = outlineColorMode == OutlineColorMode.MixedLighting;

            switch (outlineWidthMode)
            {
            case OutlineWidthMode.None:
                SetKeyword(material, KeyOutlineWidthWorld, false);
                SetKeyword(material, KeyOutlineWidthScreen, false);
                SetKeyword(material, KeyOutlineWidthWorldVertexColor, false);
                SetKeyword(material, KeyOutlineWidthScreenVertexColor, false);
                SetKeyword(material, KeyOutlineColorFixed, false);
                SetKeyword(material, KeyOutlineColorMixed, false);
                break;

            case OutlineWidthMode.WorldCoordinates:
                SetKeyword(material, KeyOutlineWidthWorld, true);
                SetKeyword(material, KeyOutlineWidthScreen, false);
                SetKeyword(material, KeyOutlineWidthWorldVertexColor, false);
                SetKeyword(material, KeyOutlineWidthScreenVertexColor, false);
                SetKeyword(material, KeyOutlineColorFixed, isFixed);
                SetKeyword(material, KeyOutlineColorMixed, isMixed);
                break;

            case OutlineWidthMode.ScreenCoordinates:
                SetKeyword(material, KeyOutlineWidthWorld, false);
                SetKeyword(material, KeyOutlineWidthScreen, true);
                SetKeyword(material, KeyOutlineWidthWorldVertexColor, false);
                SetKeyword(material, KeyOutlineWidthScreenVertexColor, false);
                SetKeyword(material, KeyOutlineColorFixed, isFixed);
                SetKeyword(material, KeyOutlineColorMixed, isMixed);
                break;

            case OutlineWidthMode.WorldCoordinatesVertexColor:
                SetKeyword(material, KeyOutlineWidthWorld, false);
                SetKeyword(material, KeyOutlineWidthScreen, false);
                SetKeyword(material, KeyOutlineWidthWorldVertexColor, true);
                SetKeyword(material, KeyOutlineWidthScreenVertexColor, false);
                SetKeyword(material, KeyOutlineColorFixed, isFixed);
                SetKeyword(material, KeyOutlineColorMixed, isMixed);
                break;

            case OutlineWidthMode.ScreenCoordinatesVertexColor:
                SetKeyword(material, KeyOutlineWidthWorld, false);
                SetKeyword(material, KeyOutlineWidthScreen, false);
                SetKeyword(material, KeyOutlineWidthWorldVertexColor, false);
                SetKeyword(material, KeyOutlineWidthScreenVertexColor, true);
                SetKeyword(material, KeyOutlineColorFixed, isFixed);
                SetKeyword(material, KeyOutlineColorMixed, isMixed);
                break;
            }
        }