Exemplo n.º 1
0
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();
}
Exemplo n.º 2
0
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();
}
Exemplo n.º 3
0
	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"));
	}
Exemplo n.º 4
0
 void setMaterialName(const std::string &materialName)
 {
     _materialName = materialName;
     lookupMaterial();
 }