Text archives Help
- 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.