Manta Interactive Ray Tracer Development Mailing List

Text archives Help


[Manta] r1808 - trunk/scenes


Chronological Thread 
  • From: kmorley@sci.utah.edu
  • To: manta@sci.utah.edu
  • Subject: [Manta] r1808 - trunk/scenes
  • Date: Sat, 3 Nov 2007 10:44:35 -0600 (MDT)

Author: kmorley
Date: Sat Nov  3 10:44:34 2007
New Revision: 1808

Added:
   trunk/scenes/hdritest.cc
Log:
Initial support for EXR

Added: trunk/scenes/hdritest.cc
==============================================================================
--- (empty file)
+++ trunk/scenes/hdritest.cc    Sat Nov  3 10:44:34 2007
@@ -0,0 +1,106 @@
+#include <Interface/Scene.h>
+#include <Interface/LightSet.h>
+
+#include <Model/Groups/DynBVH.h>
+
+
+#include <Model/Materials/Checker.h>
+#include <Model/Materials/CopyTextureMaterial.h>
+#include <Model/Materials/Dielectric.h>
+#include <Model/Materials/Lambertian.h>
+#include <Model/Materials/MetalMaterial.h>
+#include <Model/Materials/Phong.h>
+
+#include <Model/Textures/Constant.h>
+#include <Model/Textures/MarbleTexture.h>
+#include <Model/Textures/ImageTexture.h>
+#include <Model/Backgrounds/EnvMapBackground.h>
+
+#include <Model/Primitives/Cube.h>
+#include <Model/Primitives/Sphere.h>
+#include <Model/Primitives/Parallelogram.h>
+#include <Model/Instances/Instance.h>
+#include <Model/Instances/InstanceRT.h>
+#include <Model/Instances/InstanceRST.h>
+#include <Model/Instances/InstanceST.h>
+#include <Model/Instances/InstanceT.h>
+
+
+#include <Model/Backgrounds/ConstantBackground.h>
+#include <Model/Lights/PointLight.h>
+#include <Model/AmbientLights/ConstantAmbient.h>
+
+#include <Core/Exceptions/IllegalArgument.h>
+#include <Core/Exceptions/IllegalValue.h>
+#include <Core/Util/Args.h>
+
+#include <iostream>
+
+using namespace Manta;
+
+#define Rect(material, center, dir1, dir2) \
+  Parallelogram(material, (center) - (dir1) - (dir2), (dir1)*2, (dir2)*2)
+
+
+void addSphere(Group* group)
+{
+  Material* metal = new MetalMaterial( Color( RGB(0.3, 0.3, 0.3) ), 10 );
+
+  Object* sphere = new Sphere( metal, Vector(0,0,0), 1.0f );
+
+  group->add(sphere);
+}
+
+void addLights( LightSet* lights)
+{
+  lights->add( new PointLight( Vector(0, 0, 30) , Color( RGB(0.8,0.8,0.8) ) 
) );
+}
+
+
+extern "C"
+Scene* make_scene(const ReadContext&, const vector<string>& args)
+{
+
+  std::string env_filename = "";
+  for(size_t i = 0; i < args.size(); ++i) {
+    std::string arg = args[i];
+    env_filename = arg;
+  }
+
+  Vector up( 0.0f, 1.0f, 0.0f );
+  Vector right( 1.0f, 0.0f, 0.0f );
+
+  // Start adding geometry
+  Group* all   = new Group();
+  Scene* scene = new Scene();
+
+
+  if ( !env_filename.empty() ) {
+    ImageTexture<Color>* t = LoadColorImageTexture( env_filename, &std::cerr 
);
+
+    scene->setBackground( new EnvMapBackground( t, 
+          EnvMapBackground::CylindricalEqualArea, right, up ) );
+  } else {
+    scene->setBackground( new ConstantBackground( Color(RGB(.3, .3, .9) ) ) 
);
+  }
+
+
+  addSphere(all);
+  scene->setObject(all);
+
+  LightSet* lights = new LightSet();
+  addLights( lights );
+  
+  lights->setAmbientLight(new ConstantAmbient( Color( RGB(0.5, 0.5, 0) ) ) );
+
+  scene->setLights(lights);
+
+  // Add a default camera
+  Vector eye(0,0,10);
+  Vector lookat(0,0,0);
+  Real   fov=45;
+  scene->addBookmark("default view", eye, lookat, up, fov, fov);
+
+  return scene;
+}
+




  • [Manta] r1808 - trunk/scenes, kmorley, 11/03/2007

Archive powered by MHonArc 2.6.16.

Top of page