20 #if !defined(__MITSUBA_RENDER_PHASE_H_)
21 #define __MITSUBA_RENDER_PHASE_H_
75 : mRec(mRec), wi(wi), mode(mode) { }
97 : mRec(mRec), wi(wi), wo(wo), mode(mode) { }
111 std::string toString()
const;
123 EAngleDependence = 0x04,
197 virtual bool needsDirectionallyVaryingCoefficients()
const;
213 virtual Float sigmaDirMax()
const;
221 virtual Float getMeanCosine()
const;
224 virtual std::string
toString()
const = 0;
PhaseFunction(Stream *stream, InstanceManager *manager)
Unserialize a phase function.
Definition: phase.h:233
unsigned int m_type
Definition: phase.h:239
Generic serializable object, which supports construction from a Properties instance.
Definition: cobject.h:40
const MediumSamplingRecord & mRec
Reference to a Medium sampling record created by Medium::sampleDistance()
Definition: phase.h:39
PhaseFunctionSamplingRecord(const MediumSamplingRecord &mRec, const Vector &wi, ETransportMode mode=ERadiance)
Given a medium interaction and an incident direction, construct a query record which can be used to s...
Definition: phase.h:73
void reverse()
Reverse the direction of light transport in the record.
Definition: phase.h:106
Vector wo
Normalized outgoing direction vector.
Definition: phase.h:52
ETransportMode mode
Definition: phase.h:56
Base class of all sample generators.
Definition: sampler.h:66
virtual ~PhaseFunction()
Virtual destructor.
Definition: phase.h:237
Data record for sampling a point on the in-scattering integral of the RTE.
Definition: medium.h:34
PhaseFunctionSamplingRecord(const MediumSamplingRecord &mRec, const Vector &wi, const Vector &wo, ETransportMode mode=ERadiance)
Definition: phase.h:95
Abstract seekable stream class.
Definition: stream.h:58
#define MTS_DECLARE_CLASS()
This macro must be used in the initial definition in classes that derive from Object.
Definition: class.h:158
virtual void configure()
Configure the object (called once after construction and addition of all child ConfigurableObject ins...
Abstract phase function.
Definition: phase.h:117
EPhaseFunctionType
Definition: phase.h:119
unsigned int getType() const
Return information flags of this phase function, combined binary OR.
Definition: phase.h:135
Associative parameter map for constructing subclasses of ConfigurableObject.
Definition: properties.h:46
Data structure, which contains information required to sample or query a phase function.
Definition: phase.h:34
Coordinates the serialization and unserialization of object graphs.
Definition: serialization.h:65
Vector wi
Normalized incident direction vector, which points away from the scattering event.
Definition: phase.h:49
virtual std::string toString() const
Return a human-readable string representation of the object's contents.
Radiance transport.
Definition: common.h:38
ETransportMode
Specifies the transport mode when sampling or evaluating a scattering function.
Definition: common.h:33