7#include <Common/primitive_type.h>
15class ConductorFresnel;
45 std::optional<math::Spectrum> m_iorInnerN;
46 std::optional<math::Spectrum> m_iorInnerK;
51 StructType ztruct(
"conductive-interface");
52 ztruct.description(
"Data describing the effects when light hits an conductive interface.");
55 fresnel.
description(
"Type of the Fresnel for the conductive interface.");
58 ztruct.addField(fresnel);
62 "Surface reflectance on normal incidence. This value is expected to be given in linear-sRGB "
63 "space. When this parameter is used, the underlying Fresnel model will be an approximated "
64 "one (schlick) which is pretty popular in real-time graphics. Also note that F0 already "
65 "includes the information of ior-outer.");
71 iorOuter.
description(
"The index of refraction outside of this interface.");
74 ztruct.addField(iorOuter);
77 iorInnerN.
description(
"The complex index of refraction (real part) inside of this interface.");
78 ztruct.addField(iorInnerN);
81 iorInnerK.
description(
"The complex index of refraction (imaginary part) inside of this interface.");
82 ztruct.addField(iorInnerK);
Data describing the effects when light hits an conductive interface.
Definition ConductiveInterfaceInfo.h:23
PH_DEFINE_SDL_STRUCT(TSdlOwnerStruct< ConductiveInterfaceInfo >)
Definition ConductiveInterfaceInfo.h:49
void setIorInnerK(const math::Spectrum &iorInnerK)
Definition ConductiveInterfaceInfo.cpp:98
std::unique_ptr< ConductorFresnel > genFresnelEffect() const
Definition ConductiveInterfaceInfo.cpp:36
void setIorOuter(real iorOuter)
Definition ConductiveInterfaceInfo.cpp:88
void setIorInnerN(const math::Spectrum &iorInnerN)
Definition ConductiveInterfaceInfo.cpp:93
void setF0(const math::Spectrum &f0)
Definition ConductiveInterfaceInfo.cpp:83
ConductiveInterfaceInfo()
Definition ConductiveInterfaceInfo.cpp:12
void setFresnel(EInterfaceFresnel fresnel)
Definition ConductiveInterfaceInfo.cpp:78
Definition TSdlEnumField.h:23
SDL binding type for a typical C++ struct.
Definition TSdlOwnerStruct.h:18
A field class that binds a floating point member variable.
Definition TSdlReal.h:21
Definition TSdlSpectrum.h:27
TSdlValue & description(std::string descriptionStr)
Definition TSdlValue.ipp:95
TSdlValue & optional()
Definition TSdlValue.ipp:103
TSdlValue & defaultTo(T defaultValue)
Definition TSdlValue.ipp:71
Definition TTristimulusSpectrum.h:11
The root for all renderer implementations.
Definition EEngineProject.h:6
EInterfaceFresnel
Definition sdl_component_enums.h:10