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; } }
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; } }
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; } }