Phillipes_Fablab/Assets/Materials/Keyboard/Keyboard.shader

66 lines
2.3 KiB
Plaintext

Shader "RGB Keys" {
SubShader {
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
// uniform float4x4 unity_ObjectToWorld;
// automatic definition of a Unity-specific uniform parameter
struct vertexInput {
float4 vertex : POSITION;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct vertexOutput {
float4 pos : SV_POSITION;
float4 position_in_world_space : TEXCOORD0;
UNITY_VERTEX_OUTPUT_STEREO
};
vertexOutput vert(vertexInput input)
{
vertexOutput output;
UNITY_SETUP_INSTANCE_ID(input);
UNITY_INITIALIZE_OUTPUT(vertexOutput, output);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
output.pos = UnityObjectToClipPos(input.vertex);
output.position_in_world_space =
mul(unity_ObjectToWorld, input.vertex);
// transformation of input.vertex from object
// coordinates to world coordinates;
return output;
}
UNITY_DECLARE_SCREENSPACE_TEXTURE(_MainTex);
float3 ApplyHue(float t)
{
float3 result;
result.r = sin(t * 6.283185307179586476925286766559 + 0.0) * 0.5 + 0.5;
result.g = sin(t * 6.283185307179586476925286766559 + 2.0943951023931954923084289221863) * 0.5 + 0.5;
result.b = sin(t * 6.283185307179586476925286766559 + 4.1887902047863909846168578443727) * 0.5 + 0.5;
return result;
}
float4 frag(vertexOutput input) : COLOR
{
// computes the distance between the fragment position
// and the origin (the 4th coordinate should always be
// 1 for points).
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input)
// fixed4 col = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, input.position_in_world_space);
//col = (ApplyHue(_Time.x*4.), 1.0);
return float4(ApplyHue(_Time.x*4.), 1.0);
//return float4(fmod(input.position_in_world_space.x,1), input.position_in_world_space.y % 1, input.position_in_world_space.z % 1, 1.0);
}
ENDCG
}
}
}