The HPS::PostProcessEffectsKit class is a user space object, useful for carrying a group of attribute settings related to post-process effects. More...
#include <hps.h>
Public Member Functions | |
PostProcessEffectsKit () | |
Initializes an empty kit. More... | |
PostProcessEffectsKit (PostProcessEffectsKit const &in_kit) | |
The copy constructor creates a new PostProcessEffectsKit object that contains the same settings as the source object. More... | |
PostProcessEffectsKit (PostProcessEffectsKit &&in_that) | |
The move constructor creates a PostProcessEffectsKit by transferring the underlying impl of the rvalue reference to this PostProcessEffectsKit thereby avoiding a copy and allocation. More... | |
PostProcessEffectsKit & | operator= (PostProcessEffectsKit &&in_that) |
The move assignment operator transfers the underlying impl of the rvalue reference to this PostProcessEffectsKit thereby avoiding a copy. More... | |
virtual | ~PostProcessEffectsKit () |
Destroy this kit. More... | |
HPS::Type | ObjectType () const |
void | Set (PostProcessEffectsKit const &in_kit) |
Copies the source PostProcessEffectsKit into this object. More... | |
void | Show (PostProcessEffectsKit &out_kit) const |
Copies this object into the given PostProcessEffectsKit. More... | |
PostProcessEffectsKit & | operator= (PostProcessEffectsKit const &in_kit) |
Copies the source PostProcessEffectsKit into this object. More... | |
bool | Empty () const |
Indicates whether this object has any values set on it. More... | |
bool | Equals (PostProcessEffectsKit const &in_kit) const |
Check if the source PostProcessEffectsKit is equivalent to this object. More... | |
bool | operator== (PostProcessEffectsKit const &in_kit) const |
Check if the source PostProcessEffectsKit is equivalent to this object. More... | |
bool | operator!= (PostProcessEffectsKit const &in_kit) const |
Check if the source PostProcessEffectsKit is not equivalent to this object. More... | |
PostProcessEffectsKit & | SetAmbientOcclusion (bool in_state, float in_strength=1.0f, PostProcessEffects::AmbientOcclusion::Quality in_quality=PostProcessEffects::AmbientOcclusion::Quality::Fastest, float in_radius=1.0f) |
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. More... | |
PostProcessEffectsKit & | SetAmbientOcclusion (float in_strength, PostProcessEffects::AmbientOcclusion::Quality in_quality=PostProcessEffects::AmbientOcclusion::Quality::Fastest, float in_radius=1.0f) |
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. More... | |
PostProcessEffectsKit & | 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. More... | |
PostProcessEffectsKit & | 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. More... | |
PostProcessEffectsKit & | 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. More... | |
PostProcessEffectsKit & | 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. More... | |
PostProcessEffectsKit & | SetSilhouetteEdges (bool in_state, float in_tolerance=1.0f, bool in_heavy_exterior=false) |
Controls the shader-based fast drawing of silhouette edges. More... | |
PostProcessEffectsKit & | SetSilhouetteEdges (float in_tolerance, bool in_heavy_exterior) |
Controls the shader-based fast drawing of silhouette edges. More... | |
PostProcessEffectsKit & | 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. More... | |
PostProcessEffectsKit & | SetEyeDomeLighting (float in_exponent, bool in_tolerance, float in_strength) |
Controls the shader-based eye-dome lighting effect. More... | |
PostProcessEffectsKit & | SetWorldScale (float in_scale) |
Sets a world scale value used by post process effects such as ambient occlusion. More... | |
PostProcessEffectsKit & | UnsetAmbientOcclusion () |
Removes any ambient occlusion setting. More... | |
PostProcessEffectsKit & | UnsetBloom () |
Removes a bloom setting. More... | |
PostProcessEffectsKit & | UnsetDepthOfField () |
Removes a depth of field setting. More... | |
PostProcessEffectsKit & | UnsetSilhouetteEdges () |
Removes a silhouette edge setting. More... | |
PostProcessEffectsKit & | UnsetEyeDomeLighting () |
Removes an eye-dome lighting setting. More... | |
PostProcessEffectsKit & | UnsetWorldScale () |
Removes any world scale setting. More... | |
PostProcessEffectsKit & | UnsetEverything () |
Removes all settings from this object. More... | |
bool | ShowAmbientOcclusion (bool &out_state, float &out_strength, PostProcessEffects::AmbientOcclusion::Quality &out_quality, float &out_radius) const |
Shows the ambient occlusion setting. More... | |
bool | ShowBloom (bool &out_state, float &out_strength, unsigned int &out_blur, PostProcessEffects::Bloom::Shape &out_shape) const |
Shows the bloom setting. More... | |
bool | ShowDepthOfField (bool &out_state, float &out_strength, float &out_near_distance, float &out_far_distance) const |
Shows the depth of field setting. More... | |
bool | ShowSilhouetteEdges (bool &out_state, float &out_tolerance, bool &out_heavy_exterior) const |
Shows the silhouette edge setting. More... | |
bool | ShowEyeDomeLighting (bool &out_state, float &out_exponent, float &out_tolerance, float &out_strength) const |
Shows the eye-dome lighting setting. More... | |
bool | ShowWorldScale (float &out_scale) const |
Shows the world scale setting. More... | |
virtual HPS::Type | Type () const |
This function returns the true type of the underlying object. More... | |
virtual void | Reset () |
Resets this object to its initial, uninitialized state. More... | |
bool | HasType (HPS::Type in_mask) const |
This function indicates whether this Object has the given Type mask. More... | |
intptr_t | GetClassID () const |
Returns a unique identifier that is shared by all objects of the same class. More... | |
intptr_t | GetInstanceID () const |
Returns an identifier that can be used to identify which instance of a class an object is. More... | |
Static Public Member Functions | |
static PostProcessEffectsKit | GetDefault () |
Creates a PostProcessEffectsKit which contains the default settings. More... | |
template<typename T > | |
static intptr_t | ClassID () |
Unique identifier for this class. More... | |
Static Public Attributes | |
static const HPS::Type | staticType = HPS::Type::PostProcessEffectsKit |
The HPS::PostProcessEffectsKit class is a user space object, useful for carrying a group of attribute settings related to post-process effects.
Calling HPS::PostProcessEffectsKit::GetDefault() will return a kit with values found in this table.
HPS::PostProcessEffectsKit::PostProcessEffectsKit | ( | ) |
Initializes an empty kit.
HPS::PostProcessEffectsKit::PostProcessEffectsKit | ( | PostProcessEffectsKit const & | in_kit | ) |
The copy constructor creates a new PostProcessEffectsKit object that contains the same settings as the source object.
in_kit | The source object to copy. |
HPS::PostProcessEffectsKit::PostProcessEffectsKit | ( | PostProcessEffectsKit && | in_that | ) |
The move constructor creates a PostProcessEffectsKit by transferring the underlying impl of the rvalue reference to this PostProcessEffectsKit thereby avoiding a copy and allocation.
in_that | An rvalue reference to a PostProcessEffectsKit to take the impl from. |
|
virtual |
Destroy this kit.
|
inlinestaticinherited |
Unique identifier for this class.
Note: this method uses construction of static objects. If used in a constructor, it should be used in the body not the initializer list.
|
virtual |
Indicates whether this object has any values set on it.
Reimplemented from HPS::Object.
bool HPS::PostProcessEffectsKit::Equals | ( | PostProcessEffectsKit const & | in_kit | ) | const |
Check if the source PostProcessEffectsKit is equivalent to this object.
in_kit | The source PostProcessEffectsKit to compare to this object. |
|
inherited |
Returns a unique identifier that is shared by all objects of the same class.
|
static |
Creates a PostProcessEffectsKit which contains the default settings.
The returned object will not necessarily have values set for every option, but it will have settings for those options where it is reasonable to have a default.
|
inherited |
Returns an identifier that can be used to identify which instance of a class an object is.
Different keys and controls will return the same value if they are backed by the same database resource.
|
inherited |
|
inlinevirtual |
bool HPS::PostProcessEffectsKit::operator!= | ( | PostProcessEffectsKit const & | in_kit | ) | const |
Check if the source PostProcessEffectsKit is not equivalent to this object.
in_kit | The source PostProcessEffectsKit to compare to this object. |
PostProcessEffectsKit& HPS::PostProcessEffectsKit::operator= | ( | PostProcessEffectsKit && | in_that | ) |
The move assignment operator transfers the underlying impl of the rvalue reference to this PostProcessEffectsKit thereby avoiding a copy.
in_that | An rvalue reference to a PostProcessEffectsKit to take the impl from. |
PostProcessEffectsKit& HPS::PostProcessEffectsKit::operator= | ( | PostProcessEffectsKit const & | in_kit | ) |
Copies the source PostProcessEffectsKit into this object.
in_kit | The source PostProcessEffectsKit to copy. |
bool HPS::PostProcessEffectsKit::operator== | ( | PostProcessEffectsKit const & | in_kit | ) | const |
Check if the source PostProcessEffectsKit is equivalent to this object.
in_kit | The source PostProcessEffectsKit to compare to this object. |
|
virtualinherited |
Resets this object to its initial, uninitialized state.
Reimplemented in HPS::EventHandler, HPS::EventDispatcher, HPS::World, HPS::HighlightSearchResults, HPS::HighlightSearchResultsIterator, HPS::SelectionResults, HPS::SelectionResultsIterator, HPS::FontSearchResults, HPS::FontSearchResultsIterator, HPS::SearchResults, and HPS::SearchResultsIterator.
void HPS::PostProcessEffectsKit::Set | ( | PostProcessEffectsKit const & | in_kit | ) |
Copies the source PostProcessEffectsKit into this object.
in_kit | The source object to copy. |
PostProcessEffectsKit& HPS::PostProcessEffectsKit::SetAmbientOcclusion | ( | bool | in_state, |
float | in_strength = 1.0f , |
||
PostProcessEffects::AmbientOcclusion::Quality | in_quality = PostProcessEffects::AmbientOcclusion::Quality::Fastest , |
||
float | in_radius = 1.0f |
||
) |
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.
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. |
in_radius | A multiplier for the screen-space search radius. Higher values increase the search radius for occluding pixels, but may cause under-sampling artifacts. |
PostProcessEffectsKit& HPS::PostProcessEffectsKit::SetAmbientOcclusion | ( | float | in_strength, |
PostProcessEffects::AmbientOcclusion::Quality | in_quality = PostProcessEffects::AmbientOcclusion::Quality::Fastest , |
||
float | in_radius = 1.0f |
||
) |
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.
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. |
in_radius | A multiplier for the screen-space search radius. Higher values increase the search radius for occluding pixels, but may cause under-sampling artifacts. |
PostProcessEffectsKit& HPS::PostProcessEffectsKit::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.
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. |
PostProcessEffectsKit& HPS::PostProcessEffectsKit::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.
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. |
PostProcessEffectsKit& HPS::PostProcessEffectsKit::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.
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. |
PostProcessEffectsKit& HPS::PostProcessEffectsKit::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.
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. |
PostProcessEffectsKit& HPS::PostProcessEffectsKit::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.
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. |
in_strength | A multiplier on the calculated per-pixel occlusion value. This allows the user to control the amount of occlusion added by neighboring pixels based on their relative depth difference. |
PostProcessEffectsKit& HPS::PostProcessEffectsKit::SetEyeDomeLighting | ( | float | in_exponent, |
bool | in_tolerance, | ||
float | in_strength | ||
) |
Controls the shader-based eye-dome lighting effect.
The state is implicitly on.
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. |
in_strength | A multiplier on the calculated per-pixel occlusion value. This allows the user to control the amount of occlusion added by neighboring pixels based on their relative depth difference. |
PostProcessEffectsKit& HPS::PostProcessEffectsKit::SetSilhouetteEdges | ( | bool | in_state, |
float | in_tolerance = 1.0f , |
||
bool | in_heavy_exterior = false |
||
) |
Controls the shader-based fast drawing of silhouette edges.
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). |
PostProcessEffectsKit& HPS::PostProcessEffectsKit::SetSilhouetteEdges | ( | float | in_tolerance, |
bool | in_heavy_exterior | ||
) |
Controls the shader-based fast drawing of silhouette edges.
The state is implicitly on.
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). |
PostProcessEffectsKit& HPS::PostProcessEffectsKit::SetWorldScale | ( | float | in_scale | ) |
Sets a world scale value used by post process effects such as ambient occlusion.
If not set, scale is computed based on scene bounding.
in_scale | Scale value used by post process effect. |
void HPS::PostProcessEffectsKit::Show | ( | PostProcessEffectsKit & | out_kit | ) | const |
Copies this object into the given PostProcessEffectsKit.
out_kit | The PostProcessEffectsKit to populate with the contents of this object. |
bool HPS::PostProcessEffectsKit::ShowAmbientOcclusion | ( | bool & | out_state, |
float & | out_strength, | ||
PostProcessEffects::AmbientOcclusion::Quality & | out_quality, | ||
float & | out_radius | ||
) | const |
Shows the ambient occlusion setting.
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. |
out_radius | A multiplier for the screen-space search radius. Higher values increase the search radius for occluding pixels, but may cause under-sampling artifacts. |
bool HPS::PostProcessEffectsKit::ShowBloom | ( | bool & | out_state, |
float & | out_strength, | ||
unsigned int & | out_blur, | ||
PostProcessEffects::Bloom::Shape & | out_shape | ||
) | const |
Shows the bloom setting.
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. |
bool HPS::PostProcessEffectsKit::ShowDepthOfField | ( | bool & | out_state, |
float & | out_strength, | ||
float & | out_near_distance, | ||
float & | out_far_distance | ||
) | const |
Shows the depth of field setting.
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. |
bool HPS::PostProcessEffectsKit::ShowEyeDomeLighting | ( | bool & | out_state, |
float & | out_exponent, | ||
float & | out_tolerance, | ||
float & | out_strength | ||
) | const |
Shows the eye-dome lighting setting.
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. |
bool HPS::PostProcessEffectsKit::ShowSilhouetteEdges | ( | bool & | out_state, |
float & | out_tolerance, | ||
bool & | out_heavy_exterior | ||
) | const |
Shows the silhouette edge setting.
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). |
bool HPS::PostProcessEffectsKit::ShowWorldScale | ( | float & | out_scale | ) | const |
Shows the world scale setting.
out_scale | Scale value used by post process effects. |
|
inlinevirtualinherited |
This function returns the true type of the underlying object.
This function is useful for finding the type of smart pointer objects that have been cast to more generic types.
Reimplemented from HPS::Object.
PostProcessEffectsKit& HPS::PostProcessEffectsKit::UnsetAmbientOcclusion | ( | ) |
Removes any ambient occlusion setting.
PostProcessEffectsKit& HPS::PostProcessEffectsKit::UnsetBloom | ( | ) |
Removes a bloom setting.
PostProcessEffectsKit& HPS::PostProcessEffectsKit::UnsetDepthOfField | ( | ) |
Removes a depth of field setting.
PostProcessEffectsKit& HPS::PostProcessEffectsKit::UnsetEverything | ( | ) |
Removes all settings from this object.
PostProcessEffectsKit& HPS::PostProcessEffectsKit::UnsetEyeDomeLighting | ( | ) |
Removes an eye-dome lighting setting.
PostProcessEffectsKit& HPS::PostProcessEffectsKit::UnsetSilhouetteEdges | ( | ) |
Removes a silhouette edge setting.
PostProcessEffectsKit& HPS::PostProcessEffectsKit::UnsetWorldScale | ( | ) |
Removes any world scale setting.
|
static |