Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
FresnelEffect.h
Go to the documentation of this file.
1#pragma once
2
4
5#include <Common/primitive_type.h>
6
7namespace ph
8{
9
16{
17public:
18 virtual ~FresnelEffect() = default;
19
25 virtual math::Spectrum calcReflectance(real cosThetaIncident) const = 0;
26
32 math::Spectrum calcTransmittance(real cosThetaIncident) const;
33};
34
35inline math::Spectrum FresnelEffect::calcTransmittance(const real cosThetaIncident) const
36{
37 return calcReflectance(cosThetaIncident).complement();
38}
39
40}// end namespace ph
Modeling Fresnel effects that occur on interfaces.
Definition FresnelEffect.h:16
math::Spectrum calcTransmittance(real cosThetaIncident) const
Definition FresnelEffect.h:35
virtual ~FresnelEffect()=default
virtual math::Spectrum calcReflectance(real cosThetaIncident) const =0
Derived complement() const
Complements the array's elements. Effectively performing 1 - (*this)[i] for each element.
Definition TArithmeticArrayBase.ipp:502
Definition TTristimulusSpectrum.h:11
The root for all renderer implementations.
Definition EEngineProject.h:6