OSDN Git Service

shader
[psychlops/silverlight.git] / test4 / PsychlopsMain.cs
index c0b941a..9090e56 100644 (file)
@@ -1,4 +1,6 @@
-//Two types of plaid motion\r
+\r
+/*\r
+//Two types of plaid motion\r
 //E. H. Adelson and J. A. Movshon (1982).\r
 //Phenomenal coherence of moving visual patterns. Nature 300, 523-525\r
 \r
@@ -222,11 +224,10 @@ using Psychlops;
                }\r
        }\r
 }\r
+*/\r
 \r
 \r
 \r
-\r
-/*\r
 using Psychlops;\r
 //Position Bias Program\r
 namespace PsychlopsSilverlightApp\r
@@ -236,12 +237,14 @@ namespace PsychlopsSilverlightApp
     {\r
         Canvas cnvs;\r
         Image img, img2, img3;\r
-        int isize = 80;        \r
+        int isize = 40;        \r
         int frames;\r
         Psychlops.Widgets.Slider tfreq;\r
         Psychlops.Widgets.Slider contrast;\r
         Psychlops.Widgets.Slider lambda;\r
+               \r
 \r
+               \r
         public void psychlops_main()\r
         {\r
             cnvs = new Canvas(300, 600);\r
@@ -254,18 +257,34 @@ namespace PsychlopsSilverlightApp
             img2 = new Image(isize * 2, isize * 2);\r
             img3 = new Image(isize * 2, isize * 2);\r
 \r
+                       Figures.ShaderGabor[] gabor1 = StaticFunctions.NewArray<Figures.ShaderGabor>(100);\r
+                       foreach(var g in gabor1)\r
+                       {\r
+                               g.setSigma(isize / 8).centering().shift(Math.random(300) - 150, Math.random(600) - 300);\r
+                               g.orientation = Math.random(2*Math.PI);\r
+                       }\r
 \r
             while (true)\r
-            {\r
+                       {\r
                 cnvs.clear(new Color(0.5));\r
 \r
-                Figures.drawGabor(ref img, isize / 6, 1/lambda, contrast, 0.5 * Math.PI, (double)frames * 2.0 * Math.PI * tfreq / 60);\r
-                               Figures.drawGabor(ref img2, isize / 6, 1 / lambda, contrast, 0.5 * Math.PI, (double)frames * 2.0 * Math.PI * -tfreq / 60);\r
-                               Figures.drawGabor(ref img3, isize / 6, 1 / lambda, contrast, 0.5 * Math.PI, (double)frames * 2.0 * Math.PI * tfreq / 60);\r
+                Figures.drawGabor(ref img, isize / 8, 1/lambda, contrast, 0.5 * Math.PI, (double)frames * 2.0 * Math.PI * tfreq / 60);\r
+                               Figures.drawGabor(ref img2, isize / 8, 1 / lambda, contrast, 0.5 * Math.PI, (double)frames * 2.0 * Math.PI * -tfreq / 60);\r
+                               Figures.drawGabor(ref img3, isize / 8, 1 / lambda, contrast, 0.5 * Math.PI, (double)frames * 2.0 * Math.PI * tfreq / 60);\r
 \r
-                img.centering().shift(0, -isize * 1.5).draw();\r
-                img2.centering().draw();\r
-                img3.centering().shift(0, isize * 1.5).draw();\r
+\r
+                //img.centering().shift(0, -isize * 1.5).draw();\r
+                //img2.centering().draw();\r
+                //img3.centering().shift(0, isize * 1.5).draw();\r
+\r
+\r
+                               foreach (var g in gabor1)\r
+                               {\r
+                                       g.wavelength = lambda;\r
+                                       g.phase = (double)frames * 2.0 * Math.PI * tfreq / 60;\r
+                                       g.contrast = contrast;\r
+                                       g.draw();\r
+                               }\r
                 \r
                 if (!Mouse.left.pressed()) frames++;\r
 \r
@@ -274,5 +293,3 @@ namespace PsychlopsSilverlightApp
         }\r
     }\r
 }\r
-\r
-*/
\ No newline at end of file