void fromJson(JsonPtr v)
 {
     TraceSettings::fromJson(v);
     v.getField("initial_sample_pool", initialSamplePool);
     v.getField("image_pyramid", imagePyramid);
     v.getField("large_step_probability", largeStepProbability);
 }
Beispiel #2
0
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));
}
Beispiel #3
0
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);
}
Beispiel #5
0
    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);
    }
Beispiel #6
0
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();
}
Beispiel #7
0
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);
}