Photon Engine 2.0.0-beta
A physically based renderer.
|
The root for all renderer implementations. More...
Namespaces | |
namespace | constant |
Contains frequently encountered constants. | |
namespace | detail |
Implementation detail mainly for internal usages. | |
namespace | field_set_op |
namespace | fixed_integer_map_detail |
namespace | frame_detail |
namespace | frame_utils |
namespace | function_detail |
namespace | halton_detail |
namespace | io_utils |
Helpers for data I/O. | |
namespace | lbconv |
namespace | lta |
Light transport algorithms. | |
namespace | math |
Math functions and utilities. | |
namespace | pixel_buffer |
namespace | pixel_texture |
namespace | sdl |
namespace | sdl_parser |
namespace | texfunc |
Classes | |
class | AAreaLight |
class | AbradedOpaque |
class | AbradedSurface |
class | AbradedTranslucent |
class | Actor |
class | ActorCookException |
General exception thrown on cook error for actors. More... | |
class | AdaptiveSamplingRenderer |
class | ADome |
An actor that models the sky of the scene. Model the sky in latitude-longitude format. Effectively a large energy emitting source encompassing the whole scene. More... | |
class | AGeometricLight |
class | AIesAttenuatedLight |
class | AImageDome |
Model the sky of the scene with an image. Using a background image to represent the energy emitted from far away. More... | |
class | ALight |
class | AMaskedModel |
class | AModel |
class | AModelLight |
class | AnisoTrowbridgeReitz |
class | APhantomModel |
class | ApiDatabase |
class | ApiHelper |
class | APointLight |
class | APreethamDome |
Model the sky of the scene with an image. More... | |
class | ARectangleLight |
class | ASphereLight |
class | ATransformedInstance |
class | AttributeRenderer |
class | AttributeTags |
class | BfConstant |
class | BinaryFileInputStream |
class | BinaryFileOutputStream |
class | BinaryFileReader |
class | BinaryMixedImage |
class | BinaryMixedSurfaceMaterial |
class | BlackBodyRadiationImage |
class | BlockFunction |
class | BNEEPTEstimator |
class | BruteForceIntersector |
class | BsdfEvalInput |
Input for BsdfEvalQuery . More... | |
class | BsdfEvalOutput |
Output for BsdfEvalQuery . More... | |
class | BsdfEvalQuery |
Information for obtaining a sample value from BSDF. More... | |
class | BsdfHelper |
class | BsdfPdfInput |
Input for BsdfPdfQuery . More... | |
class | BsdfPdfOutput |
Output for BsdfPdfQuery . More... | |
class | BsdfPdfQuery |
Information for the probability of generating a specific BSDF sample. More... | |
class | BsdfQueryContext |
The environment a BSDF query is performed under. More... | |
class | BsdfSampleInput |
Input for BsdfSampleQuery . More... | |
class | BsdfSampleOutput |
Output for BsdfSampleQuery . More... | |
class | BsdfSampleQuery |
Information for generating a BSDF sample. More... | |
class | BVPTDLEstimator |
A direct lighting only estimator using path tracing. More... | |
class | BVPTEstimator |
A GI estimator using pure path tracing. More... | |
class | ByteBuffer |
An auto-resizable byte storage. More... | |
class | ByteBufferInputStream |
An in-memory byte stream designed for I/O performance. More... | |
class | CheckerboardImage |
class | ConductiveInterfaceInfo |
Data describing the effects when light hits an conductive interface. More... | |
class | ConductorFresnel |
Conductor-dielectric interface Fresnel effect. More... | |
class | ConstantImage |
class | ConstantVelocityMotion |
class | CookedDataStorage |
class | CookedGeometry |
class | CookedMotion |
class | CookedNamedResource |
class | CookedResourceCollection |
Provides thread-safe cooked data creation and storage. All methods are thread-safe to call, however manipulating the created data is not thread-safe unless stated explicitly. More... | |
class | CookedResourceCollectionBase |
Provides thread-safe cooked data creation and storage. All methods are thread-safe to call, however manipulating the created data is not thread-safe unless stated explicitly. More... | |
class | CookException |
General exception thrown on cook error. More... | |
class | CookingConfig |
class | CookingContext |
Information about the world being cooked. More... | |
class | CookOrder |
Controls the order actors are cooked. More... | |
class | CoreCookedUnit |
class | CoreCookingContext |
class | CoreResource |
class | CoreSdlResource |
Core SDL resource abstraction. This class does not provide static/dynamic category information. The work is left for derived classes. See SdlResourceBase for more implementation requirements. More... | |
class | CsvFile |
class | CsvFileRow |
class | DammertzDispatcher |
class | DielectricFresnel |
Dielectric-dielectric interface Fresnel effect. More... | |
class | DielectricInterfaceInfo |
Data describing the effects when light hits an dielectric interface. More... | |
class | DiffuseSurfaceEmitter |
Diffusive surface emitter. More... | |
class | DiffuseSurfaceEmitterBase |
Base for diffusive surface emitters. More... | |
class | DirectEnergyPdfInput |
Input for DirectEnergyPdfQuery . More... | |
class | DirectEnergyPdfOutput |
Output for DirectEnergyPdfQuery . More... | |
class | DirectEnergyPdfQuery |
Information for the probability of generating a specific sample for direct energy estimation. More... | |
class | DirectEnergySampleInput |
Input for DirectEnergySampleQuery . More... | |
class | DirectEnergySampleOutput |
Output for DirectEnergySampleQuery . More... | |
class | DirectEnergySampleQuery |
Information for generating a sample for direct energy estimation. More... | |
struct | DomeRadianceFunctionInfo |
struct | EmbeddedPrimitiveMetaGetter |
class | EmitFunction |
class | Emitter |
An electromagnetic energy emitting source. The emitted energy can be captured by a Receiver . More... | |
class | EmitterSampler |
class | EnergyEmissionSampleInput |
Input for EnergyEmissionSampleQuery . More... | |
class | EnergyEmissionSampleOutput |
Output for EnergyEmissionSampleQuery . More... | |
class | EnergyEmissionSampleQuery |
Information for generating a sample for energy emission. More... | |
class | Engine |
The render engine. More... | |
class | EngineInitSettings |
Options for initializing core engine. These settings are loaded on engine startup and remains constant till engine exit. Changing the settings will require an engine restart to see the effect. More... | |
class | EqualSamplingRenderer |
class | ESPowerFavoring |
class | ESUniformRandom |
class | ExactConductorFresnel |
Conductor-dielectric interface Fresnel effect. More... | |
class | ExactDielectricFresnel |
Dielectric-dielectric interface Fresnel effect. More... | |
class | ExrFileReader |
class | ExrFileWriter |
class | Filesystem |
Filesystem operations for the native operating system. More... | |
class | Film |
A camera film that receives any quantity. More... | |
class | FilteredInputStream |
class | FixedSizeThreadPool |
A thread pool where works are accessed concurrently by blocking other threads. A thread pool that contains fixed number of threads for work processing. It is a blocking pool, i.e., works are enqueued and dequeued concurrently by blocking other threads, in FIFO order. The pool can be used concurrently, namely, it is thread-safe. However, the user must ensure that the pool is properly initialized before subsequent usages. More... | |
class | FormattedTextInputStream |
Read text with basic auto formatting applied. More... | |
class | FormattedTextOutputStream |
Write text with basic auto formatting applied. More... | |
class | FrameOperator |
class | FrameProcessingPipeline |
Process frames with a series of operations. More... | |
class | FrameProcessor |
Manages and executes frame processing pipelines. More... | |
class | FrameVisualizer |
class | FresnelEffect |
Modeling Fresnel effects that occur on interfaces. More... | |
class | FullMaterial |
class | FullPhoton |
This photon type stores all possible photon data without any loss of information. It is unrecommended to use this kind of photon if low memory usage is desired. More... | |
class | FullRay |
class | FullRayEnergyEstimator |
class | FullViewpoint |
This viewpoint type stores all possible viewpoint data without any loss of information. It is unrecommended to use this kind of viewpoint if low memory usage is desired. More... | |
class | GammaCorrection |
class | GCuboid |
class | GEmpty |
class | Geometry |
class | GeometrySoup |
class | GIndexedTriangleMesh |
class | GMengerSponge |
class | GPlyPolygonMesh |
Mesh stored as a .ply file. More... | |
class | GradientImage |
class | GRectangle |
class | GridScheduler |
class | GroupedDiffuseSurfaceEmitter |
Diffusive surface emitter comprised of multiple surface fragments. All surface fragments use the same energy texture. More... | |
class | GSphere |
class | GTriangle |
class | GTriangleMesh |
Basic triangle mesh. More... | |
class | GWave |
class | HaltonSampleSource |
class | HdrOperator |
class | HdrRgbFilm |
A film that records RGB values internally. Although film samples are added as spectral values, they are automatically converted to linear sRGB values for storage. More... | |
class | HdrRgbTexture2D |
class | HenyeyGreenstein |
class | HitDetail |
Detailed information regarding a ray-primitive intersection. More... | |
class | HitInfo |
General information for a ray-primitive intersection. More... | |
class | HitProbe |
Lightweight ray intersection testing and reporting object. If an intersection is found, a detailed report can be obtained from the stored information. More... | |
class | IDataStream |
class | IdealAbsorber |
class | IdealDielectric |
class | IdealDielectricTransmitter |
class | IdealReflector |
class | IdealSubstance |
class | IesData |
class | IesFile |
class | IInputStream |
class | Image |
class | IMoveOnly |
Marks the derived class as move only. More... | |
class | IndexedTriangle |
class | IndexedTriMesh |
class | IndexedUIntBuffer |
A general unsigned integer buffer for integers with any number of bits. More... | |
class | IndexedVertexBuffer |
A general vertex buffer for storing various indexed attributes. More... | |
class | InitiallyPausedThread |
class | INoCopyAndMove |
Marks the derived class as non-copyable and non-movable. More... | |
class | Integrand |
class | InterfaceStatistics |
class | Intersectable |
An object in the scene that a ray can intersect with. More... | |
class | Intersector |
class | IntersectorCommonParams |
Common parameters of intersector. More... | |
class | IOutputStream |
class | IRayEnergyEstimator |
class | IReceivedRayProcessor |
class | IResourceIdentifierResolver |
struct | IsBuildable |
Check if object conversion can be made. More... | |
struct | IsBuildable< Built, From, std::enable_if_t< std::is_convertible_v< From, Built >||std::is_constructible_v< Built, From > > > |
Return type if the result is true. More... | |
class | ISdlDataPacketGroup |
View for a group of named data packets. More... | |
class | ISdlInstantiable |
class | ISdlReferenceGroup |
View for a group of SDL references. More... | |
class | ISdlResource |
Interface for all SDL resource. More... | |
class | IsoBeckmann |
Isotropic Beckmann distribution. See the paper "Microfacet Models for Refraction through Rough Surfaces" by Walter et al. [18]. More... | |
class | IsoTrowbridgeReitz |
Isotropic Trowbridge-Reitz distribution (GGX). More... | |
class | IsoTrowbridgeReitzConstant |
class | IsoTrowbridgeReitzTextured |
class | IUninstantiable |
Marks the derived class as uninstantiable. More... | |
class | IWorkDispatcher |
A manager that distributes work. More... | |
class | JRToneMapping |
Maps HDR values to LDR. More... | |
class | KdtreeAABB |
class | KdtreeIntersector |
class | KdtreeNode |
class | LambertianReflector |
Lambertian diffuse model for an opaque surface. This model is double-sided. More... | |
class | LatLongEnvEmitter |
Models energy coming from background. More... | |
class | LayeredSurface |
class | LbLayer |
class | LbLayeredSurface |
Laurent Belcour's layered BSDF model. This is the symmetric model as described in Section 6.2 of the paper [1]. Laurent Belcour's project page: https://belcour.github.io/blog/research/2018/05/05/brdf-realtime-layered.html. More... | |
class | LdrRgbTexture2D |
class | LerpedSurfaceOptics |
Linearly interpolate between two surface optics. More... | |
class | MaskedIntersectable |
Carve out some part of an intersectable. This is a masking approach based on intersection routine. Another common approach to shape masking is BSDF-based, where the mask determines whether the incoming light simply passes through (a no-op, perfectly transmitting BSDF). There is a trade-off between these approaches: masking in intersection routine samples the mask texture (usually a slower operation) in the tight loop of acceleration structure traversal, while masking in BSDF will need to re-enter the acceleration structure multiple times (such as when rendering a forest) which can also be slow. More... | |
class | Material |
class | MathImage |
class | MatteOpaque |
class | MemoryArena |
A general purpose bump allocator. More... | |
class | MetaRecordingProcessor |
class | Microfacet |
class | MicrosurfaceInfo |
class | mipmapgen |
class | ModelParser |
class | MotionCookConfig |
class | MotionSource |
class | NaiveReinhardToneMapping |
class | Object |
class | Observer |
class | OmniModulatedEmitter |
class | OpaqueMicrofacet |
Microfacet based opaque surface model. Microfacet optical behavior modeled using Cook-Torrance BRDF [4]. This model is double-sided. More... | |
class | Option |
class | OrenNayar |
class | OrientedRasterObserver |
class | PartialRayEnergyEstimator |
class | Path |
General path representation. Does not check whether the target actually exists (e.g., on a filesystem). To check target existence, use Filesystem . More... | |
class | PathTracingVisualizer |
class | PBasicSphere |
class | PEmpty |
class | PeriodicSingleThreadExecutor |
A single-thread executor that runs specified works periodically. The executor can be used concurrently, namely, it is thread-safe. However, the user must ensure that the pool is properly initialized before subsequent usages. More... | |
class | PfmFile |
Writer for Portable FloatMap image format. More... | |
class | PhotonMappingVisualizer |
class | PhysicalActor |
class | PictureData |
class | PictureMeta |
class | PinholeCamera |
class | PixelBuffer2D |
class | PlateScheduler |
class | PLatLong01Sphere |
class | PLatLongEnvSphere |
A sphere specifically built for environment lighting. This primitive is for environment map with latitude-longitude format. Unlike regular primitives, transformations are done locally rather than wrapping the primitive by another to allow a wider set of custom operations. Note that the UV for the environment sphere is based on the direction of incident ray. More... | |
struct | PlyElement |
PLY element storage. More... | |
class | PlyFile |
struct | PlyIOConfig |
struct | PlyProperty |
PLY property storage. More... | |
class | PlyPropertyListValues |
A convenient PLY list property accessor. More... | |
class | PlyPropertyValues |
A convenient PLY property accessor. More... | |
class | PMAtomicStatistics |
Thread safe statictics tracking utilities. More... | |
class | PMCommonParams |
Common parameters of photon mapping. More... | |
class | PMRendererBase |
class | PreCookReport |
class | PreCookResourceCollectionProxy |
class | PreethamTexture |
class | Primitive |
A physical shape in the scene. More... | |
class | PrimitiveBuildingMaterial |
class | PrimitiveChannel |
class | PrimitiveMetadata |
Collection of attached components to a primitive. This type effectively "glues" various components that helps to describe additional properties related to a primitive. More... | |
class | PrimitivePosPdfInput |
Input for PrimitivePosPdfOutput . More... | |
class | PrimitivePosPdfOutput |
Output for PrimitivePosPdfOutput . More... | |
class | PrimitivePosPdfQuery |
Information for the probability of generating a specific sample point on a primitive. More... | |
class | PrimitivePosSampleInput |
Input for PrimitivePosSampleQuery . More... | |
class | PrimitivePosSampleOutput |
Output for PrimitivePosSampleQuery . More... | |
class | PrimitivePosSampleQuery |
Information for generating a sample point on a primitive. More... | |
class | ProbabilisticProgressivePMRenderer |
class | ProgressivePMRenderer |
class | PTriangle |
A single triangle. This triangle type is for constructing simple shapes such as a quad or box. For more complex shapes, it is better to use a more space efficient primitive type for them. More... | |
class | RadianceSensor |
class | RasterFileImage |
class | RasterImageBase |
class | RawResourceCollection |
class | Ray |
Represents a ray in space. More... | |
class | RayDifferential |
class | Receiver |
A target that can receive any physical quantity, typically electromagnetic energy. The received energy is originated from some Emitter s. More... | |
class | ReceiverSamplingWork |
class | RectangularSensorReceiver |
A receiver with a rectangular sensor installed. More... | |
struct | ReferencedPrimitiveMetaGetter |
class | RegularPicture |
Raw representation of common picture types. More... | |
class | RegularPictureFormat |
Format of common pictures. Typically closely related to how the picture is stored natively (e.g., on disk). More... | |
class | Renderer |
class | RendererProxy |
class | RenderObservationInfo |
Meta information for data related to ongoing render operation. More... | |
class | RenderProgress |
class | RenderRegionStatus |
class | RenderSession |
class | RenderStats |
class | RenderWork |
class | RenderWorker |
class | ResourceIdentifier |
An general identifier that points to some resource. This is the most general form of a resource identifier, typically refers to as Photon Resource Identifier (PRI) thoughout the engine. More... | |
class | RoughnessToAlphaMapping |
Maps roughness value in [0, 1] to the alpha parameter in NDF. More... | |
class | RuntimeSampleSource |
class | Sample |
class | SampleContext |
class | SampleFilter |
An image reconstruction kernel. More... | |
class | SampleFlow |
A sample with arbitrary dimensions with fine-grained sampling control. More... | |
class | SampleGenerator |
Generates samples in [0, 1]. Generators of different types produces samples with different properties. Depending on the implementation, the samples can be fully random, quasi random, or even fully deterministic. Sample generators in Photon have their life cycles. Life cycle begins when the sample generator start producing sample batches, and ends when all sample batches are exhausted. More... | |
class | SampleLocation |
class | SamplesND |
class | SamplesNDHandle |
class | SamplesNDStream |
class | SampleSource |
class | SampleStage |
class | SampleStageReviser |
struct | SamplingFilmDimensions |
class | SamplingRenderer |
struct | SamplingStatistics |
class | ScatterFunction |
class | Scene |
A unified interface for accessing cooked content in a visual world. More... | |
class | SceneDescription |
Data that describe a scene. Represents the result of running SDL commands. More... | |
class | SchlickApproxConductorFresnel |
Conductor-dielectric interface Fresnel effect. More... | |
class | SchlickApproxDielectricFresnel |
Dielectric-dielectric interface Fresnel effect. More... | |
class | SdlClass |
class | SdlCommandGenerator |
class | SdlCommandParser |
class | SdlDataPacketCollection |
class | SdlDataPacketInterface |
Parsing & generating a group of SDL clauses. More... | |
class | SdlDependencyResolver |
Resolves dependency between SDL resources and provides a valid initialization order. Optionally provide resource name lookup (if user provides resource name during analyzation). More... | |
class | SdlEnum |
Describes enum in SDL. More... | |
class | SdlException |
General exception thrown on error related to SDL. More... | |
class | SdlField |
class | SdlFunction |
class | SdlInlinePacketInterface |
Supports the case where the packet command stores SDL clauses directly. More... | |
class | SdlInputClause |
Carries SDL representation of various data during the input process. Helps to read input data such as command clauses or data packets. More... | |
class | SdlInputClauses |
Container for input clauses. More... | |
class | SdlInputContext |
Data that SDL input process can rely on. More... | |
class | SdlIOContext |
Data that SDL input/output process can rely on. More... | |
class | SdlLoadError |
Error on the SDL input process. More... | |
class | SdlNamedOutputClauses |
class | SdlNativeData |
class | SdlOutputClause |
Carries SDL representation of various data during the output process. Helps to write output data such as command clauses or data packets. More... | |
class | SdlOutputClauses |
class | SdlOutputContext |
Data that SDL output process can rely on. More... | |
class | SdlResourceBase |
A convenient ISdlResource with some core requirements implemented. This class does not provide static/dynamic category information. The work is left for derived classes. See ISdlResource for more implementation requirements. More... | |
class | SdlResourceLocator |
class | SdlSaveError |
Error on the SDL output process. More... | |
class | SdlSceneFileReader |
Loading utility for renderer scene. Loads .p2 (Photon-v2) file. More... | |
class | SdlSceneFileWriter |
Saving utility for renderer scene. Writes .p2 (Photon-v2) file. More... | |
class | SdlStruct |
class | SdlStructFieldStump |
class | SemanticVersion |
Convenient software version handling routines. See https://semver.org/ for a detailed explaination of the concept. More... | |
class | SGHalton |
class | SGStratified |
class | SGUniformRandom |
class | SGUtil |
class | ShapeInvariantMicrofacet |
class | SingleFrameRenderSession |
class | SingleLensObserver |
class | SphericalMapper |
class | SpiralGridScheduler |
class | SpiralScheduler |
class | Statistics |
class | StdInputStream |
class | StdOutputStream |
class | StochasticProgressivePMRenderer |
class | StratifiedSampleSource |
class | StripeScheduler |
class | SurfaceAttributeEstimator |
class | SurfaceBehavior |
class | SurfaceEmitter |
class | SurfaceHit |
General information about a ray-surface intersection event. More... | |
class | SurfaceLayerInfo |
class | SurfaceMaterial |
class | SurfaceOptics |
Describes how light interacts with a surface. More... | |
class | SwizzledImage |
An image whose primary purpose is to swizzle the output of a source image. More... | |
class | TableFGD |
class | TableTIR |
class | TAbstractPixelTex2D |
class | TAnyPtr |
A type-safe, lightweight wrapper for any raw pointer type. Using std::any with a raw pointer type could achieve similar functionality. However, this class is dedicated for raw pointers and is guaranteed to have no dynamic allocation. More... | |
class | TAosTriMesh |
class | TArrayHeap |
A fixed size heap backed by an array. The container inherits the properties of a fixed size array of type T . The container keeps all N elements alive until its lifetime ends, even if elements are popped/removed from the stack. It is guaranteed that no dynamic memory allocation takes place. More... | |
class | TArrayStack |
A fixed size stack backed by an array. The container inherits the properties of a fixed size array of type T . The container keeps all N elements alive until its lifetime ends, even if elements are popped/removed from the stack. It is guaranteed that no dynamic memory allocation takes place. More... | |
class | TArrayVector |
A fixed size vector backed by an array. The container inherits the properties of a fixed size array of type T . The container keeps all N elements alive until its lifetime ends, even if elements are popped/removed from the vector. It is guaranteed that no dynamic memory allocation takes place. More... | |
class | TAtomicQuasiQueue |
A multi-producer, multi-consumer, lock-free concurrent queue-like structure. For single-thread uses, it is a FIFO queue. For multi-thread uses, it is mostly a FIFO queue. Specifically, items put in by a given producer will all come out in the same order (FIFO). But there is no coordination between items from other producers–two items put in by two different producers will come out in an undefined order relative to each other (the interleaving between different streams of items from different producers is undefined, even with external synchronization). It is possible some items will starve in the queue if more items are enqueued than dequeued. Guarantees aquire-release semantics for items that are enqueued/dequeued. More... | |
class | TBilinearPixelTex2D |
class | TBinaryBvhIntersector |
Classic binary BVH acceleration structure. More... | |
class | TBinaryTextureOperator |
class | TBitFlags |
Manipulate a value type where each bit is a binary flag. More... | |
class | TBlockableAtomicQuasiQueue |
Blockable version of the TAtomicQuasiQueue . For single-thread uses, it is a FIFO queue. For multi-thread uses, it is mostly a FIFO queue. Specifically, items put in by a given producer will all come out in the same order (FIFO). But there is no coordination between items from other producers–two items put in by two different producers will come out in an undefined order relative to each other (the interleaving between different streams of items from different producers is undefined, even with external synchronization). It is possible some items will starve in the queue if more items are enqueued than dequeued. Guarantees aquire-release semantics for items that are enqueued/dequeued. More... | |
class | TCheckerboardTexture |
Texture representing checker patterns. More... | |
class | TColorPixelTexture2D |
class | TConstantSpectralTexture |
A constant color texture that can adapt spectral values to spectrum. Converts spectral values to spectrum based on parameters obtained during rendering. More... | |
class | TConstantTexture |
Texture storing one single constant of arbitrary type. This texture provides only a constant value. Input color usages are ignored. For color-related constants, consider using TConstantTristimulusTexture or TConstantSpectralTexture ; otherwise, it is recommended to bake color-related side effects (e.g., color usages) into the constant. More... | |
class | TConstantTristimulusTexture |
A constant color texture that can adapt values in tristimulus color space to spectrum. Converts tristimulus values to spectrum based on parameters obtained during rendering. More... | |
class | TConstIteratorProxy |
struct | TEmbeddedPrimitiveGetter |
class | TEstimationArray |
class | TestPoint |
class | TextFileLoader |
class | TextureLoader |
class | TFixedMapBase |
class | TFixedMapEntry |
class | TFrame |
class | TFrameBuffer2D |
class | ThinDielectricFilm |
class | ThinDielectricShell |
class | ThinDielectricSurface |
class | ThinFilm |
class | ThinLensCamera |
class | TileScheduler |
class | Time |
class | Timer |
A timer. Measures relative time (not wall clock). More... | |
class | TIndexedKdtreeIntersector |
class | TIndexedPolygonBuffer |
class | TIRayEstimator |
class | TIteratorProxy |
class | TLinearGradientTexture |
class | TMergeableFilmProxy |
class | TMetaInjectionPrimitive |
class | TMipmap |
class | TMRSWResource |
A resource wrapper that facilitates Multiple-Readers Single-Writer (MRSW) usages. More... | |
class | TNearestPixelTex2D |
struct | TNonTypeTemplateArgDummy |
class | TNumericPixelTexture2D |
class | Tokenizer |
class | ToneMapper |
class | TPhoton |
class | TPhotonMap |
Default photon map type. Should be adequate for most cases. More... | |
class | TPhotonMapInfo |
Carries common informatiom for a photon map. More... | |
class | TPhotonPathTracingWork |
class | TPIndexedKdTreeTriangleMesh |
class | TPixelTex2D |
class | TPixelTexture2D |
class | TPPMRadianceEvaluationWork |
class | TPPMViewpointCollector |
class | TransformedIntersectable |
Applies general transformation to an intersectable. More... | |
class | TransformedPrimitive |
Applies rigid transformation to a primitive. A transformed primitive accepts only rigid transformations. This way, properties such as surface area and volume are guaranteed to be the same during transformations. More... | |
class | TransformInfo |
class | TransientResourceCache |
Provides thread-safe cooked data creation and storage. Similar to TransientVisualElement , this cache will be cleared before rendering starts. All methods are thread-safe to call, however manipulating the created data is not thread-safe unless stated explicitly. More... | |
class | TransientVisualElement |
A group of cooked data that represent the visible part of the scene at a specific time. This data block do not persist throughout the rendering process. After cooking is done, all cooked data should be properly interlinked and TransientVisualElement will be cleaned up. More... | |
class | TranslucentMicrofacet |
Microfacet based translucent surface model. Microfacet optical behavior modeled using the dielectric variant [18] of the Cook-Torrance BRDF [4]. This model is double-sided. More... | |
class | TReceiverMeasurementEstimator |
struct | TReferencedPrimitiveGetter |
class | TRelaxedAtomic |
Wrapper for relaxed atomic read and write. May resort to lock based read/write if atomic read/write for type T is not supported. More... | |
class | TriFace |
class | TrowbridgeReitz |
Trowbridge-Reitz distribution (GGX). See the original paper by Trowbridge et al. [16]. The paper "Microfacet Models for Refraction through Rough Surfaces" by Walter et al. [18] provides a nice explanation, too. More... | |
class | TSampler |
Common settings and operations for sampling a texture. More... | |
class | TSamplingFilm |
A camera film that receives any quantity, for sampling-based rendering techniques. More... | |
class | TScalarPixelTexture2D |
class | TSdl |
class | TSdl< T > |
TSdl specialization that accepts static type (T ). More... | |
class | TSdl< void > |
TSdl specialization that accepts dynamic type (SdlClass ). More... | |
class | TSdlAbstractValue |
General concept of a SDL value type. More... | |
class | TSdlAccessorVariant |
class | TSdlAnyInstance |
References a SDL object. This is a lightweight utility for referencing SDL objects. Following objects are valid targets to be referenced by this type: More... | |
class | TSdlBool |
A field class that binds a bool member variable. More... | |
class | TSdlBruteForceFieldSet |
A set of fields, with basic functionalities. More... | |
class | TSdlEnum |
A helper for accessing SDL enum properties. More... | |
class | TSdlEnumField |
class | TSdlGeneralEnum |
SDL enum implementation with common features. Enum value and string mapping are done in a brute-force way. This SDL enum type supports enum entries with identical value or name, which is useful for giving the user more tolerance on specifying inputs (e.g., case inconsistency). See getTypedEntry() for more details. More... | |
class | TSdlInteger |
A field class that binds a integral member variable. More... | |
class | TSdlMethod |
SDL binding type for a canonical SDL method. More... | |
class | TSdlNestedField |
A field that lives within an inner object. More... | |
class | TSdlOptionalValue |
Abstractions for a SDL value type that can be empty. More... | |
class | TSdlOwnedField |
Abstraction for a value that is owned by some owner type. Governs how a field should be initialized on the policy level. More... | |
class | TSdlOwnerClass |
SDL binding type for a canonical SDL resource class. More... | |
class | TSdlOwnerStruct |
SDL binding type for a typical C++ struct. More... | |
class | TSdlPath |
A field class that binds a Path member variable. More... | |
class | TSdlQuaternion |
class | TSdlReal |
A field class that binds a floating point member variable. More... | |
class | TSdlRealArray |
class | TSdlReference |
A value that points to a SDL resource. More... | |
class | TSdlReferenceArray |
A value that points to an array of SDL resources. More... | |
class | TSdlResourceBase |
A convenient ISdlResource with core requirements implemented. This class is similar to SdlResourceBase, except that it provides a way for derived classes to supply static category information. Dynamic category is directly obtained from it. More... | |
class | TSdlResourceIdentifier |
A field class that binds a resource identifier member. Though the member type that is binded by default can handle any types of identifier (the ResourceIdentifier class, which represents a PRI), this class treat it as a SDL Resource Identifier (SRI) which has a more specific form. On some circumstances it may be desirable to accept any identifier, and this can be achieved by specifying IS_SRI=false . More... | |
class | TSdlSpectrum |
class | TSdlString |
class | TSdlStructArray |
class | TSdlValue |
Abstractions for a SDL value type. More... | |
class | TSdlVector2 |
class | TSdlVector3 |
class | TSdlVector3Array |
class | TSdlVector4 |
class | TSortedMap |
A sorted container that offers fast value lookup & iteration, while modifications are slow. The container has continuous memory allocation. The values are stored in ascending order according to their keys. More... | |
class | TSortedVector |
A sorted container that offers fast value lookup & iteration, while modifications are slow. The container has continuous memory allocation. The values are stored in ascending order. More... | |
class | TSPPMRadianceEvaluator |
class | TSPSCExecutor |
A single-producer, single-consumer worker thread. Ctor and dtor are not thread safe. Most of the methods are either producer thread only, or thread-safe. start() must be called before adding work since it also serves as a mean to determine the producer thread. Setters for function callbacks can only be called before start() . Note that if work processor is not set from ctor, setWorkProcessor() must be called with a valid processor function. More... | |
class | TSPSCRingBuffer |
class | TStableIndexDenseVector |
A container offering stable index and efficient iteration. More... | |
class | TStackSentinel |
class | TStepperReceiverMeasurementEstimator |
class | TSwizzledTexture |
Swizzle an array-like input type to the other array-like output type. Output type OutputT can have any number of elements (no need to be the same as input type InputT ). For any elements in OutputT that is not part of the swizzle, the value will be as if the element is zero-initialized (or default-initialized depending on the actual type). More... | |
class | TTernaryTextureOperator |
class | TTexture |
class | TTrilinearPixelTex2D |
class | TUnaryTextureOperator |
class | TUniquePtrVector |
class | TViewPathHandler |
Process and control a view path tracing process. Derived classes need to implement all methods with "impl_" prefixed names and with the exact signature. More... | |
class | TViewPathTracingWork |
class | TViewpoint |
class | TVPMRadianceEvaluator |
class | TWideBvhIntersector |
Wide BVH acceleration structure supporting arbitrary branch factor. More... | |
class | UniformRandomSampleSource |
class | UvwMapper |
class | VAbsorptionOnly |
class | VanillaPMRenderer |
class | Vector3Film |
A film that records 3-D vectors. More... | |
class | ViewPathTracingPolicy |
Specifying and querying policies for tracing view path. More... | |
class | Viewport |
class | Visualizer |
class | VisualWorld |
A virtual world for image synthesis. More... | |
class | VoHomoAbsorption |
class | VolumeBehavior |
class | VolumeDistanceSample |
class | VolumeMaterial |
class | VolumeOptics |
class | Workflow |
class | WorkScheduler |
A manager that distributes a fixed amount of work to workers. More... | |
class | WorkUnit |
Represents some amount of work. More... | |
Concepts | |
concept | CPhoton |
concept | CViewPathHandler |
concept | CViewpoint |
concept | CSdlResource |
concept | CHasStaticSdlCategoryInfo |
Check if SDL category information can be obtained statically. The result is true if the static member variable T::CATEGORY exists, otherwise the result is false. | |
concept | CHasSdlClassDefinition |
Whether T is a well-defined SDL class. | |
concept | CHasSdlStructDefinition |
Whether T is a well-defined SDL struct. | |
concept | CHasSdlFunctionDefinition |
Whether T is a well-defined SDL function. | |
concept | CHasSdlEnumDefinition |
Whether EnumType is a well-defined SDL enum. | |
concept | CSdlInstance |
concept | CSdlStructSupportsInitToDefault |
concept | CCanAdd |
Check if instances of types can be added together. | |
concept | CCanSubtract |
Check if instances of types can be subtracted. | |
concept | CCanMultiply |
Check if instances of types can be multiplied together. | |
concept | CCanDivide |
Check if instances of types can be divided. | |
concept | CSubscriptable |
concept | CEnum |
Whether the type is a scoped/unscoped enum. | |
concept | CEnumWithSizeInfo |
concept | CNumber |
Checks whether T supports arithmetic operations. Effectively checking std::is_arithmetic<> . | |
concept | CSame |
concept | CNotSame |
concept | CDerived |
Checks whether DerivedType is derived from BaseType . The result is also true if both types are the same; false if one of them is a primitive type. | |
concept | CBase |
Checks whether BaseType is a base of DerivedType . The result is also true if both types are the same; false if one of them is a primitive type. | |
Typedefs | |
template<typename Owner > | |
using | TSdlOptionalSpectrum = TSdlSpectrum<Owner, TSdlOptionalValue<math::Spectrum, Owner>> |
using | EmitterFeatureSet = TEnumFlags<EEmitterFeatureSet> |
using | FaceTopology = TEnumFlags<EFaceTopology> |
using | IndexedTriangleBuffer = TIndexedPolygonBuffer<3> |
using | IndexedQuadBuffer = TIndexedPolygonBuffer<4> |
using | Region = math::TAABB2D<int64> |
using | SurfacePhenomena = TEnumFlags<ESurfacePhenomenon> |
using | SurfaceElemental = int |
using | SurfaceHitReason = TEnumFlags<ESurfaceHitReason> |
template<typename InputType , typename OutputType > | |
using | TConversionTexture = TUnaryTextureOperator<InputType, OutputType, texfunc::TDefaultConversion<InputType, OutputType>> |
template<typename T , std::size_t N> | |
using | TTexPixel = math::TArithmeticArray<T, N> |
using | LdrComponent = uint8 |
using | HdrComponent = float32 |
using | LdrRgbFrame = TFrame<LdrComponent, 3> |
using | HdrRgbFrame = TFrame<HdrComponent, 3> |
using | SdlGetterVariant |
using | SdlSetterVariant |
template<typename Owner , typename EnumType > | |
using | TSdlOptionalEnumField = TSdlEnumField<Owner, EnumType, TSdlOptionalValue<EnumType, Owner>> |
template<typename Owner , typename IntType = integer> | |
using | TSdlOptionalInteger = TSdlInteger<Owner, IntType, TSdlOptionalValue<IntType, Owner>> |
A field class that binds an optional integral member variable. | |
template<typename Owner > | |
using | TSdlInt8 = TSdlInteger<Owner, int8> |
template<typename Owner > | |
using | TSdlUint8 = TSdlInteger<Owner, uint8> |
template<typename Owner > | |
using | TSdlInt16 = TSdlInteger<Owner, int16> |
template<typename Owner > | |
using | TSdlUint16 = TSdlInteger<Owner, uint16> |
template<typename Owner > | |
using | TSdlInt32 = TSdlInteger<Owner, int32> |
template<typename Owner > | |
using | TSdlUInt32 = TSdlInteger<Owner, uint32> |
template<typename Owner > | |
using | TSdlInt64 = TSdlInteger<Owner, int64> |
template<typename Owner > | |
using | TSdlUInt64 = TSdlInteger<Owner, uint64> |
template<typename Owner > | |
using | TSdlSize = TSdlInteger<Owner, std::size_t> |
template<typename Owner > | |
using | TSdlOptionalInt8 = TSdlOptionalInteger<Owner, int8> |
template<typename Owner > | |
using | TSdlOptionalUint8 = TSdlOptionalInteger<Owner, uint8> |
template<typename Owner > | |
using | TSdlOptionalInt16 = TSdlOptionalInteger<Owner, int16> |
template<typename Owner > | |
using | TSdlOptionalUint16 = TSdlOptionalInteger<Owner, uint16> |
template<typename Owner > | |
using | TSdlOptionalInt32 = TSdlOptionalInteger<Owner, int32> |
template<typename Owner > | |
using | TSdlOptionalUint32 = TSdlOptionalInteger<Owner, uint32> |
template<typename Owner > | |
using | TSdlOptionalInt64 = TSdlOptionalInteger<Owner, int64> |
template<typename Owner > | |
using | TSdlOptionalUint64 = TSdlOptionalInteger<Owner, uint64> |
template<typename Owner > | |
using | TSdlOptionalSize = TSdlOptionalInteger<Owner, std::size_t> |
template<typename Owner , typename Element = real> | |
using | TSdlOptionalQuaternion = TSdlQuaternion<Owner, Element, TSdlOptionalValue<math::TQuaternion<Element>, Owner>> |
template<typename Owner , typename FloatType = real> | |
using | TSdlOptionalReal = TSdlReal<Owner, FloatType, TSdlOptionalValue<FloatType, Owner>> |
A field class that binds an optional floating point member variable. | |
template<typename Owner > | |
using | TSdlFloat = TSdlReal<Owner, float> |
template<typename Owner > | |
using | TSdlDouble = TSdlReal<Owner, double> |
template<typename Owner > | |
using | TSdlFloat32 = TSdlReal<Owner, float32> |
template<typename Owner > | |
using | TSdlFloat64 = TSdlReal<Owner, float64> |
template<typename Owner > | |
using | TSdlOptionalFloat = TSdlOptionalReal<Owner, float> |
template<typename Owner > | |
using | TSdlOptionalDouble = TSdlOptionalReal<Owner, double> |
template<typename Owner > | |
using | TSdlOptionalFloat32 = TSdlOptionalReal<Owner, float32> |
template<typename Owner > | |
using | TSdlOptionalFloat64 = TSdlOptionalReal<Owner, float64> |
template<typename Owner , typename Element > | |
using | TSdlOptionalVector2 = TSdlVector2<Owner, Element, TSdlOptionalValue<math::TVector2<Element>, Owner>> |
template<typename Owner > | |
using | TSdlVector2R = TSdlVector2<Owner, real> |
template<typename Owner > | |
using | TSdlVector2S = TSdlVector2<Owner, std::size_t> |
template<typename Owner > | |
using | TSdlOptionalVector2R = TSdlOptionalVector2<Owner, real> |
template<typename Owner > | |
using | TSdlOptionalVector2S = TSdlOptionalVector2<Owner, std::size_t> |
template<typename Owner , typename Element = real> | |
using | TSdlOptionalVector3 = TSdlVector3<Owner, Element, TSdlOptionalValue<math::TVector3<Element>, Owner>> |
SDL binding type of an optional Vector3. | |
template<typename Owner , typename Element = real> | |
using | TSdlOptionalVector4 = TSdlVector4<Owner, Element, TSdlOptionalValue<math::TVector4<Element>, Owner>> |
SDL binding type of an optional Vector4. | |
using | SdlConstInstance = TSdlAnyInstance<true> |
using | SdlNonConstInstance = TSdlAnyInstance<false> |
using | SdlResourceId = std::uint64_t |
using | AnyConstPtr = TAnyPtr<true> |
A type-safe, lightweight wrapper for any const raw pointer type. | |
using | AnyNonConstPtr = TAnyPtr<false> |
A type-safe, lightweight wrapper for any non-const raw pointer type. | |
template<CEnum EnumType> | |
using | TEnumFlags = TBitFlags<std::underlying_type_t<EnumType>, EnumType> |
Convenient type for using scoped/unscoped enum for bit flags. | |
template<auto KEY, typename Value > | |
using | TFixedEnumMapEntry = TFixedMapEntry<decltype(KEY), KEY, Value> |
template<typename... Entries> | |
using | TFixedEnumMap = TFixedMapBase<Entries...> |
template<fixed_integer_map_detail::Key KEY, typename Value > | |
using | TFixedIntegerMapEntry = TFixedMapEntry<fixed_integer_map_detail::Key, KEY, Value> |
template<typename... Entries> | |
using | TFixedIntegerMap = TFixedMapBase<Entries...> |
template<typename Func , std::size_t MIN_SIZE_HINT = PH_TFUNCTION_DEFAULT_MIN_SIZE_IN_BYTES> | |
using | TFunction = function_detail::TFunction<Func, MIN_SIZE_HINT> |
template<CSubscriptable Ts> | |
using | TSubscriptedTypeOf = decltype(std::declval<Ts>()[0]) |
template<typename T , std::size_t EXTENT = std::dynamic_extent> | |
using | TSpan = std::span<T, EXTENT> |
A contiguous sequence of objects of type T . Effectively the same as std::span . | |
template<typename T , std::size_t EXTENT = std::dynamic_extent> | |
using | TSpanView = std::span<const T, EXTENT> |
Same as TSpan , except that the objects are const-qualified. Note that for pointer types, the const is applied on the pointer itself. For example, when T is const int* , the accessed type will be const int* const . | |
using | CookPriority = uint8 |
using | CookLevel = uint8 |
Enumerations | |
enum class | EEngineProject { Engine , EngineTest , SDLGen , SDLGenCLI , PhotonCLI , Editor , EditorLib , EditorTest , IntersectError } |
enum class | ESurfaceRefineMode { Manual , Empirical , Iterative , Default = Iterative } |
enum class | EMathImageOp { Add = 0 , Subtract , Multiply , Divide , Power , Absolute , Clamp } |
enum class | EImageSampleMode { Unspecified = 0 , Bilinear , Nearest , Trilinear } |
enum class | EImageWrapMode { Unspecified = 0 , ClampToEdge , Repeat , FlippedClampToEdge } |
enum class | ESurfaceMaterialMixMode { Lerp = 0 } |
enum class | EInterfaceFresnel { Unspecified = 0 , Schlick , Exact } |
enum class | EInterfaceMicrosurface { Unspecified = 0 , TrowbridgeReitz , Beckmann } |
enum class | ERoughnessToAlpha { Unspecified = 0 , Equaled , Squared , PbrtV3 } |
enum class | EIdealSubstance { Absorber = 0 , DielectricReflector , DielectricTransmitter , MetallicReflector , Dielectric } |
enum class | ECoordSys : int { World = 0 , Local = 1 , SIZE = 2 } |
enum class | EEmitterFeatureSet : detail::EmitterFlagIntType { ZeroBounceSample = detail::efs_zero_bounce_sample_bits , BsdfSample = detail::efs_bsdf_sample_bits , DirectSample = detail::efs_direct_sample_bits , EmissionSample = detail::efs_emission_sample_bits , Default } |
Runtime features of an emitter. More... | |
enum class | EFaceTopology : uint8 { General = math::flag_bit<uint8, 0>() , Planar = math::flag_bit<uint8, 1>() , Convex = math::flag_bit<uint8, 2>() , Concave = math::flag_bit<uint8, 3>() , Triangular = math::flag_bit<uint8, 4>() , Quadrilateral = math::flag_bit<uint8, 5>() } |
Categorizing face topology. More... | |
enum class | EVertexAttribute : uint8 { Position_0 = 0 , Normal_0 , Tangent_0 , TexCoord_0 , TexCoord_1 , Color_0 , SIZE } |
enum class | EVertexElement : uint8 { Float32 = 0 , Float16 , Int32 , Int16 , OctahedralUnitVec3_32 , OctahedralUnitVec3_24 , SIZE } |
enum class | EAttribute : unsigned int { LIGHT_ENERGY = 0 , LIGHT_ENERGY_HALF_EFFORT , LIGHT_ENERGY_INDEXED , NORMAL , DEPTH , TEXTURE_COORDINATE , POSITION , SIZE } |
enum class | ERegionStatus { Invalid , Finished , Updating } |
Status of a rendering region. Note that when adding new entries, the order is important: later entries will take precedence when multiple regions are merged together. For example, merging Invalid and Updating regions will result in an Updating region. More... | |
enum class | EPhotonData { ThroughputRadiance , Pos , FromDir , GeometryNormal , PathLength } |
enum class | EViewpointData { SurfaceHit , RasterCoord , Radius , NumPhotons , Tau , ViewThroughput , ViewDir , ViewRadiance } |
enum class | EViewPathSampleMode { SinglePath , ElementalBranch } |
Directives on how to trace the next path. More... | |
enum class | EHaltonPermutation { None = 0 , Fixed , PerDigit , Owen } |
Permutation schemes available for a Halton sequence. See sdl_halton_randomization_types.h for detailed explanation. More... | |
enum class | EHaltonSequence { Original = 0 , Leap , RandomLeap , RandomStart } |
enum class | EScheduler { Unspecified = 0 , Bulk , Stripe , Grid , Tile , Spiral , SpiralGrid } |
enum class | EMaskingShadowing { HightCorrelated = 0 , Separable , DirectionCorrelated , HeightDirectionCorrelated } |
Different types of masking and shadowing terms for microfacet distributions. Eric Heitz has published a detailed explanation [10], which is excellent and definitely worth a read in my opinion. More... | |
enum class | ESurfacePhenomenon : uint32 { DiffuseReflection = math::flag_bit<uint32, 0>() , NearDiffuseReflection = math::flag_bit<uint32, 1>() , DeltaReflection = math::flag_bit<uint32, 2>() , GlossyReflection = math::flag_bit<uint32, 3>() , DiffuseTransmission = math::flag_bit<uint32, 4>() , NearDiffuseTransmission = math::flag_bit<uint32, 5>() , DeltaTransmission = math::flag_bit<uint32, 6>() , GlossyTransmission = math::flag_bit<uint32, 7>() } |
Available surface phenomena. More... | |
enum class | ESurfaceHitReason : detail::SurfaceHitReasonIntType { Invalid = 0 , Unknown = detail::shr_unknown_bits , IncidentRay = detail::shr_incident_ray_bits , SampledPos = detail::shr_sampled_pos_bits , SampledDir = detail::shr_sampled_dir_bits , SampledPosDir = detail::shr_sampled_pos_bits | detail::shr_sampled_dir_bits } |
enum class | ETexWrapMode { REPEAT , CLAMP_TO_EDGE } |
enum class | EPictureFile { Unknown = 0 , PNG , JPG , BMP , TGA , HDR , EXR , HighPrecisionEXR , PFM } |
enum class | EPlyDataFormat { ASCII = 0 , BinaryLittleEndian , BinaryBigEndian , NUM } |
enum class | EPlyDataType { Unspecified = 0 , Int8 , UInt8 , Int16 , UInt16 , Int32 , UInt32 , Float32 , Float64 , NUM } |
enum class | EAccelerator { Unspecified = 0 , BruteForce , BVH , BVH4 , BVH8 , Kdtree , IndexedKdtree } |
enum class | EPhotonMappingMode { Vanilla = 0 , Progressive , StochasticProgressive , ProbabilisticProgressive } |
enum class | ERayEnergyEstimator { Unspecified = 0 , BVPT , BNEEPT , BVPTDL } |
enum class | ESampleFilter { Unspecified = 0 , Box , Gaussian , MitchellNetravali , BlackmanHarris } |
enum class | EPicturePixelComponent { Empty = 0 , Int8 , UInt8 , Int16 , UInt16 , Int32 , UInt32 , Int64 , UInt64 , Float16 , Float32 , Float64 } |
enum class | ESdlDataFormat : uint8 { None = 0 , Single , Vector2 , Vector3 , Vector4 , Quaternion , Vector , Vector2Vector , Vector3Vector , QuaternionVector , SharedPtrVector , SharedPointer , UniquePointer , SIZE } |
Format of the data used by SDL. Each listed data format tells how a group of data is arranged internally as well as its meaning. Useful for code that require some determinable runtime behavior. More... | |
enum class | ESdlDataType : uint8 { None = 0 , Int8 , UInt8 , Int16 , UInt16 , Int32 , UInt32 , Int64 , UInt64 , Float32 , Float64 , Bool , String , Path , ResourceIdentifier , Spectrum , Enum , Struct , Geometry , Material , Motion , Actor , Image , FrameProcessor , Observer , SampleSource , Visualizer , Option , Object , SIZE } |
Common data types used by SDL. Each listed data type has some form of one to one mapping to a specific runtime type. Useful for code that require some determinable runtime behavior. More... | |
enum class | ESdlTypeCategory { Unspecified = 0 , Ref_Geometry , Ref_Material , Ref_Motion , Ref_Image , Ref_Actor , Ref_FrameProcessor , Ref_Observer , Ref_SampleSource , Ref_Visualizer , Ref_Option , Ref_Object , SIZE } |
enum class | EFieldImportance { Optional , NiceToHave , Required } |
enum | ESdlClauseValue { General = 0 , PersistentTargetName , CachedTargetName } |
Meta information for the value in a clause. More... | |
enum class | ESdlCommandType { Unknown = 0 , Directive , Load , Removal , Update , Execution , NamedDataPacket , Phantom } |
enum class | ESriType { Unknown = 0 , Bundle , External } |
Type of the SDL Resource Identifier (SRI). More... | |
enum class | ECookPriority : CookPriority { High = 1 , Normal = std::numeric_limits<CookPriority>::max() / 2 , Low } |
enum class | ECookLevel : CookLevel { First = 0 , Normal = std::numeric_limits<CookLevel>::max() / 2 , Last } |
The root for all renderer implementations.
using ph::AnyConstPtr = TAnyPtr<true> |
A type-safe, lightweight wrapper for any const raw pointer type.
using ph::AnyNonConstPtr = TAnyPtr<false> |
A type-safe, lightweight wrapper for any non-const raw pointer type.
using ph::CookLevel = uint8 |
using ph::CookPriority = uint8 |
using ph::FaceTopology = TEnumFlags<EFaceTopology> |
using ph::HdrComponent = float32 |
using ph::HdrRgbFrame = TFrame<HdrComponent, 3> |
using ph::IndexedQuadBuffer = TIndexedPolygonBuffer<4> |
using ph::IndexedTriangleBuffer = TIndexedPolygonBuffer<3> |
using ph::LdrComponent = uint8 |
using ph::LdrRgbFrame = TFrame<LdrComponent, 3> |
using ph::Region = math::TAABB2D<int64> |
using ph::SdlConstInstance = TSdlAnyInstance<true> |
using ph::SdlGetterVariant |
using ph::SdlNonConstInstance = TSdlAnyInstance<false> |
using ph::SdlResourceId = std::uint64_t |
using ph::SdlSetterVariant |
using ph::SurfaceElemental = int |
using ph::TConversionTexture = TUnaryTextureOperator<InputType, OutputType, texfunc::TDefaultConversion<InputType, OutputType>> |
using ph::TEnumFlags = TBitFlags<std::underlying_type_t<EnumType>, EnumType> |
Convenient type for using scoped/unscoped enum for bit flags.
using ph::TFixedEnumMap = TFixedMapBase<Entries...> |
using ph::TFixedEnumMapEntry = TFixedMapEntry<decltype(KEY), KEY, Value> |
using ph::TFixedIntegerMap = TFixedMapBase<Entries...> |
using ph::TFixedIntegerMapEntry = TFixedMapEntry<fixed_integer_map_detail::Key, KEY, Value> |
using ph::TFunction = function_detail::TFunction<Func, MIN_SIZE_HINT> |
using ph::TSdlDouble = TSdlReal<Owner, double> |
using ph::TSdlFloat = TSdlReal<Owner, float> |
using ph::TSdlFloat32 = TSdlReal<Owner, float32> |
using ph::TSdlFloat64 = TSdlReal<Owner, float64> |
using ph::TSdlInt16 = TSdlInteger<Owner, int16> |
using ph::TSdlInt32 = TSdlInteger<Owner, int32> |
using ph::TSdlInt64 = TSdlInteger<Owner, int64> |
using ph::TSdlInt8 = TSdlInteger<Owner, int8> |
using ph::TSdlOptionalDouble = TSdlOptionalReal<Owner, double> |
using ph::TSdlOptionalEnumField = TSdlEnumField<Owner, EnumType, TSdlOptionalValue<EnumType, Owner>> |
using ph::TSdlOptionalFloat = TSdlOptionalReal<Owner, float> |
using ph::TSdlOptionalFloat32 = TSdlOptionalReal<Owner, float32> |
using ph::TSdlOptionalFloat64 = TSdlOptionalReal<Owner, float64> |
using ph::TSdlOptionalInt16 = TSdlOptionalInteger<Owner, int16> |
using ph::TSdlOptionalInt32 = TSdlOptionalInteger<Owner, int32> |
using ph::TSdlOptionalInt64 = TSdlOptionalInteger<Owner, int64> |
using ph::TSdlOptionalInt8 = TSdlOptionalInteger<Owner, int8> |
using ph::TSdlOptionalInteger = TSdlInteger<Owner, IntType, TSdlOptionalValue<IntType, Owner>> |
A field class that binds an optional integral member variable.
using ph::TSdlOptionalQuaternion = TSdlQuaternion<Owner, Element, TSdlOptionalValue<math::TQuaternion<Element>, Owner>> |
using ph::TSdlOptionalReal = TSdlReal<Owner, FloatType, TSdlOptionalValue<FloatType, Owner>> |
A field class that binds an optional floating point member variable.
using ph::TSdlOptionalSize = TSdlOptionalInteger<Owner, std::size_t> |
using ph::TSdlOptionalSpectrum = TSdlSpectrum<Owner, TSdlOptionalValue<math::Spectrum, Owner>> |
using ph::TSdlOptionalUint16 = TSdlOptionalInteger<Owner, uint16> |
using ph::TSdlOptionalUint32 = TSdlOptionalInteger<Owner, uint32> |
using ph::TSdlOptionalUint64 = TSdlOptionalInteger<Owner, uint64> |
using ph::TSdlOptionalUint8 = TSdlOptionalInteger<Owner, uint8> |
using ph::TSdlOptionalVector2 = TSdlVector2<Owner, Element, TSdlOptionalValue<math::TVector2<Element>, Owner>> |
using ph::TSdlOptionalVector2R = TSdlOptionalVector2<Owner, real> |
using ph::TSdlOptionalVector2S = TSdlOptionalVector2<Owner, std::size_t> |
using ph::TSdlOptionalVector3 = TSdlVector3<Owner, Element, TSdlOptionalValue<math::TVector3<Element>, Owner>> |
SDL binding type of an optional Vector3.
using ph::TSdlOptionalVector4 = TSdlVector4<Owner, Element, TSdlOptionalValue<math::TVector4<Element>, Owner>> |
SDL binding type of an optional Vector4.
using ph::TSdlSize = TSdlInteger<Owner, std::size_t> |
using ph::TSdlUint16 = TSdlInteger<Owner, uint16> |
using ph::TSdlUInt32 = TSdlInteger<Owner, uint32> |
using ph::TSdlUInt64 = TSdlInteger<Owner, uint64> |
using ph::TSdlUint8 = TSdlInteger<Owner, uint8> |
using ph::TSdlVector2R = TSdlVector2<Owner, real> |
using ph::TSdlVector2S = TSdlVector2<Owner, std::size_t> |
using ph::TSpan = std::span<T, EXTENT> |
A contiguous sequence of objects of type T
. Effectively the same as std::span
.
using ph::TSpanView = std::span<const T, EXTENT> |
Same as TSpan
, except that the objects are const-qualified. Note that for pointer types, the const is applied on the pointer itself. For example, when T
is const int*
, the accessed type will be const int* const
.
using ph::TSubscriptedTypeOf = decltype(std::declval<Ts>()[0]) |
using ph::TTexPixel = math::TArithmeticArray<T, N> |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
Runtime features of an emitter.
Emitter
itself, as it is impossible to determine the intended usage solely from its interface. Currently, light transport algorithms need to handle ZeroBounceSample
and BsdfSample
by themselves.
|
strong |
|
strong |
Categorizing face topology.
|
strong |
|
strong |
Permutation schemes available for a Halton sequence. See sdl_halton_randomization_types.h
for detailed explanation.
Enumerator | |
---|---|
None | |
Fixed | |
PerDigit | |
Owen |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
Different types of masking and shadowing terms for microfacet distributions. Eric Heitz has published a detailed explanation [10], which is excellent and definitely worth a read in my opinion.
Enumerator | |
---|---|
HightCorrelated | Modeling the correlation between masking and shadowing due to the height of the microsurface. This is a more accurate version than the one used by Walter et al. [18] (which is |
Separable | Statistically independent masking and shadowing. This form is simpelr but always overestimates the geometry term as some correlation always exists. |
DirectionCorrelated | Modeling the correlation between masking and shadowing due to the differences between incident and outgoing directions. |
HeightDirectionCorrelated | Modeling the correlation between masking and shadowing due to both height and direction differences. This is the most accurate version of all. |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
enum ph::ESdlClauseValue |
|
strong |
|
strong |
Format of the data used by SDL. Each listed data format tells how a group of data is arranged internally as well as its meaning. Useful for code that require some determinable runtime behavior.
Enumerator | |
---|---|
None | |
Single |
|
Vector2 |
|
Vector3 |
|
Vector4 |
|
Quaternion |
|
Vector |
|
Vector2Vector |
|
Vector3Vector |
|
QuaternionVector |
|
SharedPtrVector |
|
SharedPointer |
|
UniquePointer |
|
SIZE |
|
strong |
Common data types used by SDL. Each listed data type has some form of one to one mapping to a specific runtime type. Useful for code that require some determinable runtime behavior.
Enumerator | |
---|---|
None | |
Int8 | The |
UInt8 | The |
Int16 | The |
UInt16 | The |
Int32 | The |
UInt32 | The |
Int64 | The |
UInt64 | The |
Float32 | The |
Float64 | The |
Bool | The |
String | The |
Path | The |
ResourceIdentifier | The |
Spectrum | The |
Enum | Enum types. Specific enum type would require reflection from the enum name. |
Struct | Struct types. Specific struct type would require reflection from the struct name. |
Geometry |
|
Material |
|
Motion |
|
Actor |
|
Image |
|
FrameProcessor |
|
Observer |
|
SampleSource |
|
Visualizer |
|
Option |
|
Object |
|
SIZE |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
inline |
Given a valid set of target point's evaluation attributes (Ng
, Ns
, L
, V
), checks whether photon
is usable under the sidedness
constraint.
void ph::after_engine_init | ( | const EngineInitSettings & | settings | ) |
void ph::before_engine_exit | ( | ) |
|
inline |
Effectively the same as std::bit_cast()
. This function also works without C++20.
|
inlineconstexpr |
|
inline |
|
inlineconstexpr |
|
inline |
Estimate the energy that can never be obtained by utilizing a photon map. The estimation is for the current hit point only. To account for lost energy along a path with multiple hit points, call this function for each hit point and sum the results.
viewPathLength | Current view path length. Each path length calculates an independent component of the total energy (in equilibrium). |
X | Current hit point. |
viewPathThroughput | Current view path throughput. |
photonMapInfo | Information of the photon map that is being involved in the energy evaluation process. |
scene | The scene that is being rendered. |
minFullPathLength | The minimum length of the full light transport path to consider. |
maxFullPathLength | The maximum length of the full light transport path to consider (inclusive). |
viewPathThroughput
.
|
inline |
Estimate the energy that is otherwise lost forever if the path is extended. The estimation is for the current hit point only. To account for lost energy along an extended path with multiple hit points, call this function for each hit point and sum the results. For a hit point, only one of estimate_lost_energy_for_extending()
and estimate_lost_energy_for_merging()
can be called.
viewPathLength | Current view path length. Each path length calculates an independent component of the total energy (in equilibrium). |
X | Current hit point. |
viewPathThroughput | Current view path throughput. |
photonMapInfo | Information of the photon map that is being involved in the energy evaluation process. |
scene | The scene that is being rendered. |
minFullPathLength | The minimum length of the full light transport path to consider. |
maxFullPathLength | The maximum length of the full light transport path to consider (inclusive). |
viewPathThroughput
.
|
inline |
Estimate the energy that is otherwise lost forever if the path is merged. The estimation is for the current hit point only and is expected to be called when the path ended (merged). For a hit point, only one of estimate_lost_energy_for_extending()
and estimate_lost_energy_for_merging()
can be called.
viewPathLength | Current view path length. This function calculates an independent component of the total energy (in equilibrium). |
X | Current hit point. |
viewPathThroughput | Current view path throughput. |
photonMapInfo | Information of the photon map that is being involved in the energy evaluation process. |
scene | The scene that is being rendered. |
minFullPathLength | The minimum length of the full light transport path to consider. |
maxFullPathLength | The maximum length of the full light transport path to consider (inclusive). |
viewPathThroughput
. bool ph::exit_API_database | ( | ) |
bool ph::exit_render_engine | ( | ) |
Exit the render engine. Must be called before leaving the engine. Using the engine after this call returned is prohibited (except some cleanup operations such as destruction).
SdlResourceId ph::gen_sdl_resource_id | ( | ) |
Path ph::get_config_directory | ( | EEngineProject | project | ) |
Path ph::get_internal_resource_directory | ( | EEngineProject | project | ) |
Directory to resources required by the project.
std::span< const SdlClass *const > ph::get_registered_engine_classes | ( | ) |
Get a list of registered SDL classes from the engine.
std::span< const SdlEnum *const > ph::get_registered_engine_enums | ( | ) |
Get a list of registered SDL enums from the engine.
Path ph::get_resource_directory | ( | EEngineProject | project | ) |
Directory to additional/optional resources used by the project.
Path ph::get_script_directory | ( | EEngineProject | project | ) |
Directory to scripts for the project.
bool ph::init_engine_core | ( | const EngineInitSettings & | settings | ) |
bool ph::init_engine_IO_infrastructure | ( | const EngineInitSettings & | settings | ) |
bool ph::init_render_engine | ( | std::optional< EngineInitSettings > | settings = std::nullopt | ) |
Initialize the render engine.
Must be called before any other use of the engine. This functions also initializes all dependencies. Note that initialization is generally not required when using APIs from a base library (e.g., the Common
library)–in case of an exception (such as logging), consult the API's documentation to see if anything should be done before using it.
settings | Settings for the engine. If not provided, the engine will try to load from a standard location (automatically create a default one if not exist). |
|
inlineconsteval |
Effectively testing std::endian::native == std::endian::big
. This function also works without C++20.
|
extern |
void ph::loadCbox3ObjScene | ( | VisualWorld *const | out_world | ) |
void ph::loadCornellBox | ( | VisualWorld *const | out_world, |
const real | boxSize ) |
void ph::loadTestScene | ( | VisualWorld *const | out_world | ) |
*auto sphereMaterial = std::make_shared<MatteOpaque>();
|
inline |
void ph::parallel_work | ( | const std::size_t | numWorkers, |
std::function< void(std::size_t workerIdx) > | work ) |
Runs specified works in parallel. The function will block the calling thread until all works are complete.
numWorkers | Number of workers running the works. |
work | The actual work that is going to be executed; where the index of the executing worker is specified as input. |
void ph::parallel_work | ( | const std::size_t | totalWorkSize, |
const std::size_t | numWorkers, | ||
std::function< void(std::size_t workerIdx, std::size_t workBegin, std::size_t workEnd) > | work ) |
Runs specified works in parallel. The function will block the calling thread until all works are complete. Note that 0-sized works are not executed (work
is not called in this case).
totalWorkSize | Total amount of work. |
numWorkers | Number of workers running the works. |
work | The actual work that is going to be executed; where the index range [workBegin, workEnd) is specified as input, as well as the index of the executing worker. |
void ph::parallel_work | ( | FixedSizeThreadPool & | workers, |
const std::size_t | totalWorkSize, | ||
std::function< void(std::size_t workerIdx, std::size_t workBegin, std::size_t workEnd) > | work ) |
Runs specified works in parallel using a thread pool. The function will block the calling thread until all works are complete. Note that 0-sized works are not executed (work
is not called in this case).
workers | The thread pool to use. |
totalWorkSize | Total amount of work. |
work | The actual work that is going to be executed; where the index range [workBegin, workEnd) is specified as input, as well as the index of the executing worker. |
ph::PH_DECLARE_LOG_GROUP | ( | ActorCooking | ) |
ph::PH_DECLARE_LOG_GROUP | ( | PMRenderer | ) |
ph::PH_DEFINE_EXTERNAL_LOG_GROUP | ( | ApiDatabase | , |
Core | ) |
ph::PH_DEFINE_EXTERNAL_LOG_GROUP | ( | CookedResourceCollection | , |
World | ) |
ph::PH_DEFINE_EXTERNAL_LOG_GROUP | ( | CookedResourceCollectionBase | , |
World | ) |
ph::PH_DEFINE_EXTERNAL_LOG_GROUP | ( | SdlClass | , |
SDL | ) |
ph::PH_DEFINE_EXTERNAL_LOG_GROUP | ( | SdlField | , |
SDL | ) |
ph::PH_DEFINE_EXTERNAL_LOG_GROUP | ( | SdlFunction | , |
SDL | ) |
ph::PH_DEFINE_EXTERNAL_LOG_GROUP | ( | SdlStruct | , |
SDL | ) |
ph::PH_DEFINE_EXTERNAL_LOG_GROUP | ( | TableFGD | , |
BSDF | ) |
ph::PH_DEFINE_EXTERNAL_LOG_GROUP | ( | TableTIR | , |
BSDF | ) |
ph::PH_DEFINE_EXTERNAL_LOG_GROUP | ( | TransientResourceCache | , |
World | ) |
ph::PH_DEFINE_INLINE_ENUM_FLAG_OPERATORS | ( | EEmitterFeatureSet | ) |
ph::PH_DEFINE_INLINE_ENUM_FLAG_OPERATORS | ( | EFaceTopology | ) |
ph::PH_DEFINE_INLINE_ENUM_FLAG_OPERATORS | ( | ESurfaceHitReason | ) |
ph::PH_DEFINE_INLINE_ENUM_FLAG_OPERATORS | ( | ESurfacePhenomenon | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | AGeometricLight | , |
Actor | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | AttributeRenderer | , |
Renderer | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | BinaryFileReader | , |
DataIO | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | BinaryMixedImage | , |
Image | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | BinaryMixedSurfaceMaterial | , |
Material | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | BlackBodyRadiationImage | , |
Image | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | CheckerboardImage | , |
Image | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | ConductiveInterfaceInfo | , |
BSDF | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | ConstantImage | , |
Image | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | CookedNamedResource | , |
World | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | CookingContext | , |
World | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | CoreCookedUnit | , |
Core | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | CppAPI | , |
Engine | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | DielectricInterfaceInfo | , |
BSDF | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | DomeActor | , |
Actor | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | Engine | , |
Core | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | EqualSamplingRenderer | , |
Renderer | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | ExrFileReader | , |
DataIO | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | FormattedTextInputStream | , |
DataIO | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | FrameUtilities | , |
Frame | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | FullMaterial | , |
Material | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | GPlyPolygonMesh | , |
Geometry | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | IdealSubstance | , |
Material | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | IesData | , |
DataIO | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | IesFile | , |
DataIO | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | IndexedUIntBuffer | , |
Core | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | IndexedVertexBuffer | , |
Core | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | InitAndExit | , |
Engine | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | LatLongEnvEmitter | , |
Emitter | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | MicrosurfaceInfo | , |
BSDF | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | OrientedRasterObserver | , |
Observer | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | PathTracingVisualizer | , |
Visualizer | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | PfmFile | , |
DataIO | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | PhotonMappingVisualizer | , |
Visualizer | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | PlyFile | , |
DataIO | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | PowerFavoringEmitterSampler | , |
EmitterSampler | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | PreethamDomeActor | , |
Actor | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | PreethamTexture | , |
Texture | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | PrimitiveMetadata | , |
Primitive | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | RasterFileImage | , |
Image | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | RawResourceCollection | , |
SDL | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | SceneDescription | , |
SDL | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | SdlCommandGenerator | , |
SDL | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | SdlCommandParser | , |
SDL | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | SdlDataPacketCollection | , |
SDL | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | SdlDependencyResolver | , |
SDL | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | SdlNamedOutputClauses | , |
SDL | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | SdlSceneFileReader | , |
SDL | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | SdlSceneFileWriter | , |
SDL | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | SingleFrameRenderSession | , |
RenderSession | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | SwizzledImage | , |
Image | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | TextFileLoader | , |
DataIO | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | TransformedInstanceActor | , |
Actor | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | VisualWorld | , |
World | ) |
ph::PH_DEFINE_INTERNAL_LOG_GROUP | ( | Workflow | , |
Concurrent | ) |
ph::PH_DEFINE_INTERNAL_TIMER_STAT | ( | BSDFAndIndirectLightSampling | , |
Render_BNEEPTEstimator | ) |
ph::PH_DEFINE_INTERNAL_TIMER_STAT | ( | CookActorLevels | , |
VisualWorld | ) |
ph::PH_DEFINE_INTERNAL_TIMER_STAT | ( | DirectLightSampling | , |
Render_BNEEPTEstimator | ) |
ph::PH_DEFINE_INTERNAL_TIMER_STAT | ( | FullEstimation | , |
Render_BNEEPTEstimator | ) |
ph::PH_DEFINE_INTERNAL_TIMER_STAT | ( | GetClauses | , |
SdlCommandParser | ) |
ph::PH_DEFINE_INTERNAL_TIMER_STAT | ( | GetCommandHeader | , |
SdlCommandParser | ) |
ph::PH_DEFINE_INTERNAL_TIMER_STAT | ( | GetSDLClass | , |
SdlCommandParser | ) |
ph::PH_DEFINE_INTERNAL_TIMER_STAT | ( | LoadCommands | , |
Engine | ) |
ph::PH_DEFINE_INTERNAL_TIMER_STAT | ( | ParseCommandTotal | , |
SdlCommandParser | ) |
ph::PH_DEFINE_INTERNAL_TIMER_STAT | ( | ParseDirectiveCommand | , |
SdlCommandParser | ) |
ph::PH_DEFINE_INTERNAL_TIMER_STAT | ( | ParseExecutionCommand | , |
SdlCommandParser | ) |
ph::PH_DEFINE_INTERNAL_TIMER_STAT | ( | ParseLoadCommand | , |
SdlCommandParser | ) |
ph::PH_DEFINE_INTERNAL_TIMER_STAT | ( | ParseNamedDataPacketCommand | , |
SdlCommandParser | ) |
ph::PH_DEFINE_INTERNAL_TIMER_STAT | ( | Render | , |
Engine | ) |
ph::PH_DEFINE_INTERNAL_TIMER_STAT | ( | UpdateAccelerators | , |
VisualWorld | ) |
ph::PH_DEFINE_INTERNAL_TIMER_STAT | ( | UpdateLightSamplers | , |
VisualWorld | ) |
ph::PH_DEFINE_INTERNAL_TIMER_STAT | ( | ZeroBounceDirect | , |
Render_BNEEPTEstimator | ) |
ph::PH_DEFINE_LOG_GROUP | ( | ActorCooking | , |
Actor | ) |
ph::PH_DEFINE_LOG_GROUP | ( | PMRenderer | , |
Renderer | ) |
ph::PH_DEFINE_SDL_ENUM | ( | TSdlGeneralEnum< EAccelerator > | ) |
ph::PH_DEFINE_SDL_ENUM | ( | TSdlGeneralEnum< EHaltonPermutation > | ) |
ph::PH_DEFINE_SDL_ENUM | ( | TSdlGeneralEnum< EHaltonSequence > | ) |
ph::PH_DEFINE_SDL_ENUM | ( | TSdlGeneralEnum< EIdealSubstance > | ) |
ph::PH_DEFINE_SDL_ENUM | ( | TSdlGeneralEnum< EImageSampleMode > | ) |
ph::PH_DEFINE_SDL_ENUM | ( | TSdlGeneralEnum< EImageWrapMode > | ) |
ph::PH_DEFINE_SDL_ENUM | ( | TSdlGeneralEnum< EInterfaceFresnel > | ) |
ph::PH_DEFINE_SDL_ENUM | ( | TSdlGeneralEnum< EInterfaceMicrosurface > | ) |
ph::PH_DEFINE_SDL_ENUM | ( | TSdlGeneralEnum< EMaskingShadowing > | ) |
ph::PH_DEFINE_SDL_ENUM | ( | TSdlGeneralEnum< EMathImageOp > | ) |
ph::PH_DEFINE_SDL_ENUM | ( | TSdlGeneralEnum< EPhotonMappingMode > | ) |
ph::PH_DEFINE_SDL_ENUM | ( | TSdlGeneralEnum< EPictureFile > | ) |
ph::PH_DEFINE_SDL_ENUM | ( | TSdlGeneralEnum< ERayEnergyEstimator > | ) |
ph::PH_DEFINE_SDL_ENUM | ( | TSdlGeneralEnum< ERoughnessToAlpha > | ) |
ph::PH_DEFINE_SDL_ENUM | ( | TSdlGeneralEnum< ESampleFilter > | ) |
ph::PH_DEFINE_SDL_ENUM | ( | TSdlGeneralEnum< EScheduler > | ) |
ph::PH_DEFINE_SDL_ENUM | ( | TSdlGeneralEnum< ESurfaceMaterialMixMode > | ) |
ph::PH_DEFINE_SDL_ENUM | ( | TSdlGeneralEnum< math::EColorSpace > | ) |
ph::PH_DEFINE_SDL_ENUM | ( | TSdlGeneralEnum< math::EColorUsage > | ) |
EPictureFile ph::picture_file_type_from_extension | ( | std::string_view | ext | ) |
|
inlinedelete |
All remaining types are forbidden. This forwarding reference overload also prevent the use of rvalue to guard against potential dangling pointer.
|
inline |
|
inline |
Access a target's member consistently using .
or ->
operators. Note that these functions treat smart pointers as regular objects (ptr_access()
and ref_access()
will refer to the object itself, not its managed data). A nice discussion for the topic: https://stackoverflow.com/questions/14466620/c-template-specialization-calling-methods-on-types-that-could-be-pointers-or.
|
inlinedelete |
Cannot dereference a nullptr
.
|
inlinedelete |
All remaining types are forbidden. This forwarding reference overload also prevent the use of rvalue to guard against potential dangling reference.
|
inline |
|
inline |
|
inline |
|
inline |
std::string_view ph::to_string | ( | EEngineProject | project | ) |
|
inlineconstexpr |
All available elementals.
|
inlineconstexpr |
All available surface phenomena.
|
inlineconstexpr |
Surface phenomena with pure delta distribution.
|
inlineconstexpr |
Surface phenomena with pure diffuse distribution.
|
inlineconstexpr |
|
inlineconstexpr |
Surface phenomena with pure glossy distribution.