void RoughWireBcsdf::fromJson(const rapidjson::Value &v, const Scene &scene) { Bsdf::fromJson(v, scene); JsonUtils::fromJson(v, "roughness", _roughness); if (JsonUtils::fromJson(v, "eta", _eta) && JsonUtils::fromJson(v, "k", _k)) _materialName.clear(); if (JsonUtils::fromJson(v, "material", _materialName)) lookupMaterial(); }
void RoughConductorBsdf::fromJson(const rapidjson::Value &v, const Scene &scene) { Bsdf::fromJson(v, scene); if (JsonUtils::fromJson(v, "eta", _eta) && JsonUtils::fromJson(v, "k", _k)) _materialName.clear(); JsonUtils::fromJson(v, "distribution", _distributionName); if (JsonUtils::fromJson(v, "material", _materialName)) lookupMaterial(); scene.textureFromJsonMember(v, "roughness", TexelConversion::REQUEST_AVERAGE, _roughness); // Fail early in case of invalid distribution name prepareForRender(); }
HanrahanKrueger(const Properties &props) : BSDF(props) { Spectrum sigmaS, sigmaA; lookupMaterial(props, sigmaS, sigmaA, NULL, false); /* Scattering coefficient of the layer */ m_sigmaS = new ConstantSpectrumTexture( props.getSpectrum("sigmaS", sigmaS)); /* Absorption coefficient of the layer */ m_sigmaA = new ConstantSpectrumTexture( props.getSpectrum("sigmaA", sigmaA)); /* Slab thickness in inverse units of sigmaS and sigmaA */ m_thickness = props.getFloat("thickness", 1); if (props.hasProperty("sigmaT")) m_sigmaT = new ConstantSpectrumTexture( props.getSpectrum("sigmaT")); if (props.hasProperty("albedo")) m_albedo = new ConstantSpectrumTexture( props.getSpectrum("albedo")); }
void setMaterialName(const std::string &materialName) { _materialName = materialName; lookupMaterial(); }