Exemplo n.º 1
0
 public SceneManager(TriangleMesh[] geometry, SceneGeometryInfo sceneGeometry, MaterialInfo[] mats)
 {
     this.sceneGeometry = sceneGeometry;
     this.geometry = geometry;
     this.materials = mats.ToDictionary(item => item.Name.ToLower());
     var acc =
         //new OctreeAcceleration();
         //new BVHAccellerationStructure();
         //new BoundingVolumeHierarchyAcceleration();
         //new BottomUpBvhAccelleration();
         //new LinearBvhAccelleration();
         //new TopDownBvhAccell();
         new BoundingVolumeHierarchyAccelerationStructure();
     //new BruteForceAccellerationStructure();
     //new BspAccellerationStructure();
     acc.Init(sceneGeometry, this, geometry);
     this.accel = acc;
     this.lights = new List<ILight>();
     this.defaultMaterial = new MaterialInfo() { Kd = new RgbSpectrum(0.6f) };
     Console.WriteLine("Using {0} ", accel.GetType().Name);
 }
Exemplo n.º 2
0
 public void Init(SceneGeometryInfo scene, IMaterialProvider materialProvider, TriangleMesh[] geometry)
 {
     this.sceneGeometry = scene;
     this.geometry = geometry;
 }