Beispiel #1
0
        public Scene MakeScene()
        {
            Primitive accelerator =
                PbrtApi.MakeAccelerator(AcceleratorName, Primitives, AcceleratorParams);

            if (accelerator == null)
            {
                accelerator = new BvhAccelerator(Primitives);
            }
            Scene scene = new Scene(accelerator, Lights);

            // Erase primitives and lights from _RenderOptions_
            Primitives.Clear();
            Lights.Clear();
            return(scene);
        }
Beispiel #2
0
        public static Primitive MakeAccelerator(string name, IEnumerable <Primitive> prims, ParamSet paramSet)
        {
            Primitive accel = null;

            switch (name)
            {
            case "bvh":
                accel = BvhAccelerator.Create(prims, paramSet);
                break;

            //case "kdtree":
            //  accel = CreateKdTreeAccelerator(prims, paramSet);
            //  break;
            default:
                //Warning("Accelerator \"%s\" unknown.", name.c_str());
                break;
            }

            paramSet.ReportUnused();
            return(accel);
        }