Photon Engine 2.0.0-beta
A physically based renderer.
|
#include <AGeometricLight.h>
Public Member Functions | |
virtual std::shared_ptr< Geometry > | getGeometry (const CookingContext &ctx) const =0 |
virtual const Emitter * | buildEmitter (const CookingContext &ctx, TSpanView< const Primitive * > lightPrimitives) const =0 |
virtual std::shared_ptr< Material > | getMaterial (const CookingContext &ctx) const |
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 |
Static Public Member Functions | |
static std::shared_ptr< Geometry > | getSanifiedGeometry (const std::shared_ptr< Geometry > &srcGeometry, const TransformInfo &srcLocalToWorld, math::TDecomposedTransform< real > *out_remainingLocalToWorld=nullptr) |
Protected Member Functions | |
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 | |
bool | m_isDirectlyVisible |
bool | m_useBsdfSample |
bool | m_useDirectSample |
bool | m_useEmissionSample |
Protected Attributes inherited from ph::PhysicalActor | |
TransformInfo | m_localToWorld |
Additional Inherited Members | |
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. | |
|
pure virtual |
Generates the core emission part of the light source.
Implemented in ph::AAreaLight, and ph::AModelLight.
|
overridevirtual |
Guaranteed to provide primitives view if the emitters generated are based on primitives (i.e., emitting light from primitives). Emitters and primitives are either in one-to-one mapping, or in one-to-many mapping (all primitives correspond to one emitter).
Implements ph::ALight.
|
protectedvirtual |
Reimplemented in ph::APointLight.
|
pure virtual |
A geometric source would need to place a corresponding geometry in the scene. Override this method and return a geometry for that.
Implemented in ph::AAreaLight, and ph::AModelLight.
|
virtual |
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 in ph::AAreaLight, and ph::AModelLight.
|
static |
Tries to return a geometry suitable for emitter calculations (can be the original one if it is already suitable). If the current actor has undesired configurations, nullptr is returned.
|
inline |
|
overridevirtual |
|
protected |
|
protected |
|
protected |
|
protected |