Photon Engine 2.0.0-beta
A physically based renderer.
|
#include <AAreaLight.h>
Public Member Functions | |
virtual std::shared_ptr< Geometry > | getArea (const CookingContext &ctx) const =0 |
std::shared_ptr< Geometry > | getGeometry (const CookingContext &ctx) const override |
std::shared_ptr< Material > | getMaterial (const CookingContext &ctx) const override |
const Emitter * | buildEmitter (const CookingContext &ctx, TSpanView< const Primitive * > lightPrimitives) const override |
PH_DEFINE_SDL_CLASS (TSdlOwnerClass< AAreaLight >) | |
Public Member Functions inherited from ph::AGeometricLight | |
PreCookReport | preCook (const CookingContext &ctx) const override |
Cooking supplemental data before cook() . This method allows user to specify additional configurations for the following cooking process. This method may run in parallel without taking into account resource dependencies. | |
TransientVisualElement | cook (const CookingContext &ctx, const PreCookReport &report) const override |
PH_DEFINE_SDL_CLASS (TSdlOwnerClass< AGeometricLight >) | |
Public Member Functions inherited from ph::ALight | |
PH_DEFINE_SDL_CLASS (TSdlOwnerClass< ALight >) | |
Public Member Functions inherited from ph::PhysicalActor | |
void | translate (const real amountX, const real amountY, const real amountZ) |
void | translate (const math::Vector3R &amount) |
void | rotate (const math::Vector3R &axis, const real additionanDegrees) |
void | rotate (const math::QuaternionR &additionalRotation) |
void | scale (const real uniformAmount) |
void | scale (const real amountX, const real amountY, const real amountZ) |
void | scale (const math::Vector3R &amount) |
void | setBaseTransform (const math::TDecomposedTransform< real > &baseLocalToWorld) |
PH_DEFINE_SDL_CLASS (TSdlOwnerClass< PhysicalActor >) | |
Public Member Functions inherited from ph::Actor | |
virtual void | postCook (const CookingContext &ctx, TransientVisualElement &element) const |
Cooking additional data after cook() . This method provides an opportunity for user to decorate the cooked data or any post-cook operations (such as generating debug data). This method may run in parallel without taking into account resource dependencies. | |
virtual CookOrder | getCookOrder () const |
TransientVisualElement | stagelessCook (const CookingContext &ctx) const |
Helper to execute the full cooking procedure in one go. | |
PH_DEFINE_SDL_CLASS (TSdlOwnerClass< Actor >) | |
Public Member Functions inherited from ph::TSdlResourceBase< ESdlTypeCategory::Ref_Actor > | |
ESdlTypeCategory | getDynamicCategory () const override |
Public Member Functions inherited from ph::SdlResourceBase | |
SdlResourceId | getId () const override |
Get the unique ID of this resource. The returned ID is guaranteed to be unique in the current process. Newly created resource cannot have an ID that has been used by a previous resource, even if the previous resource has ended its life cycle. See SdlResourceId.h for some utilities. | |
Public Member Functions inherited from ph::ISdlResource | |
ISdlResource (const ISdlResource &other)=default | |
ISdlResource (ISdlResource &&other)=default | |
virtual | ~ISdlResource ()=default |
ISdlResource & | operator= (const ISdlResource &rhs)=default |
ISdlResource & | operator= (ISdlResource &&rhs)=default |
virtual const SdlClass * | getDynamicSdlClass () const |
Get runtime SDL class of the resource. | |
virtual bool | isInlinable () const |
Additional Inherited Members | |
Static Public Member Functions inherited from ph::AGeometricLight | |
static std::shared_ptr< Geometry > | getSanifiedGeometry (const std::shared_ptr< Geometry > &srcGeometry, const TransformInfo &srcLocalToWorld, math::TDecomposedTransform< real > *out_remainingLocalToWorld=nullptr) |
Static Public Attributes inherited from ph::TSdlResourceBase< ESdlTypeCategory::Ref_Actor > | |
static constexpr ESdlTypeCategory | CATEGORY |
Static category information of the resource. This static category information is required by ISdlResource. See its documentation for more details. | |
Protected Member Functions inherited from ph::AGeometricLight | |
virtual EmitterFeatureSet | getEmitterFeatureSet () const |
Protected Member Functions inherited from ph::TSdlResourceBase< ESdlTypeCategory::Ref_Actor > | |
TSdlResourceBase ()=default | |
TSdlResourceBase (const TSdlResourceBase &other)=default | |
TSdlResourceBase (TSdlResourceBase &&other)=default | |
TSdlResourceBase & | operator= (const TSdlResourceBase &rhs)=default |
TSdlResourceBase & | operator= (TSdlResourceBase &&rhs)=default |
Protected Member Functions inherited from ph::SdlResourceBase | |
SdlResourceBase () | |
SdlResourceBase (const SdlResourceBase &other) | |
SdlResourceBase (SdlResourceBase &&other)=default | |
SdlResourceBase & | operator= (const SdlResourceBase &rhs) |
SdlResourceBase & | operator= (SdlResourceBase &&rhs)=default |
Protected Member Functions inherited from ph::ISdlResource | |
ISdlResource ()=default | |
Protected Attributes inherited from ph::AGeometricLight | |
bool | m_isDirectlyVisible |
bool | m_useBsdfSample |
bool | m_useDirectSample |
bool | m_useEmissionSample |
Protected Attributes inherited from ph::PhysicalActor | |
TransformInfo | m_localToWorld |
|
overridevirtual |
Generates the core emission part of the light source.
Implements ph::AGeometricLight.
|
pure virtual |
Implemented in ph::APointLight, ph::ARectangleLight, and ph::ASphereLight.
|
overridevirtual |
A geometric source would need to place a corresponding geometry in the scene. Override this method and return a geometry for that.
Implements ph::AGeometricLight.
|
overridevirtual |
Generate a suitable material for the light source if physical entity will be present in the scene. The default implementation generates a pure diffuse material with moderate albedo.
Reimplemented from ph::AGeometricLight.
|
inline |