Skip to content

Instantly share code, notes, and snippets.

@partybusiness
Last active April 15, 2021 22:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save partybusiness/1060882767d396b82de56b5f66f03798 to your computer and use it in GitHub Desktop.
Save partybusiness/1060882767d396b82de56b5f66f03798 to your computer and use it in GitHub Desktop.
A colour cycling shader for Unity, inspired by old graphical trick but implemented differently because I don't have indexed colours.
Shader "Unlit/ColourCycling"
{
//cycles through y position in CycleColours based on r value of _CyclePaint
//g value of _CyclePaint allows for y offset when selecting from _CycleColours
//b value of _CyclePaint acts as a mask, it displays _MainTex as the background anywhere it's 0
//make sure all textures are set to point filter
//When making your colours for the r value don't make the mistake I first did and forget that 0 and 255 are equal when cycling
//one or the other has to not go all the way to the end so they're spaced correctly
Properties
{
_MainTex ("Texture", 2D) = "white" {} //base Texture
_CyclePaint("Cycle Paint", 2D) = "white" {} //the areas you want to cycle through colours
_CycleColours("Cycle Colours", 2D) = "white" {} //the colours we'll sample based on the
_CycleSpeed("Cycle Speed", float) = 1 //how fast you want it to Cycle
_NumberOfColours("Number of Colours", int) = 5 //the number of distinct colours you want to cycle through, used to round the r and g values
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 100
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
sampler2D _MainTex;
float4 _MainTex_ST;
sampler2D _CyclePaint;
sampler2D _CycleColours;
float _CycleSpeed;
int _NumberOfColours;
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
fixed4 baseCol = tex2D(_MainTex, i.uv, 0, 0);
fixed4 paintCol = tex2D(_CyclePaint, i.uv, 0, 0);
fixed2 roundUV = (round(paintCol.xy * _NumberOfColours) + fixed2(round(_Time.x*_CycleSpeed*_NumberOfColours), 0) +fixed2(0.5,0)) / _NumberOfColours;
//return fixed4(roundUV%1, 0, 1);
fixed4 rollingColour = tex2D(_CycleColours, roundUV, 0, 0);
//return rollingColour;
return lerp(baseCol, rollingColour, paintCol.z);
}
ENDCG
}
}
}
32,32, Text image format, converter here: https://gist.github.com/partybusiness/9d32e50f65fd923f087d1c39420a4285
000000|000000|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CAFFFF|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|FFFFFF|FFFFFF|FFFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|33FFFF|33FFFF|33FFFF|33FFFF|33FFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|33FFFF|33FFFF|33FFFF|33FFFF|33FFFF|33FFFF|33FFFF|33FFFF|33FFFF|33FFFF|33FFFF|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|33FFFF|33FFFF|33FFFF|33FFFF|33FFFF|33FFFF|33FFFF|33FFFF|33FFFF|33FFFF|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|66FFFF|66FFFF|66FFFF|66FFFF|66FFFF|66FFFF|66FFFF|66FFFF|020404|010101|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|66FFFF|66FFFF|66FFFF|66FFFF|66FFFF|66FFFF|66FFFF|030606|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|99FFFF|99FFFF|99FFFF|99FFFF|99FFFF|99FFFF|99FFFF|010101|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|99FFFF|99FFFF|99FFFF|99FFFF|99FFFF|99FFFF|99FFFF|020202|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|99FFFF|99FFFF|99FFFF|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|000000|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|010101|FFFFFF|FFFFFF|FFFFFF|CCFFFF|CCFFFF|CCFFFF|CCFFFF|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|FFFFFF|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|33FFFF|33FFFF|33FFFF|33FFFF|33FFFF|33FFFF|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|66FFFF|66FFFF|66FFFF|66FFFF|66FFFF|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|99FFFF|99FFFF|99FFFF|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|CCFFFF|CCFFFF|CCFFFF|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|FFFFFF|FFFFFF|FFFFFF|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000
32,32, Text image format, converter here: https://gist.github.com/partybusiness/9d32e50f65fd923f087d1c39420a4285
C59750|2D5D38|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|2D5D38|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|C59750|2D5D38|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|C59750|2D5D38|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|C59750|C59750|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|C59750|C59750|2D5D38|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|C59750|C59750|2D5D38|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|C59750|C59750|2D5D38|2D5D38|000000|000000|000000|000000|000000|000000|000000|000000|000000|000000|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|C59750|C59750|C59750|2D5D38|000000|000000|000000|000000|000000|000000|000000|000000|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|C59750|C59750|C59750|2D5D38|C59750|000000|000000|000000|000000|000000|000000|000000|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|000000|000000|000000|000000|000000|000000|000000|2D5D38|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|000000|000000|000000|000000|000000|000000|000000|2D5D38|197B30|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|000000|000000|000000|000000|000000|000000|000000|000000|000000|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|000000|000000|000000|000000|000000|000000|000000|000000|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|000000|000000|000000|000000|000000|000000|000000|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|000000|000000|000000|000000|000000|000000|000000|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|000000|000000|000000|000000|000000|000000|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|000000|000000|000000|000000|000000|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|000000|000000|000000|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|2D5D38|000000|000000|000000|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|000000|000000|000000|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750|C59750
9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF
9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF
9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF
9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF
9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF
9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF
9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF
9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF
9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF
9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF
9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF|9FB9EF
8,1, Text image format, converter here: https://gist.github.com/partybusiness/9d32e50f65fd923f087d1c39420a4285
7A8ADC|767FDB|706FD9|6D6DE0|6464DE|4B4BCE|5858E6|6161F7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment