Closed
Description
The test scene assets/scenes/yeahright/yeahright.pbrt
uses two metal materials:
> rg metal assets/scenes/yeahright
assets/scenes/yeahright/yeahright.pbrt
22:Material "metal"
28:Material "metal"
On the C++ side we have this class:
// MetalMaterial Declarations
class MetalMaterial : public Material {
public:
// MetalMaterial Public Methods
MetalMaterial(const std::shared_ptr<Texture<Spectrum>> &eta,
const std::shared_ptr<Texture<Spectrum>> &k,
const std::shared_ptr<Texture<Float>> &rough,
const std::shared_ptr<Texture<Float>> &urough,
const std::shared_ptr<Texture<Float>> &vrough,
const std::shared_ptr<Texture<Float>> &bump,
bool remapRoughness);
void ComputeScatteringFunctions(SurfaceInteraction *si, MemoryArena &arena,
TransportMode mode,
bool allowMultipleLobes) const;
private:
// MetalMaterial Private Data
std::shared_ptr<Texture<Spectrum>> eta, k;
std::shared_ptr<Texture<Float>> roughness, uRoughness, vRoughness;
std::shared_ptr<Texture<Float>> bumpMap;
bool remapRoughness;
};
We have to implement the Rust counterpart ...