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); }
public void Init(SceneGeometryInfo scene, IMaterialProvider materialProvider, TriangleMesh[] geometry) { this.sceneGeometry = scene; this.geometry = geometry; }