Skip to content

Commit

Permalink
[WIP]Change: Color effect use vertex color to reduce parameters. #50
Browse files Browse the repository at this point in the history
  • Loading branch information
mob-sakai committed Apr 11, 2018
1 parent 81ba1f4 commit 577a543
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 4 deletions.
2 changes: 1 addition & 1 deletion Assets/UIEffect/Editor/UIEffectEditor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public static void DrawEffectProperties(string shaderName, SerializedObject seri
if (spColorMode.intValue != (int)UIEffect.ColorMode.None)
{
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(serializedObject.FindProperty("m_EffectColor"));
EditorGUILayout.PropertyField(serializedObject.FindProperty("m_ColorFactor"));
EditorGUI.indentLevel--;
}

Expand Down
2 changes: 1 addition & 1 deletion Assets/UIEffect/UI-Effect.shader
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ Shader "UI/Hidden/UI-Effect"
color = ApplyToneEffect(color, IN.effectFactor.x);
#endif

color = ApplyColorEffect(color, fixed4(IN.color.rgb, IN.colorFactor.a));
color = ApplyColorEffect(color, fixed4(IN.color.rgb, IN.effectFactor.y));
color.a *= IN.color.a;

return color;
Expand Down
11 changes: 9 additions & 2 deletions Assets/UIEffect/UIEffect.cs
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ public enum BlurMode
// Serialize Members.
//################################
[SerializeField][Range(0, 1)] float m_ToneLevel = 1;
[SerializeField][Range(0, 1)] float m_ColorFactor = 1;
[SerializeField][Range(0, 1)] float m_Blur = 0.25f;
[SerializeField][Range(0, 1)] float m_ShadowBlur = 0.25f;
[SerializeField] ShadowStyle m_ShadowStyle;
Expand Down Expand Up @@ -143,6 +144,12 @@ public enum BlurMode
/// </summary>
public float toneLevel{ get { return m_ToneLevel; } set { m_ToneLevel = Mathf.Clamp(value, 0, 1); _SetDirty(); } }

/// <summary>
/// Color effect factor, between 0(no effect) and 1(complete effect).
/// </summary>
public float colorFactor { get { return m_ColorFactor; } set { m_ColorFactor = Mathf.Clamp(value, 0, 1); _SetDirty(); } }


/// <summary>
/// How far is the blurring from the graphic.
/// </summary>
Expand Down Expand Up @@ -245,7 +252,7 @@ public override void ModifyMesh(VertexHelper vh)
{
// Pack some effect factors to 1 float.
Vector2 factor = new Vector2(
m_CustomEffect ? _PackToFloat(m_CustomFactor) : _PackToFloat(toneLevel, 0, blur, 0),
m_CustomEffect ? _PackToFloat(m_CustomFactor) : _PackToFloat(toneLevel, colorFactor, blur, 0),
_PackToFloat(effectColor.r, effectColor.g, effectColor.b, effectColor.a)
);

Expand Down Expand Up @@ -409,7 +416,7 @@ void _ApplyShadow(List<UIVertex> verts, ref int start, ref int end, ShadowStyle
return;

var factor = new Vector2(
_PackToFloat(toneLevel, 0, blur, 0),
_PackToFloat(toneLevel, 1, blur, 0),
_PackToFloat(color.r, color.g, color.b, 1)
);

Expand Down

0 comments on commit 577a543

Please sign in to comment.