Manta Interactive Ray Tracer Development Mailing List

Text archives Help


[Manta] r1949 - trunk/Engine/ImageTraversers


Chronological Thread 
  • From: arobison@sci.utah.edu
  • To: manta@sci.utah.edu
  • Subject: [Manta] r1949 - trunk/Engine/ImageTraversers
  • Date: Thu, 27 Dec 2007 14:57:15 -0700 (MST)

Author: arobison
Date: Thu Dec 27 14:57:13 2007
New Revision: 1949

Modified:
   trunk/Engine/ImageTraversers/DeadlineImageTraverser.cc
   trunk/Engine/ImageTraversers/DeadlineImageTraverser.h
Log:
Added support for refining a specific region of the image independent of 
priority mode.  Use setRenderRegion(int,int,int,int) to specify the window 
and 
useRenderRegion(bool) to toggle it on and off.


Modified: trunk/Engine/ImageTraversers/DeadlineImageTraverser.cc
==============================================================================
--- trunk/Engine/ImageTraversers/DeadlineImageTraverser.cc      (original)
+++ trunk/Engine/ImageTraversers/DeadlineImageTraverser.cc      Thu Dec 27 
14:57:13 2007
@@ -77,6 +77,7 @@
   converged = false;
   ShowTimeSupersample = false;
   FIFO_cutoff = 1.f;
+  use_render_region = false;
 
   float frameRate = 15;
   ypacketsize = 1;
@@ -673,6 +674,17 @@
 
 void DeadlineImageTraverser::computePriority(Tile* tile, const Fragment& 
frag) const
 {
+  // set the priority of tiles outside the render region to zero
+  if(use_render_region) {
+    if( tile->xstart < render_region.xstart ||
+        tile->ystart < render_region.ystart ||
+        tile->xend   > render_region.xend   ||
+        tile->yend   > render_region.yend ) {
+      tile->priority = 0;
+      return;
+    } 
+  }
+
   switch(priority) {
   case LuminanceVariance:
     tile->priority = computeLuminancePriority(tile, frag);

Modified: trunk/Engine/ImageTraversers/DeadlineImageTraverser.h
==============================================================================
--- trunk/Engine/ImageTraversers/DeadlineImageTraverser.h       (original)
+++ trunk/Engine/ImageTraversers/DeadlineImageTraverser.h       Thu Dec 27 
14:57:13 2007
@@ -64,6 +64,15 @@
 
     static ImageTraverser* create(const vector<string>& args);
     static const int kNumJitterLevels = 5; // This provides 4, 16, 64, and 
256 spp
+
+    void setRenderRegion(int xstart, int ystart, int xend, int yend) {
+      render_region.xstart = xstart;
+      render_region.ystart = ystart;
+      render_region.xend = xend;
+      render_region.yend = yend;
+    }
+    void useRenderRegion(bool use) { use_render_region = use; }
+
   private:
     DeadlineImageTraverser(const DeadlineImageTraverser&);
     DeadlineImageTraverser& operator=(const DeadlineImageTraverser&);
@@ -107,6 +116,16 @@
     };
     PriorityScheme priority;
     float FIFO_cutoff;
+
+    struct Region
+    {
+      int xstart;
+      int ystart;
+      int xend;
+      int yend;
+    };
+    bool use_render_region;
+    Region render_region;
 
     void insertIntoQueue(Tile* tile, size_t thread_id);
     void insertIntoQueue(vector<Tile*>& tiles, size_t thread_id);




  • [Manta] r1949 - trunk/Engine/ImageTraversers, arobison, 12/27/2007

Archive powered by MHonArc 2.6.16.

Top of page