public bool ContainsLight(string lightId) { if (Lights == null) { return(false); } return(Lights.Any(l => l.Equals(lightId))); }
public bool HasResolved() { //check that every point of light is adjacent to at least one other return(Lights.All(x => Lights.Any(y => y.IsAdjacent(x)))); }
public Integrator MakeIntegrator(PbrtOptions options) { Camera camera = MakeCamera(options); if (camera == null) { //Error("Unable to create camera"); return(null); } Sampler sampler = PbrtApi.MakeSampler(SamplerName, SamplerParams, camera.Film); if (sampler == null) { //Error("Unable to create sampler."); return(null); } Integrator integrator = null; switch (IntegratorName) { case "whitted": integrator = WhittedIntegrator.Create(IntegratorParams, sampler, camera); break; //case "directlighting": // integrator = // CreateDirectLightingIntegrator(IntegratorParams, sampler, camera); // break; //case "path": // integrator = CreatePathIntegrator(IntegratorParams, sampler, camera); // break; //case "volpath": // integrator = CreateVolPathIntegrator(IntegratorParams, sampler, camera); // break; //case "bdpt": // integrator = CreateBDPTIntegrator(IntegratorParams, sampler, camera); // break; //case "mlt": // integrator = CreateMLTIntegrator(IntegratorParams, camera); // break; //case "ambientocclusion": // integrator = CreateAOIntegrator(IntegratorParams, sampler, camera); // break; //case "sppm": // integrator = CreateSPPMIntegrator(IntegratorParams, camera); // break; default: //Error("Integrator \"%s\" unknown.", IntegratorName.c_str()); return(null); } if (HasScatteringMedia && IntegratorName != "volpath" && IntegratorName != "bdpt" && IntegratorName != "mlt") { //Warning( // "Scene has scattering media but \"%s\" integrator doesn't support " // "volume scattering. Consider using \"volpath\", \"bdpt\", or " // "\"mlt\".", IntegratorName.c_str()); } IntegratorParams.ReportUnused(); // Warn if no light sources are defined if (!Lights.Any()) { //Warning( // "No light sources defined in scene; " //"rendering a black image."); } return(integrator); }