void fromJson(JsonPtr v) { TraceSettings::fromJson(v); v.getField("initial_sample_pool", initialSamplePool); v.getField("image_pyramid", imagePyramid); v.getField("large_step_probability", largeStepProbability); }
void ConductorBsdf::fromJson(JsonPtr value, const Scene &scene) { Bsdf::fromJson(value, scene); if (value.getField("eta", _eta) && value.getField("k", _k)) _materialName.clear(); if (value.getField("material", _materialName) && !lookupMaterial()) value.parseError(tfm::format("Unable to find material with name '%s'", _materialName)); }
void ThinSheetBsdf::fromJson(JsonPtr value, const Scene &scene) { Bsdf::fromJson(value, scene); value.getField("ior", _ior); value.getField("enable_interference", _enableInterference); value.getField("sigma_a", _sigmaA); if (auto thickness = value["thickness"]) _thickness = scene.fetchTexture(thickness, TexelConversion::REQUEST_AVERAGE); }
void RoughPlasticBsdf::fromJson(JsonPtr value, const Scene &scene) { Bsdf::fromJson(value, scene); value.getField("ior", _ior); _distribution = value["distribution"]; value.getField("thickness", _thickness); value.getField("sigma_a", _sigmaA); if (auto roughness = value["roughness"]) _roughness = scene.fetchTexture(roughness, TexelConversion::REQUEST_AVERAGE); }
ModelRef(JsonPtr value, ModelResolver &resolver) : _xRot(0), _yRot(0), _zRot(0), _uvLock(false), _weight(1.0f) { value.getField("model", _modelPath); value.getField("x", _xRot); value.getField("y", _yRot); value.getField("z", _zRot); value.getField("uvlock", _uvLock); value.getField("weight", _weight); _builtModel = resolver.resolveModel("block/" + _modelPath); }
void Camera::fromJson(JsonPtr value, const Scene &scene) { _tonemapOp = value["tonemap"]; value.getField("resolution", _res); if (auto medium = value["medium"]) _medium = scene.fetchMedium(medium); if (auto filter = value["reconstruction_filter"]) _filter = filter; if (auto transform = value["transform"]) { transform.get(_transform); _pos = _transform.extractTranslationVec(); _lookAt = _transform.fwd() + _pos; _up = _transform.up(); transform.getField("up", _up); transform.getField("look_at", _lookAt); _transform.setRight(-_transform.right()); } precompute(); }
void Primitive::fromJson(JsonPtr value, const Scene &scene) { JsonSerializable::fromJson(value, scene); value.getField("transform", _transform); if (auto emission = value["emission"]) _emission = scene.fetchTexture(emission, TexelConversion::REQUEST_RGB); if (auto power = value["power" ]) _power = scene.fetchTexture(power, TexelConversion::REQUEST_RGB); if (auto intMedium = value["int_medium"]) _intMedium = scene.fetchMedium(intMedium); if (auto extMedium = value["ext_medium"]) _extMedium = scene.fetchMedium(extMedium); }
void fromJson(JsonPtr v) { TraceSettings::fromJson(v); v.getField("initial_sample_pool", initialSamplePool); v.getField("iterations_per_batch", iterationsPerBatch); v.getField("image_pyramid", imagePyramid); v.getField("large_step_probability", largeStepProbability); v.getField("strategy_perturbation_probability", strategyPerturbationProbability); v.getField("gaussian_mutation", gaussianMutation); }
void ErlangTransmittance::fromJson(JsonPtr value, const Scene &scene) { Transmittance::fromJson(value, scene); value.getField("rate", _lambda); }