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