Text archives Help
- From: boulos@sci.utah.edu
- To: manta@sci.utah.edu
- Subject: [Manta] r1788 - in trunk: Engine/Control Engine/SampleGenerators Interface Model/Primitives
- Date: Mon, 22 Oct 2007 20:00:56 -0600 (MDT)
Author: boulos
Date: Mon Oct 22 20:00:32 2007
New Revision: 1788
Added:
trunk/Engine/SampleGenerators/UniformRandomGenerator.cc
trunk/Engine/SampleGenerators/UniformRandomGenerator.h
Modified:
trunk/Engine/Control/RTRT.cc
trunk/Engine/SampleGenerators/CMakeLists.txt
trunk/Engine/SampleGenerators/ConstantSampleGenerator.cc
trunk/Engine/SampleGenerators/ConstantSampleGenerator.h
trunk/Interface/SampleGenerator.h
trunk/Model/Primitives/Parallelogram.cc
Log:
Interface/SampleGenerator.h
Engine/SampleGenerators/ConstantSampleGenerator.cc
Engine/SampleGenerators/ConstantSampleGenerator.h
Modifying SampleGenerator interface to take the RenderContext as
input when requesting random numbers. This allows SampleGenerators to
use the builtin RandomNumberGenerator classes chosen earlier.
Engine/SampleGenerators/CMakeLists.txt
Engine/SampleGenerators/UniformRandomGenerator.cc
Engine/SampleGenerators/UniformRandomGenerator.h
Adding a new "purely random" UniformRandomGenerator that just returns
random seeds.
Engine/Control/RTRT.cc
Using the UniformRandomGenerator by default (mimics old behavior)
Model/Primitives/Parallelogram.cc
Updating Parallelogram to use the SampleGenerator instead of RNG
directly.
Modified: trunk/Engine/Control/RTRT.cc
==============================================================================
--- trunk/Engine/Control/RTRT.cc (original)
+++ trunk/Engine/Control/RTRT.cc Mon Oct 22 20:00:32 2007
@@ -80,6 +80,7 @@
// allow us to discuss the interface (so that I don't have to do all
// the Factory work just yet)
#include <Engine/SampleGenerators/ConstantSampleGenerator.h>
+#include <Engine/SampleGenerators/UniformRandomGenerator.h>
#include <queue>
@@ -171,7 +172,8 @@
create_rng = Callback::create(&MT_RNG::create);
#endif
- currentSampleGenerator = new ConstantSampleGenerator(0.f);
+ //currentSampleGenerator = new ConstantSampleGenerator(0.f);
+ currentSampleGenerator = new UniformRandomGenerator();
}
RTRT::~RTRT()
Modified: trunk/Engine/SampleGenerators/CMakeLists.txt
==============================================================================
--- trunk/Engine/SampleGenerators/CMakeLists.txt (original)
+++ trunk/Engine/SampleGenerators/CMakeLists.txt Mon Oct 22 20:00:32
2007
@@ -1,4 +1,6 @@
SET (Manta_SampleGenerators_SRCS
SampleGenerators/ConstantSampleGenerator.h
SampleGenerators/ConstantSampleGenerator.cc
+ SampleGenerators/UniformRandomGenerator.h
+ SampleGenerators/UniformRandomGenerator.cc
)
Modified: trunk/Engine/SampleGenerators/ConstantSampleGenerator.cc
==============================================================================
--- trunk/Engine/SampleGenerators/ConstantSampleGenerator.cc (original)
+++ trunk/Engine/SampleGenerators/ConstantSampleGenerator.cc Mon Oct 22
20:00:32 2007
@@ -21,7 +21,7 @@
void ConstantSampleGenerator::setupPacket(const RenderContext& context,
RayPacket& rays) {
}
-void ConstantSampleGenerator::nextSeeds(Packet<float>& results, RayPacket&
rays) {
+void ConstantSampleGenerator::nextSeeds(const RenderContext& context,
Packet<float>& results, RayPacket& rays) {
#ifdef MANTA_SSE
int b = (rays.rayBegin + 3) & (~3);
int e = (rays.rayEnd) & (~3);
@@ -49,7 +49,7 @@
#endif // MANTA_SSE
}
-void ConstantSampleGenerator::nextSeeds(Packet<double>& results, RayPacket&
rays) {
+void ConstantSampleGenerator::nextSeeds(const RenderContext& context,
Packet<double>& results, RayPacket& rays) {
for (int i = rays.begin(); i < rays.end(); i++) {
results.set(i, sample_value);
}
Modified: trunk/Engine/SampleGenerators/ConstantSampleGenerator.h
==============================================================================
--- trunk/Engine/SampleGenerators/ConstantSampleGenerator.h (original)
+++ trunk/Engine/SampleGenerators/ConstantSampleGenerator.h Mon Oct 22
20:00:32 2007
@@ -15,8 +15,8 @@
virtual void setupPacket(const RenderContext& context, RayPacket& rays);
- virtual void nextSeeds(Packet<float>& results, RayPacket& rays);
- virtual void nextSeeds(Packet<double>& results, RayPacket& rays);
+ virtual void nextSeeds(const RenderContext& context, Packet<float>&
results, RayPacket& rays);
+ virtual void nextSeeds(const RenderContext& context, Packet<double>&
results, RayPacket& rays);
float sample_value;
};
Added: trunk/Engine/SampleGenerators/UniformRandomGenerator.cc
==============================================================================
--- (empty file)
+++ trunk/Engine/SampleGenerators/UniformRandomGenerator.cc Mon Oct 22
20:00:32 2007
@@ -0,0 +1,34 @@
+#include <Engine/SampleGenerators/UniformRandomGenerator.h>
+#include <Interface/Context.h>
+#include <Interface/RandomNumberGenerator.h>
+#include <Interface/RayPacket.h>
+
+
+
+using namespace Manta;
+
+UniformRandomGenerator::UniformRandomGenerator() {
+}
+
+UniformRandomGenerator::~UniformRandomGenerator() {
+}
+
+void UniformRandomGenerator::setupBegin(const SetupContext&, int
numChannels) {
+}
+
+void UniformRandomGenerator::setupDisplayChannel(SetupContext& context) {
+}
+
+void UniformRandomGenerator::setupFrame(const RenderContext& context) {
+}
+
+void UniformRandomGenerator::setupPacket(const RenderContext& context,
RayPacket& rays) {
+}
+
+void UniformRandomGenerator::nextSeeds(const RenderContext& context,
Packet<float>& results, RayPacket& rays) {
+ context.rng->nextPacket(results, rays);
+}
+
+void UniformRandomGenerator::nextSeeds(const RenderContext& context,
Packet<double>& results, RayPacket& rays) {
+ context.rng->nextPacket(results, rays);
+}
Added: trunk/Engine/SampleGenerators/UniformRandomGenerator.h
==============================================================================
--- (empty file)
+++ trunk/Engine/SampleGenerators/UniformRandomGenerator.h Mon Oct 22
20:00:32 2007
@@ -0,0 +1,23 @@
+#ifndef MANTA_ENGINE_SAMPLEGENERATORS_UNIFORM_RANDOM_GENERATOR_H_
+#define MANTA_ENGINE_SAMPLEGENERATORS_UNIFORM_RANDOM_GENERATOR_H_
+
+#include <Interface/SampleGenerator.h>
+
+namespace Manta {
+ class UniformRandomGenerator : public SampleGenerator {
+ public:
+ UniformRandomGenerator();
+ ~UniformRandomGenerator();
+
+ virtual void setupBegin(const SetupContext&, int numChannels);
+ virtual void setupDisplayChannel(SetupContext& context);
+ virtual void setupFrame(const RenderContext& context);
+
+ virtual void setupPacket(const RenderContext& context, RayPacket& rays);
+
+ virtual void nextSeeds(const RenderContext& context, Packet<float>&
results, RayPacket& rays);
+ virtual void nextSeeds(const RenderContext& context, Packet<double>&
results, RayPacket& rays);
+ };
+} // end namespace Manta
+
+#endif // MANTA_ENGINE_SAMPLEGENERATORS_UNIFORM_RANDOM_GENERATOR_H_
Modified: trunk/Interface/SampleGenerator.h
==============================================================================
--- trunk/Interface/SampleGenerator.h (original)
+++ trunk/Interface/SampleGenerator.h Mon Oct 22 20:00:32 2007
@@ -32,8 +32,8 @@
virtual void setupPacket(const RenderContext& context, RayPacket& rays)
= 0;
// Grab a set of random seeds (float and double versions)
- virtual void nextSeeds(Packet<float>& results, RayPacket& rays) = 0;
- virtual void nextSeeds(Packet<double>& results, RayPacket& rays) = 0;
+ virtual void nextSeeds(const RenderContext& context, Packet<float>&
results, RayPacket& rays) = 0;
+ virtual void nextSeeds(const RenderContext& context, Packet<double>&
results, RayPacket& rays) = 0;
};
} // end namespace Manta
Modified: trunk/Model/Primitives/Parallelogram.cc
==============================================================================
--- trunk/Model/Primitives/Parallelogram.cc (original)
+++ trunk/Model/Primitives/Parallelogram.cc Mon Oct 22 20:00:32 2007
@@ -5,7 +5,7 @@
#include <MantaSSE.h>
#include <Core/Math/SSEDefs.h>
#include <Interface/Context.h>
-#include <Interface/RandomNumberGenerator.h>
+#include <Interface/SampleGenerator.h>
using namespace Manta;
using SCIRun::Abs;
@@ -568,8 +568,8 @@
// TODO(boulos): Change this code to only do work for active rays
Packet<Real> r1;
Packet<Real> r2;
- context.rng->nextPacket(r1, rays);
- context.rng->nextPacket(r2, rays);
+ context.sample_generator->nextSeeds(context, r1, rays);
+ context.sample_generator->nextSeeds(context, r2, rays);
#ifdef MANTA_SSE
for (int i = 0; i < Packet<Vector>::MaxSize; i+=4) {
- [Manta] r1788 - in trunk: Engine/Control Engine/SampleGenerators Interface Model/Primitives, boulos, 10/22/2007
Archive powered by MHonArc 2.6.16.