#include "shaders_common.h" static const char *stock_xmb_ribbon_simple = CG( struct input { float time; }; float iqhash(float n) { return frac(sin(n)*43758.5453); } float noise(float3 x) { float3 p = floor(x); float3 f = frac(x); f = f * f * (3.0 - 2.0 * f); float n = p.x + p.y * 57.0 + 113.0 * p.z; return lerp(lerp(lerp(iqhash(n+0.0), iqhash(n+1.0), f.x), lerp(iqhash(n+57.0), iqhash(n+58.0), f.x), f.y), lerp(lerp(iqhash(n+113.0), iqhash(n+114.0), f.x), lerp(iqhash(n+170.0), iqhash(n+171.0), f.x), f.y), f.z); } void main_vertex ( float2 position : POSITION, float4 color : COLOR, float2 texCoord : TEXCOORD0, uniform input IN, out float4 oPosition : POSITION, out float4 oColor : COLOR, out float2 otexCoord : TEXCOORD ) { float3 v = float3(position.x, 0.0, position.y); float3 v2 = v; v2.x = v2.x + IN.time / 2.0; v2.z = v.z * 3.0; v.y = -cos((v.x + v.z / 3.0 + IN.time) * 2.0) / 10.0 - noise(v2.xyz) / 3.0; oPosition = float4(v, 1.0); oColor = color; otexCoord = texCoord; } struct output { float4 color : COLOR; }; output main_fragment(uniform input IN) { output OUT; OUT.color = float4(0.05, 0.05, 0.05, 1.0); return OUT; } );