Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
IdealAbsorber.h
Go to the documentation of this file.
1#pragma once
2
4
5namespace ph
6{
7
8/*
9 An ideal absorber absorbs any incoming energy. Pretty much resembles
10 a black hole under event horizon.
11*/
13{
14public:
16
17 ESurfacePhenomenon getPhenomenonOf(SurfaceElemental elemental) const override;
18
19private:
20 void calcBsdf(
21 const BsdfQueryContext& ctx,
22 const BsdfEvalInput& in,
23 BsdfEvalOutput& out) const override;
24
25 void genBsdfSample(
26 const BsdfQueryContext& ctx,
27 const BsdfSampleInput& in,
28 SampleFlow& sampleFlow,
29 BsdfSampleOutput& out) const override;
30
31 void calcBsdfPdf(
32 const BsdfQueryContext& ctx,
33 const BsdfPdfInput& in,
34 BsdfPdfOutput& out) const override;
35};
36
37}// end namespace ph
Input for BsdfEvalQuery.
Definition BsdfEvalQuery.h:20
Output for BsdfEvalQuery.
Definition BsdfEvalQuery.h:47
Input for BsdfPdfQuery.
Definition BsdfPdfQuery.h:19
Output for BsdfPdfQuery.
Definition BsdfPdfQuery.h:46
The environment a BSDF query is performed under.
Definition BsdfQueryContext.h:13
Input for BsdfSampleQuery.
Definition BsdfSampleQuery.h:21
Output for BsdfSampleQuery.
Definition BsdfSampleQuery.h:45
Definition IdealAbsorber.h:13
IdealAbsorber()
Definition IdealAbsorber.cpp:11
ESurfacePhenomenon getPhenomenonOf(SurfaceElemental elemental) const override
Get the phenomenon of a surface component. One can also setup query for a specific elemental....
Definition IdealAbsorber.cpp:17
A sample with arbitrary dimensions with fine-grained sampling control.
Definition SampleFlow.h:19
Describes how light interacts with a surface.
Definition SurfaceOptics.h:17
The root for all renderer implementations.
Definition EEngineProject.h:6
ESurfacePhenomenon
Available surface phenomena.
Definition surface_optics_fwd.h:16
int SurfaceElemental
Definition surface_optics_fwd.h:30