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