#include <hps.h>

Public Member Functions | |
HPS::Type | ObjectType () const |
PostProcessEffectsControl & | operator= (PostProcessEffectsControl &&in_that) |
PostProcessEffectsControl & | operator= (PostProcessEffectsControl const &in_that) |
PostProcessEffectsControl (WindowKey &in_seg) | |
PostProcessEffectsControl (PostProcessEffectsControl const &in_that) | |
PostProcessEffectsControl (PostProcessEffectsControl &&in_that) | |
PostProcessEffectsControl & | SetAmbientOcclusion (bool in_state, float in_strength=1.0f, PostProcessEffects::AmbientOcclusion::Quality in_quality=PostProcessEffects::AmbientOcclusion::Quality::Fastest) |
PostProcessEffectsControl & | SetAmbientOcclusion (float in_strength, PostProcessEffects::AmbientOcclusion::Quality in_quality) |
PostProcessEffectsControl & | SetBloom (bool in_state, float in_strength=1.0f, unsigned int in_blur=5, PostProcessEffects::Bloom::Shape in_shape=PostProcessEffects::Bloom::Shape::Radial) |
PostProcessEffectsControl & | SetBloom (float in_strength, unsigned int in_blur, PostProcessEffects::Bloom::Shape in_shape) |
PostProcessEffectsControl & | SetDepthOfField (bool in_state, float in_strength=1.0f, float in_near_distance=Float::NegativeInfinity, float in_far_distance=Float::Infinity) |
PostProcessEffectsControl & | SetDepthOfField (float in_strength, float in_near_distance, float in_far_distance) |
PostProcessEffectsControl & | SetEyeDomeLighting (bool in_state, float in_exponent=50.0f, float in_tolerance=1.0f, float in_strength=1.0f) |
PostProcessEffectsControl & | SetEyeDomeLighting (float in_exponent, float in_tolerance, float in_strength) |
PostProcessEffectsControl & | SetSilhouetteEdges (bool in_state, float in_tolerance=1.0f, bool in_heavy_exterior=false) |
PostProcessEffectsControl & | SetSilhouetteEdges (float in_tolerance, bool in_heavy_exterior) |
bool | ShowAmbientOcclusion (bool &out_state, float &out_strength, PostProcessEffects::AmbientOcclusion::Quality &out_quality) const |
bool | ShowBloom (bool &out_state, float &out_strength, unsigned int &out_blur, PostProcessEffects::Bloom::Shape &out_shape) const |
bool | ShowDepthOfField (bool &out_state, float &out_strength, float &out_near_distance, float &out_far_distance) const |
bool | ShowEyeDomeLighting (bool &out_state, float &out_exponent, float &out_tolerance, float &out_strength) const |
bool | ShowSilhouetteEdges (bool &out_state, float &out_tolerance, bool &out_heavy_exterior) const |
PostProcessEffectsControl & | UnsetAmbientOcclusion () |
PostProcessEffectsControl & | UnsetBloom () |
PostProcessEffectsControl & | UnsetDepthOfField () |
PostProcessEffectsControl & | UnsetEverything () |
PostProcessEffectsControl & | UnsetEyeDomeLighting () |
PostProcessEffectsControl & | UnsetSilhouetteEdges () |
~PostProcessEffectsControl () | |
![]() | |
virtual bool | Empty () const |
intptr_t | GetClassID () const |
intptr_t | GetInstanceID () const |
bool | HasType (HPS::Type in_mask) const |
Object (Object const &that) | |
Object (Object &&in_that) | |
Object & | operator= (Object const &other_object) |
Object & | operator= (Object &&in_that) |
virtual void | Reset () |
HPS::Type | Type () const |
Additional Inherited Members | |
![]() | |
template<typename T > | |
static intptr_t | ClassID () |
![]() | |
Control (Control &&in_that) | |
Control & | operator= (Control &&in_that) |
Detailed Description
The HPS::PostProcessEffectsControl class is a smart pointer that is tied to a database object. This object is effective only for the shader-based driver interfaces such as DirectX and OpenGL2. Ambient occlusion, bloom, silhouette edges, and depth of field are all enabled through this control. Default values for the various fields of HPS::PostProcessEffectsControl can be found here.
Constructor & Destructor Documentation
|
explicit |
Initializes a control tied to the window segment in_seg.
HPS::PostProcessEffectsControl::PostProcessEffectsControl | ( | PostProcessEffectsControl const & | in_that | ) |
Initializes a control tied to the same object as in_that.
HPS::PostProcessEffectsControl::PostProcessEffectsControl | ( | PostProcessEffectsControl && | in_that | ) |
The move constructor creates a PostProcessEffectsControl by transferring the underlying impl of the rvalue reference to this PostProcessEffectsControl thereby avoiding a copy and allocation.
- Parameters
-
in_that An rvalue reference to a PostProcessEffectsControl to take the impl from.
HPS::PostProcessEffectsControl::~PostProcessEffectsControl | ( | ) |
Releases a reference to the database object this control is tied to.
Member Function Documentation
|
inlinevirtual |
This function returns the type the object, as declared. This does not necessarily give the true type of the underlying object.
- Returns
- The declared type of the object in question, which may differ from the true, underlying type.
Reimplemented from HPS::Control.
PostProcessEffectsControl& HPS::PostProcessEffectsControl::operator= | ( | PostProcessEffectsControl && | in_that | ) |
The move assignment operator transfers the underlying impl of the rvalue reference to this PostProcessEffectsControl thereby avoiding a copy.
- Parameters
-
in_that An rvalue reference to a PostProcessEffectsControl to take the impl from.
- Returns
- A reference to this PostProcessEffectsControl.
PostProcessEffectsControl& HPS::PostProcessEffectsControl::operator= | ( | PostProcessEffectsControl const & | in_that | ) |
Share the underlying smart-pointer of the PostProcessEffectsControl source.
- Parameters
-
in_that The PostProcessEffectsControl source of the assignment.
- Returns
- A reference to this PostProcessEffectsControl.
PostProcessEffectsControl& HPS::PostProcessEffectsControl::SetAmbientOcclusion | ( | bool | in_state, |
float | in_strength = 1.0f , |
||
PostProcessEffects::AmbientOcclusion::Quality | in_quality = PostProcessEffects::AmbientOcclusion::Quality::Fastest |
||
) |
Ambient occlusion is a general term for shading that varies when nearby objects (occluders) would prevent some portion of ambient light from reaching a surface. This applies a filter that looks for small valleys in the depth buffer results, and slightly darkens these areas.
- Parameters
-
in_state Whether ambient occlusion should be used. in_strength A multiplier on the default contribution of ambient occlusion in the regular lighting calculations. Higher values mean that ambient occlusion will make a stronger contribution. in_quality Indicates how much time should be spent improving the visual quality.
- Returns
- A reference to this object.
PostProcessEffectsControl& HPS::PostProcessEffectsControl::SetAmbientOcclusion | ( | float | in_strength, |
PostProcessEffects::AmbientOcclusion::Quality | in_quality | ||
) |
Ambient occlusion is a general term for shading that varies when nearby objects (occluders) would prevent some portion of ambient light from reaching a surface. This applies a filter that looks for small valleys in the depth buffer results, and slightly darkens these areas. The state is implicitly on.
- Parameters
-
in_strength A multiplier on the default contribution of ambient occlusion in the regular lighting calculations. Higher values mean that ambient occlusion will make a stronger contribution. in_quality Indicates how much time should be spent improving the visual quality.
- Returns
- A reference to this object.
PostProcessEffectsControl& HPS::PostProcessEffectsControl::SetBloom | ( | bool | in_state, |
float | in_strength = 1.0f , |
||
unsigned int | in_blur = 5 , |
||
PostProcessEffects::Bloom::Shape | in_shape = PostProcessEffects::Bloom::Shape::Radial |
||
) |
Bloom causes bright objects to bleed into darker ones, simulating the imperfect focus inevitable with the human eye or any other type of lens.
- Parameters
-
in_state Whether bloom should be used. in_strength A multiplier on the default contribution of bloom. Higher values mean that bloom will make a stronger contribution. Valid range is [0,10]. in_blur The number of blur passes to perform on the output. Higher values mean that bloom will affect a wider area and look smoother. Valid range is [1,8]. in_shape The shape of the bloom effect.
- Returns
- A reference to this object.
PostProcessEffectsControl& HPS::PostProcessEffectsControl::SetBloom | ( | float | in_strength, |
unsigned int | in_blur, | ||
PostProcessEffects::Bloom::Shape | in_shape | ||
) |
Bloom causes bright objects to bleed into darker ones, simulating the imperfect focus inevitable with the human eye or any other type of lens. The state is implicitly on.
- Parameters
-
in_strength A multiplier on the default contribution of bloom. Higher values mean that bloom will make a stronger contribution. Valid range is [0,10]. in_blur The number of blur passes to perform on the output. Higher values mean that bloom will affect a wider area and look smoother. Valid range is [1,8]. in_shape The shape of the bloom effect.
- Returns
- A reference to this object.
PostProcessEffectsControl& HPS::PostProcessEffectsControl::SetDepthOfField | ( | bool | in_state, |
float | in_strength = 1.0f , |
||
float | in_near_distance = Float::NegativeInfinity , |
||
float | in_far_distance = Float::Infinity |
||
) |
Depth of Field is the distance between the nearest and farthest objects in a scene that appear sharp.
- Parameters
-
in_state Whether depth of field should be used. in_strength A multiplier on the default blur radius. Higher values mean more blurring. in_near_distance The camera distance in front of which geometry will begin to appear out of focus. in_far_distance The camera distance beyond which geometry will appear out of focus.
- Returns
- A reference to this object.
PostProcessEffectsControl& HPS::PostProcessEffectsControl::SetDepthOfField | ( | float | in_strength, |
float | in_near_distance, | ||
float | in_far_distance | ||
) |
Depth of Field is the distance between the nearest and farthest objects in a scene that appear sharp. The state is implicitly on.
- Parameters
-
in_strength A multiplier on the default blur radius. Higher values mean more blurring. in_near_distance The camera distance in front of which geometry will begin to appear out of focus. in_far_distance The camera distance beyond which geometry will appear out of focus.
- Returns
- A reference to this object.
PostProcessEffectsControl& HPS::PostProcessEffectsControl::SetEyeDomeLighting | ( | bool | in_state, |
float | in_exponent = 50.0f , |
||
float | in_tolerance = 1.0f , |
||
float | in_strength = 1.0f |
||
) |
Controls the shader-based eye-dome lighting effect.
- Parameters
-
in_state Whether eye-dome lighting should be used. in_exponent An exponent used to attenuate the per-pixel occlusion computed by the eye-dome lighting algorithm. in_tolerance A multiplier on the threshold that the driver uses when comparing adjacent pixel depth values to detect occlusion. This allows the user to control the amount of occlusion added by neighboring pixels based on their relative depth difference. in_strength A multiplier on the calculated per-pixel occlusion value.
- Returns
- true if the setting is valid, false otherwise.
PostProcessEffectsControl& HPS::PostProcessEffectsControl::SetEyeDomeLighting | ( | float | in_exponent, |
float | in_tolerance, | ||
float | in_strength | ||
) |
Controls the shader-based eye-dome lighting effect. The state is implicitly on.
- Parameters
-
in_exponent An exponent used to attenuate the per-pixel occlusion computed by the eye-dome lighting algorithm. in_tolerance A multiplier on the threshold that the driver uses when comparing adjacent pixel depth values to detect occlusion. This allows the user to control the amount of occlusion added by neighboring pixels based on their relative depth difference. in_strength A multiplier on the calculated per-pixel occlusion value.
- Returns
- true if the setting is valid, false otherwise.
PostProcessEffectsControl& HPS::PostProcessEffectsControl::SetSilhouetteEdges | ( | bool | in_state, |
float | in_tolerance = 1.0f , |
||
bool | in_heavy_exterior = false |
||
) |
Controls the shader-based fast drawing of silhouette edges.
- Parameters
-
in_state Whether silhouette edges should be used. in_tolerance A multiplier on the threshold that the driver uses when comparing adjacent pixel depth values to detect silhouettes. This allows the user to control the trade-off between silhouettes appearing where they shouldn't, vs disappearing in places they should be. in_heavy_exterior This option, when enabled, causes an extra thick border to be drawn at the boundary between geometry and the window background (as opposed to geometry on top of other geometry).
- Returns
- A reference to this object.
PostProcessEffectsControl& HPS::PostProcessEffectsControl::SetSilhouetteEdges | ( | float | in_tolerance, |
bool | in_heavy_exterior | ||
) |
Controls the shader-based fast drawing of silhouette edges. The state is implicitly on.
- Parameters
-
in_tolerance A multiplier on the threshold that the driver uses when comparing adjacent pixel depth values to detect silhouettes. This allows the user to control the trade-off between silhouettes appearing where they shouldn't, vs disappearing in places they should be. in_heavy_exterior This option, when enabled, causes an extra thick border to be drawn at the boundary between geometry and the window background (as opposed to geometry on top of other geometry).
- Returns
- A reference to this object.
bool HPS::PostProcessEffectsControl::ShowAmbientOcclusion | ( | bool & | out_state, |
float & | out_strength, | ||
PostProcessEffects::AmbientOcclusion::Quality & | out_quality | ||
) | const |
Shows the ambient occlusion setting.
- Parameters
-
out_state Whether ambient occlusion should be used. out_strength A multiplier on the default contribution of ambient occlusion in the regular lighting calculations. Higher values mean that ambient occlusion will make a stronger contribution. out_quality Indicates how much time should be spent improving the visual quality.
- Returns
- true if the setting is valid, false otherwise.
bool HPS::PostProcessEffectsControl::ShowBloom | ( | bool & | out_state, |
float & | out_strength, | ||
unsigned int & | out_blur, | ||
PostProcessEffects::Bloom::Shape & | out_shape | ||
) | const |
Shows the bloom setting.
- Parameters
-
out_state Whether bloom should be used. out_strength A multiplier on the default contribution of bloom. Higher values mean that bloom will make a stronger contribution. out_blur The number of blur passes to perform on the output. Higher values mean that bloom will affect a wider area and look smoother. out_shape The shape of the bloom effect.
- Returns
- true if the setting is valid, false otherwise.
bool HPS::PostProcessEffectsControl::ShowDepthOfField | ( | bool & | out_state, |
float & | out_strength, | ||
float & | out_near_distance, | ||
float & | out_far_distance | ||
) | const |
Shows the depth of field setting.
- Parameters
-
out_state Whether depth of field should be used. out_strength A multiplier on the default blur radius. Higher values mean more blurring. out_near_distance The camera distance in front of which geometry will begin to appear out of focus. out_far_distance The camera distance beyond which geometry will appear out of focus.
- Returns
- true if the setting is valid, false otherwise.
bool HPS::PostProcessEffectsControl::ShowEyeDomeLighting | ( | bool & | out_state, |
float & | out_exponent, | ||
float & | out_tolerance, | ||
float & | out_strength | ||
) | const |
Shows the eye-dome lighting setting.
- Parameters
-
out_state Whether eye-dome lighting should be used. out_exponent An exponent used to attenuate the per-pixel occlusion computed by the eye-dome lighting algorithm. out_tolerance A multiplier on the threshold that the driver uses when comparing adjacent pixel depth values to detect occlusion. This allows the user to control the amount of occlusion added by neighboring pixels based on their relative depth difference. out_strength A multiplier on the calculated per-pixel occlusion value.
- Returns
- true if the setting is valid, false otherwise.
bool HPS::PostProcessEffectsControl::ShowSilhouetteEdges | ( | bool & | out_state, |
float & | out_tolerance, | ||
bool & | out_heavy_exterior | ||
) | const |
Shows the silhouette edge setting.
- Parameters
-
out_state Whether silhouette edges should be used. out_tolerance A multiplier on the threshold that the driver uses when comparing adjacent pixel depth values to detect silhouettes. This allows the user to control the trade-off between silhouettes appearing where they shouldn't, vs disappearing in places they should be. out_heavy_exterior This option, when enabled, causes an extra thick border to be drawn at the boundary between geometry and the window background (as opposed to geometry on top of other geometry).
- Returns
- true if the setting is valid, false otherwise.
PostProcessEffectsControl& HPS::PostProcessEffectsControl::UnsetAmbientOcclusion | ( | ) |
Removes any ambient occlusion setting.
- Returns
- A reference to this object.
PostProcessEffectsControl& HPS::PostProcessEffectsControl::UnsetBloom | ( | ) |
Removes a bloom setting.
- Returns
- A reference to this object.
PostProcessEffectsControl& HPS::PostProcessEffectsControl::UnsetDepthOfField | ( | ) |
Removes a depth of field setting.
- Returns
- A reference to this object.
PostProcessEffectsControl& HPS::PostProcessEffectsControl::UnsetEverything | ( | ) |
Removes all settings from this object.
- Returns
- A reference to this object.
PostProcessEffectsControl& HPS::PostProcessEffectsControl::UnsetEyeDomeLighting | ( | ) |
Removes an eye-dome lighting setting.
- Returns
- A reference to this object.
PostProcessEffectsControl& HPS::PostProcessEffectsControl::UnsetSilhouetteEdges | ( | ) |
Removes a silhouette edge setting.
- Returns
- A reference to this object.
The documentation for this class was generated from the following file:
- include/hps.h