OSDN Git Service

123
[psychlops/silverlight.git] / dev4 / Shader / GaborAlpha.fx
1 /// <summary>Amplitude of Grating</summary>\r
2 /// <minValue>0</minValue>\r
3 /// <maxValue>1</maxValue>\r
4 /// <defaultValue>1</defaultValue>\r
5 float contrast : register(C1);\r
6 \r
7 /// <summary>Phase of Grating</summary>\r
8 /// <minValue>0</minValue>\r
9 /// <maxValue>100</maxValue>\r
10 /// <defaultValue>100</defaultValue>\r
11 float frequency: register(C2);\r
12 \r
13 /// <summary>Phase of Grating</summary>\r
14 /// <minValue>0</minValue>\r
15 /// <maxValue>6.283184</maxValue>\r
16 /// <defaultValue>0</defaultValue>\r
17 float phase: register(C3);\r
18 \r
19 /// <summary>Orientation of Grating</summary>\r
20 /// <minValue>0</minValue>\r
21 /// <maxValue>6.283184</maxValue>\r
22 /// <defaultValue>0</defaultValue>\r
23 float orientation: register(C4);\r
24 \r
25 /// <summary>Half bandwidth of envelope</summary>\r
26 /// <minValue>2</minValue>\r
27 /// <maxValue>8</maxValue>\r
28 /// <defaultValue>4</defaultValue>\r
29 float sigma : register(C5);\r
30 \r
31 /// <summary>Transparency of Figure</summary>\r
32 /// <minValue>0</minValue>\r
33 /// <maxValue>1</maxValue>\r
34 /// <defaultValue>1</defaultValue>\r
35 float alpha : register(C6);\r
36 \r
37 \r
38 float rp(float2 uv)\r
39 {\r
40         const float2 Center = float2(0.5,0.5);\r
41         float2 dir = uv - Center; // vector from center to pixel\r
42         float dist = length(dir);\r
43         //dir /= dist;\r
44         return dist;\r
45 }\r
46 \r
47 float4 main(float2 uv : TEXCOORD) : COLOR\r
48 //float4 main(float2 uv : VPOS ) : COLOR\r
49 {\r
50         //float _r = rp(uv)*sigma*4.0;\r
51         //float env = exp( -(_r*_r) / 2.0 ) * alpha;\r
52         float _r = rp(uv)*8;\r
53         float env = exp( -(_r*_r) / (2.0) ) * alpha;\r
54 \r
55         float _x = sin(orientation)*uv[0]-cos(orientation)*uv[1];\r
56         float l = 0.5+contrast*0.5*cos(frequency*_x + phase);\r
57         \r
58         float4 color = float4(l,l,l,1.0);\r
59         return color;\r
60 }\r