Photon Engine 2.0.0-beta
A physically based renderer.
|
Dielectric-dielectric interface Fresnel effect. More...
#include <SchlickApproxDielectricFresnel.h>
Public Member Functions | |
SchlickApproxDielectricFresnel (real iorOuter, real iorInner) | |
math::Spectrum | calcReflectance (real cosThetaIncident) const override |
Public Member Functions inherited from ph::DielectricFresnel | |
DielectricFresnel (real iorOuter, real iorInner) | |
std::optional< math::Vector3R > | calcRefractDir (const math::Vector3R &I, const math::Vector3R &N) const |
Calculates the normalized refraction direction. | |
std::optional< real > | calcRefractCos (const math::Vector3R &I, const math::Vector3R &N) const |
Calculates the cosine (signed) of refraction direction. This method is similar to calcRefractDir() , but is slightly more efficient as it returns the cosine of refraction direction only. | |
real | getIorOuter () const |
real | getIorInner () const |
Public Member Functions inherited from ph::FresnelEffect | |
virtual | ~FresnelEffect ()=default |
math::Spectrum | calcTransmittance (real cosThetaIncident) const |
Additional Inherited Members | |
Protected Attributes inherited from ph::DielectricFresnel | |
real | m_iorOuter |
real | m_iorInner |
Dielectric-dielectric interface Fresnel effect.
The formulae used are dielectric-specific approximations made by Brent Burley [3], which provide some improvement over the approximation originally done by Schlick [14]. See the implementation of calcReflectance()
for more details.
ph::SchlickApproxDielectricFresnel::SchlickApproxDielectricFresnel | ( | real | iorOuter, |
real | iorInner ) |
|
overridevirtual |
cosThetaIncident | Cosine of the incident angle. |
cosThetaIncident
is signed, so inner and outer sides can be determined. Implements ph::DielectricFresnel.