11 #ifndef hifi_model_AmbientOcclusion_h
12 #define hifi_model_AmbientOcclusion_h
16 #include <AmbientOcclusionTechnique.h>
19 class AmbientOcclusion {
23 void setTechnique(
const AmbientOcclusionTechnique technique) { _technique = technique; }
24 void setJitter(
const bool jitter) { _jitter = jitter; }
25 void setResolutionLevel(
const uint8_t resolutionLevel) { _resolutionLevel = resolutionLevel; }
26 void setEdgeSharpness(
const float edgeSharpness) { _edgeSharpness = edgeSharpness; }
27 void setBlurRadius(
const uint8_t blurRadius) { _blurRadius = blurRadius; }
28 void setAORadius(
const float aoRadius) { _aoRadius = aoRadius; }
29 void setAOObscuranceLevel(
const float aoObscuranceLevel) { _aoObscuranceLevel = aoObscuranceLevel; }
30 void setAOFalloffAngle(
const float aoFalloffAngle) { _aoFalloffAngle = aoFalloffAngle; }
31 void setAOSamplingAmount(
const float aoSamplingAmount) { _aoSamplingAmount = aoSamplingAmount; }
32 void setSSAONumSpiralTurns(
const float ssaoNumSpiralTurns) { _ssaoNumSpiralTurns = ssaoNumSpiralTurns; }
34 AmbientOcclusionTechnique getTechnique()
const {
return _technique; }
35 bool getJitter()
const {
return _jitter; }
36 uint8_t getResolutionLevel()
const {
return _resolutionLevel; }
37 float getEdgeSharpness()
const {
return _edgeSharpness; }
38 uint8_t getBlurRadius()
const {
return _blurRadius; }
39 float getAORadius()
const {
return _aoRadius; }
40 float getAOObscuranceLevel()
const {
return _aoObscuranceLevel; }
41 float getAOFalloffAngle()
const {
return _aoFalloffAngle; }
42 float getAOSamplingAmount()
const {
return _aoSamplingAmount; }
43 float getSSAONumSpiralTurns()
const {
return _ssaoNumSpiralTurns; }
46 AmbientOcclusionTechnique _technique { AmbientOcclusionTechnique::SSAO };
47 bool _jitter {
false };
48 uint8_t _resolutionLevel { 2 };
49 float _edgeSharpness { 1.0f };
50 uint8_t _blurRadius { 4 };
51 float _aoRadius { 1.0f };
52 float _aoObscuranceLevel { 0.5f };
53 float _aoFalloffAngle { 0.25f };
54 float _aoSamplingAmount { 0.5f };
55 float _ssaoNumSpiralTurns { 7.0f };
57 using AmbientOcclusionPointer = std::shared_ptr<AmbientOcclusion>;