Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
VolumeOptics.h
Go to the documentation of this file.
1#pragma once
2
3#include "Math/math_fwd.h"
5
6#include <Common/primitive_type.h>
7
8#include <memory>
9
10namespace ph
11{
12
13class SurfaceHit;
14class ScatterFunction;
15class BlockFunction;
16class EmitFunction;
17class VolumeDistanceSample;
18
20{
21public:
22 virtual ~VolumeOptics() = 0;
23
25
26private:
27 virtual void sampleDistance(
28 const SurfaceHit& X,
29 const math::Vector3R& L,
30 real maxDist,
31 real* out_dist,
32 math::Spectrum* out_pdfAppliedWeight) const = 0;
33
34 //std::shared_ptr<ScatterFunction> m_scatterFunc;
35 //std::shared_ptr<BlockFunction> m_blockFunc;
36 //std::shared_ptr<EmitFunction> m_emitFunc;
37};
38
39}// end namespace ph
General information about a ray-surface intersection event.
Definition SurfaceHit.h:59
Definition VolumeDistanceSample.h:13
Definition VolumeOptics.h:20
void sample(VolumeDistanceSample &sample) const
Definition VolumeOptics.cpp:9
virtual ~VolumeOptics()=0
Definition TTristimulusSpectrum.h:11
The root for all renderer implementations.
Definition EEngineProject.h:6