The spica renderer
roughplastic.h
1 #ifdef _MSC_VER
2 #pragma once
3 #endif
4 
5 #ifndef _SPICA_ROUGH_PLASTIC_H_
6 #define _SPICA_ROUGH_PLASTIC_H_
7 
8 #include "core/common.h"
9 #include "core/spectrum.h"
10 #include "core/render.hpp"
11 #include "core/material.h"
12 #include "core/constant.h"
13 
14 namespace spica {
15 
16 class SPICA_EXPORTS RoughPlastic : public SurfaceMaterial {
17 public:
18  RoughPlastic(const std::shared_ptr<Texture<Spectrum>> &Kd,
19  const std::shared_ptr<Texture<Spectrum>> &Ks,
20  const std::shared_ptr<Texture<Spectrum>> &roughness,
21  const std::shared_ptr<Texture<Spectrum>> &index,
22  const std::string &distribution = "beckmann",
23  const std::shared_ptr<Texture<Spectrum>> &bumpMap = nullptr,
24  bool remapRoughness = false);
25 
26  RoughPlastic(RenderParams &params);
27 
28  void setScatterFuncs(SurfaceInteraction* isect,
29  MemoryArena& arena) const override;
30 
31 private:
32  std::shared_ptr<Texture<Spectrum>> Kd_, Ks_;
33  std::shared_ptr<Texture<Spectrum>> roughness_, index_, bumpMap_;
34  std::string distribution_;
35  bool remapRoughness_;
36 };
37 
38 SPICA_EXPORT_PLUGIN(RoughPlastic, "Rough plastic-like surface");
39 
40 } // namespace spica
41 
42 #endif // _SPICA_ROUGH_PLASTIC_H_
Definition: interaction.h:68
Definition: roughplastic.h:16
Definition: renderparams.h:27
Definition: material.h:17