Manta Interactive Ray Tracer Development Mailing List

Text archives Help


[MANTA] r836 - in trunk/fox/disco_demo: Engine/ImageTraversers Engine/Shaders StandAlone


Chronological Thread 
  • From: abe@sci.utah.edu
  • To: manta@sci.utah.edu
  • Subject: [MANTA] r836 - in trunk/fox/disco_demo: Engine/ImageTraversers Engine/Shaders StandAlone
  • Date: Tue, 10 Jan 2006 22:05:22 -0700 (MST)

Author: abe
Date: Tue Jan 10 22:05:22 2006
New Revision: 836

Modified:
   trunk/fox/disco_demo/Engine/ImageTraversers/DiscoImageTraverser.cc
   trunk/fox/disco_demo/Engine/Shaders/AOShader.cc
   trunk/fox/disco_demo/StandAlone/disco_demo.cc
Log:

Incremental change that I forgot to add last night. Increased sampling from 
3x to 9x for a 3x3 filter :-)

M    fox/disco_demo/Engine/ImageTraversers/DiscoImageTraverser.cc
M    fox/disco_demo/Engine/Shaders/AOShader.cc
M    fox/disco_demo/StandAlone/disco_demo.cc


Modified: trunk/fox/disco_demo/Engine/ImageTraversers/DiscoImageTraverser.cc
==============================================================================
--- trunk/fox/disco_demo/Engine/ImageTraversers/DiscoImageTraverser.cc  
(original)
+++ trunk/fox/disco_demo/Engine/ImageTraversers/DiscoImageTraverser.cc  Tue 
Jan 10 22:05:22 2006
@@ -173,9 +173,9 @@
           t.tiley = y;
           t.overlap =
             (x<0 || x>=xtilesize) ||
-            (y<0 || y>=ytilesize);
+            (y<0 || y>=ytilesize) ;
           
-          t.task = (total_elements++)%kernel_width;
+          // t.task = (total_elements++)%kernel_width;
 
           
/////////////////////////////////////////////////////////////////////
           // Initialize the ray packet element

Modified: trunk/fox/disco_demo/Engine/Shaders/AOShader.cc
==============================================================================
--- trunk/fox/disco_demo/Engine/Shaders/AOShader.cc     (original)
+++ trunk/fox/disco_demo/Engine/Shaders/AOShader.cc     Tue Jan 10 22:05:22 
2006
@@ -183,6 +183,10 @@
   Vector U[RayPacket::MaxSize];
   Vector W[RayPacket::MaxSize];
 
+  int kernel_size = kernel_width*kernel_width;
+  int overlap = (kernel_width-1)/2;
+  int task_size = total_directions / kernel_size;
+  
   for (int i=0;i<packet.getSize();++i) {
 
     RayPacket::Element &e = packet.get(i);
@@ -210,7 +214,6 @@
     
   ///////////////////////////////////////////////////////////////////////////
   // Decide which directions to shoot based on TilePacket element task id.
-  int task_size = total_directions / kernel_width;
     
   for (int i=0;i<packet.getSize();++i) {
     TilePacket::Element &p = packet.getTilePacketElement( i );
@@ -218,7 +221,11 @@
 
     if (e.hitInfo.wasHit()) {
 
-      int d     = p.task*task_size;
+      int task =
+        ((p.tilex+overlap)%kernel_width) +
+        ((p.tiley+overlap)%kernel_width) * kernel_width;
+      
+      int d     = task*task_size;
       int d_end = d+task_size;
 
       Real total_hit  = 0.0;
@@ -351,13 +358,16 @@
               // Sum up all of the neighbors.
               sum += hit_ratio * filter_value;
             }
+
             
           }
         }
 
+        sum = p.scratch_pad<DiscoInfo>().hit_ratio;
+        
         // Color the pixel
         sum = 1.0 - sum;
-        e.color = /*e.color **/ Color(RGB(sum,sum,sum));
+        e.color = Color(RGB(sum,sum,sum));
       }
       else {
         // Background color.

Modified: trunk/fox/disco_demo/StandAlone/disco_demo.cc
==============================================================================
--- trunk/fox/disco_demo/StandAlone/disco_demo.cc       (original)
+++ trunk/fox/disco_demo/StandAlone/disco_demo.cc       Tue Jan 10 22:05:22 
2006
@@ -165,7 +165,7 @@
     // DepthSampleShader *sample_shader = new DepthSampleShader;
     // DepthNeighborhoodShader *neighborhood_shader = new 
DepthNeighborhoodShader;
 
-    int ambient_rays = 9;
+    int ambient_rays = 1;
     Real ambient_cutoff = 10.0;
     int tilex = 8;
     int tiley = 8;
@@ -186,8 +186,10 @@
         kernel_width = atoi( argv[++i] );
       }
     };
+
+    int kernel_size = kernel_width*kernel_width;
     
-    PerSampleShader *sample_shader = new AOSampleShader( kernel_width, 
ambient_rays, ambient_cutoff );
+    PerSampleShader *sample_shader = new AOSampleShader( kernel_width, 
ambient_rays*kernel_size, ambient_cutoff );
     NeighborhoodShader *neighborhood_shader = new AONeighborhoodShader( 
kernel_width );
 
     DiscoRayTracer *disco_renderer = new DiscoRayTracer( sample_shader );    




  • [MANTA] r836 - in trunk/fox/disco_demo: Engine/ImageTraversers Engine/Shaders StandAlone, abe, 01/10/2006

Archive powered by MHonArc 2.6.16.

Top of page