Text archives Help
- From: arobison@sci.utah.edu
- To: manta@sci.utah.edu
- Subject: [Manta] r1716 - in trunk: Engine/Factory Engine/Renderers Interface Model/Cameras
- Date: Tue, 11 Sep 2007 01:15:48 -0600 (MDT)
Author: arobison
Date: Tue Sep 11 01:15:42 2007
New Revision: 1716
Modified:
trunk/Engine/Factory/RegisterKnownComponents.cc
trunk/Engine/Renderers/RayGen.cc
trunk/Engine/Renderers/Raytracer.cc
trunk/Interface/Camera.h
trunk/Model/Cameras/CMakeLists.txt
trunk/Model/Cameras/EnvironmentCamera.cc
trunk/Model/Cameras/EnvironmentCamera.h
trunk/Model/Cameras/FisheyeCamera.cc
trunk/Model/Cameras/FisheyeCamera.h
trunk/Model/Cameras/OrthogonalCamera.cc
trunk/Model/Cameras/OrthogonalCamera.h
trunk/Model/Cameras/PinholeCamera.cc
trunk/Model/Cameras/PinholeCamera.h
Log:
Changing Camera interface to take the RenderContext.
Adding a first cut thin lens camera, needs to be SSE-ified.
Give it a try with -camera "thinlens(-aperture .03)"
Modified: trunk/Engine/Factory/RegisterKnownComponents.cc
==============================================================================
--- trunk/Engine/Factory/RegisterKnownComponents.cc (original)
+++ trunk/Engine/Factory/RegisterKnownComponents.cc Tue Sep 11 01:15:42
2007
@@ -60,6 +60,7 @@
#include <Model/Cameras/PinholeCamera.h>
#include <Model/Cameras/OrthogonalCamera.h>
#include <Model/Cameras/FisheyeCamera.h>
+#include <Model/Cameras/ThinLensCamera.h>
#include <Model/Groups/GriddedGroup.h>
#include <Model/Groups/Group.h>
// #include <UserInterface/PromptUI.h>
@@ -120,6 +121,7 @@
//engine->registerComponent("environment", &EnvironmentCamera::create);
engine->registerComponent("pinhole", &PinholeCamera::create);
engine->registerComponent("orthogonal", &OrthogonalCamera::create);
+ engine->registerComponent("thinlens", &ThinLensCamera::create);
//engine->registerComponent("fisheye", &FisheyeCamera::create);
// Register shadow algorithms
Modified: trunk/Engine/Renderers/RayGen.cc
==============================================================================
--- trunk/Engine/Renderers/RayGen.cc (original)
+++ trunk/Engine/Renderers/RayGen.cc Tue Sep 11 01:15:42 2007
@@ -43,7 +43,7 @@
void RayGen::traceEyeRays(const RenderContext& context, RayPacket& rays)
{
ASSERT(rays.getFlag(RayPacket::HaveImageCoordinates));
- context.camera->makeRays(rays);
+ context.camera->makeRays(context, rays);
}
void RayGen::traceRays(const RenderContext&, RayPacket& rays)
Modified: trunk/Engine/Renderers/Raytracer.cc
==============================================================================
--- trunk/Engine/Renderers/Raytracer.cc (original)
+++ trunk/Engine/Renderers/Raytracer.cc Tue Sep 11 01:15:42 2007
@@ -41,7 +41,7 @@
void Raytracer::traceEyeRays(const RenderContext& context, RayPacket& rays)
{
ASSERT(rays.getFlag(RayPacket::HaveImageCoordinates));
- context.camera->makeRays(rays);
+ context.camera->makeRays(context, rays);
rays.initializeImportance();
traceRays(context, rays);
}
Modified: trunk/Interface/Camera.h
==============================================================================
--- trunk/Interface/Camera.h (original)
+++ trunk/Interface/Camera.h Tue Sep 11 01:15:42 2007
@@ -13,6 +13,7 @@
namespace Manta {
class PreprocessContext;
+ class RenderContext;
class RayPacket;
class BasicCameraData {
@@ -47,7 +48,7 @@
Camera();
virtual ~Camera();
virtual void preprocess(const PreprocessContext& context) {};
- virtual void makeRays(RayPacket&) const = 0;
+ virtual void makeRays(const RenderContext& context, RayPacket&) const =
0;
// Camera manipulation
virtual void scaleFOV(Real) = 0;
Modified: trunk/Model/Cameras/CMakeLists.txt
==============================================================================
--- trunk/Model/Cameras/CMakeLists.txt (original)
+++ trunk/Model/Cameras/CMakeLists.txt Tue Sep 11 01:15:42 2007
@@ -8,4 +8,6 @@
Cameras/OrthogonalCamera.cc
Cameras/FisheyeCamera.h
Cameras/FisheyeCamera.cc
+ Cameras/ThinLensCamera.h
+ Cameras/ThinLensCamera.cc
)
Modified: trunk/Model/Cameras/EnvironmentCamera.cc
==============================================================================
--- trunk/Model/Cameras/EnvironmentCamera.cc (original)
+++ trunk/Model/Cameras/EnvironmentCamera.cc Tue Sep 11 01:15:42 2007
@@ -137,7 +137,7 @@
v=-v;
}
-void EnvironmentCamera::makeRays(RayPacket& rays) const
+void EnvironmentCamera::makeRays(const RenderContext& context, RayPacket&
rays) const
{
ASSERT(rays.getAllFlags() & RayPacket::HaveImageCoordinates);
rays.setFlag(RayPacket::ConstantOrigin);
Modified: trunk/Model/Cameras/EnvironmentCamera.h
==============================================================================
--- trunk/Model/Cameras/EnvironmentCamera.h (original)
+++ trunk/Model/Cameras/EnvironmentCamera.h Tue Sep 11 01:15:42 2007
@@ -20,7 +20,7 @@
virtual ~EnvironmentCamera();
virtual void preprocess(const PreprocessContext& context);
- virtual void makeRays(RayPacket&) const;
+ virtual void makeRays(const RenderContext& context, RayPacket&) const;
// Camera manipulation
virtual void scaleFOV(Real);
Modified: trunk/Model/Cameras/FisheyeCamera.cc
==============================================================================
--- trunk/Model/Cameras/FisheyeCamera.cc (original)
+++ trunk/Model/Cameras/FisheyeCamera.cc Tue Sep 11 01:15:42 2007
@@ -113,7 +113,7 @@
u.normalize();
}
-void FisheyeCamera::makeRays(RayPacket& rays) const
+void FisheyeCamera::makeRays(const RenderContext& context, RayPacket& rays)
const
{
ASSERT(rays.getFlag(RayPacket::HaveImageCoordinates) );
rays.setFlag(RayPacket::ConstantOrigin|RayPacket::NormalizedDirections);
Modified: trunk/Model/Cameras/FisheyeCamera.h
==============================================================================
--- trunk/Model/Cameras/FisheyeCamera.h (original)
+++ trunk/Model/Cameras/FisheyeCamera.h Tue Sep 11 01:15:42 2007
@@ -22,7 +22,7 @@
virtual ~FisheyeCamera();
virtual void preprocess(const PreprocessContext& context);
- virtual void makeRays(RayPacket&) const;
+ virtual void makeRays(const RenderContext& context, RayPacket&) const;
// Camera manipulation
virtual void scaleFOV(Real);
Modified: trunk/Model/Cameras/OrthogonalCamera.cc
==============================================================================
--- trunk/Model/Cameras/OrthogonalCamera.cc (original)
+++ trunk/Model/Cameras/OrthogonalCamera.cc Tue Sep 11 01:15:42 2007
@@ -101,7 +101,7 @@
v*=hscale;
}
-void OrthogonalCamera::makeRays(RayPacket& rays) const
+void OrthogonalCamera::makeRays(const RenderContext& context, RayPacket&
rays) const
{
ASSERT(rays.getFlag(RayPacket::HaveImageCoordinates));
Modified: trunk/Model/Cameras/OrthogonalCamera.h
==============================================================================
--- trunk/Model/Cameras/OrthogonalCamera.h (original)
+++ trunk/Model/Cameras/OrthogonalCamera.h Tue Sep 11 01:15:42 2007
@@ -11,6 +11,7 @@
namespace Manta {
using namespace std;
+
class OrthogonalCamera : public Camera {
public:
OrthogonalCamera(const Vector& eye_, const Vector& lookat_,
@@ -18,7 +19,7 @@
OrthogonalCamera(const vector<string>& args);
virtual void preprocess(const PreprocessContext& context);
virtual ~OrthogonalCamera();
- virtual void makeRays(RayPacket&) const;
+ virtual void makeRays(const RenderContext& context, RayPacket&) const;
// Camera manipulation
virtual void scaleFOV(Real);
Modified: trunk/Model/Cameras/PinholeCamera.cc
==============================================================================
--- trunk/Model/Cameras/PinholeCamera.cc (original)
+++ trunk/Model/Cameras/PinholeCamera.cc Tue Sep 11 01:15:42 2007
@@ -152,7 +152,7 @@
}
-void PinholeCamera::makeRays(RayPacket& rays) const
+void PinholeCamera::makeRays(const RenderContext& context, RayPacket& rays)
const
{
ASSERT(rays.getFlag(RayPacket::HaveImageCoordinates));
ASSERT(rays.getFlag(RayPacket::ConstantEye));
Modified: trunk/Model/Cameras/PinholeCamera.h
==============================================================================
--- trunk/Model/Cameras/PinholeCamera.h (original)
+++ trunk/Model/Cameras/PinholeCamera.h Tue Sep 11 01:15:42 2007
@@ -20,7 +20,7 @@
PinholeCamera(const vector<string>& args);
virtual ~PinholeCamera();
virtual void preprocess(const PreprocessContext& context);
- virtual void makeRays(RayPacket&) const;
+ virtual void makeRays(const RenderContext& context, RayPacket&) const;
// Camera manipulation
virtual void scaleFOV(Real);
- [Manta] r1716 - in trunk: Engine/Factory Engine/Renderers Interface Model/Cameras, arobison, 09/11/2007
Archive powered by MHonArc 2.6.16.