Diligent Engine
 
Loading...
Searching...
No Matches
Diligent::ISuperResolution Struct Referenceabstract

#include <SuperResolution.h>

Inheritance diagram for Diligent::ISuperResolution:
Diligent.IObject

Public Member Functions

virtual const SuperResolutionDesc &DILIGENT_CALL_TYPE GetDesc () const =0
 Returns the super resolution description used to create the object.
 
virtual void DILIGENT_CALL_TYPE GetJitterOffset (Uint32 Index, float &JitterX, float &JitterY) const =0
 Returns the optimal jitter offset for the given frame index.
 
virtual void DILIGENT_CALL_TYPE Execute (const ExecuteSuperResolutionAttribs &Attribs)=0
 Executes the super resolution upscaler.
 
- Public Member Functions inherited from Diligent.IObject
virtual void DILIGENT_CALL_TYPE QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface.
 
template<typename DerivedType, typename = typename std::enable_if<std::is_base_of<IObject, DerivedType>::value>::type>
void QueryInterface (const INTERFACE_ID &IID, DerivedType **ppInterface)
 
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE AddRef ()=0
 Increments the number of strong references by 1.
 
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE Release ()=0
 
virtual IReferenceCounters *DILIGENT_CALL_TYPE GetReferenceCounters () const =0
 

Detailed Description

Super resolution upscaler interface.

The super resolution object encapsulates a hardware-accelerated or software-based super resolution effect (e.g., MetalFX on Metal, DirectSR on D3D12). It is created via ISuperResolutionFactory::CreateSuperResolution().

Member Function Documentation

◆ Execute()

virtual void DILIGENT_CALL_TYPE Diligent::ISuperResolution::Execute ( const ExecuteSuperResolutionAttribs & Attribs)
pure virtual

Executes the super resolution upscaler.

Parameters
[in]Attribs- Upscale operation attributes, see Diligent::ExecuteSuperResolutionAttribs.

The command must be called outside of a render pass. All input textures must be in the appropriate states or StateTransitionMode should be set to RESOURCE_STATE_TRANSITION_MODE_TRANSITION.

Remarks
Supported contexts: graphics.

◆ GetJitterOffset()

virtual void DILIGENT_CALL_TYPE Diligent::ISuperResolution::GetJitterOffset ( Uint32 Index,
float & JitterX,
float & JitterY ) const
pure virtual

Returns the optimal jitter offset for the given frame index.

Parameters
[in]Index- Frame index. The sequence wraps automatically.
[out]JitterX- Jitter offset X in pixel space, typically in [-0.5, 0.5] range.
[out]JitterY- Jitter offset Y in pixel space, typically in [-0.5, 0.5] range.

For temporal upscaling, the upscaler provides a recommended jitter pattern (e.g. Halton sequence) that should be applied to the projection matrix each frame. For spatial upscaling, both values are set to zero.