Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
ph::Image Class Referenceabstract

#include <Image.h>

Inheritance diagram for ph::Image:
ph::TSdlResourceBase< ESdlTypeCategory::Ref_Image > ph::SdlResourceBase ph::ISdlResource ph::BinaryMixedImage ph::BlackBodyRadiationImage ph::CheckerboardImage ph::ConstantImage ph::MathImage ph::RasterImageBase ph::SwizzledImage ph::GradientImage ph::RasterFileImage

Public Types

using ArrayType = math::TArithmeticArray<float64, PH_NUMERIC_IMAGE_MAX_ELEMENTS>
 

Public Member Functions

virtual std::shared_ptr< TTexture< Image::ArrayType > > genNumericTexture (const CookingContext &ctx)=0
 
virtual std::shared_ptr< TTexture< math::Spectrum > > genColorTexture (const CookingContext &ctx)=0
 
 PH_DEFINE_SDL_CLASS (TSdlOwnerClass< Image >)
 
- Public Member Functions inherited from ph::TSdlResourceBase< ESdlTypeCategory::Ref_Image >
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
 
ISdlResourceoperator= (const ISdlResource &rhs)=default
 
ISdlResourceoperator= (ISdlResource &&rhs)=default
 
virtual const SdlClassgetDynamicSdlClass () const
 Get runtime SDL class of the resource.
 
virtual bool isInlinable () const
 

Static Public Attributes

static constexpr auto ARRAY_SIZE = ArrayType::NUM_ELEMENTS
 
- Static Public Attributes inherited from ph::TSdlResourceBase< ESdlTypeCategory::Ref_Image >
static constexpr ESdlTypeCategory CATEGORY
 Static category information of the resource. This static category information is required by ISdlResource. See its documentation for more details.
 

Additional Inherited Members

- Protected Member Functions inherited from ph::TSdlResourceBase< ESdlTypeCategory::Ref_Image >
 TSdlResourceBase ()=default
 
 TSdlResourceBase (const TSdlResourceBase &other)=default
 
 TSdlResourceBase (TSdlResourceBase &&other)=default
 
TSdlResourceBaseoperator= (const TSdlResourceBase &rhs)=default
 
TSdlResourceBaseoperator= (TSdlResourceBase &&rhs)=default
 
- Protected Member Functions inherited from ph::SdlResourceBase
 SdlResourceBase ()
 
 SdlResourceBase (const SdlResourceBase &other)
 
 SdlResourceBase (SdlResourceBase &&other)=default
 
SdlResourceBaseoperator= (const SdlResourceBase &rhs)
 
SdlResourceBaseoperator= (SdlResourceBase &&rhs)=default
 
- Protected Member Functions inherited from ph::ISdlResource
 ISdlResource ()=default
 

Member Typedef Documentation

◆ ArrayType

using ph::Image::ArrayType = math::TArithmeticArray<float64, PH_NUMERIC_IMAGE_MAX_ELEMENTS>

Member Function Documentation

◆ genColorTexture()

virtual std::shared_ptr< TTexture< math::Spectrum > > ph::Image::genColorTexture ( const CookingContext & ctx)
pure virtual

Color textures are expected to be used where spectral distribution is involved. Color space transformations will take place if required. It is generally not recommended to use color texture to represent data that need to be precisely preserved (e.g., normal map).

Implemented in ph::BinaryMixedImage, ph::BlackBodyRadiationImage, ph::CheckerboardImage, ph::ConstantImage, ph::GradientImage, ph::MathImage, ph::RasterFileImage, ph::RasterImageBase, and ph::SwizzledImage.

◆ genNumericTexture()

virtual std::shared_ptr< TTexture< Image::ArrayType > > ph::Image::genNumericTexture ( const CookingContext & ctx)
pure virtual

When generating numeric textures, the convention is that the image will be treated as if raw values are used. Numeric textures are expected to be used as part of a general mathematical operation.

Implemented in ph::BinaryMixedImage, ph::BlackBodyRadiationImage, ph::CheckerboardImage, ph::ConstantImage, ph::GradientImage, ph::MathImage, ph::RasterFileImage, ph::RasterImageBase, and ph::SwizzledImage.

◆ PH_DEFINE_SDL_CLASS()

ph::Image::PH_DEFINE_SDL_CLASS ( TSdlOwnerClass< Image > )
inline

Member Data Documentation

◆ ARRAY_SIZE

auto ph::Image::ARRAY_SIZE = ArrayType::NUM_ELEMENTS
inlinestaticconstexpr

The documentation for this class was generated from the following file: