# Class SSAOCalculator

Calculates SSAO using the depth buffer. Pretty much John Chapmans SSAO tutorial: http://john-chapman-graphics.blogspot.com/2013/01/ssao-tutorial.html but there is no normal buffer so we have to recreate the normals from the depth buffer instead

#### Hierarchy (View Summary)

- TwinfinityPostProcess
  - SSAOCalculator

##### Index

### Constructors

constructor

### Properties

_postProcess
radius
strength

### Accessors

affectedCameras
samples

### Methods

attach
detach
initialize

## Constructors

### constructor

- new SSAOCalculator(
  samplesCount: number,
  strength: number,
  radius: number,
  renderScale: number,
  ): SSAOCalculator

  #### Parameters

  - samplesCount: number
  - strength: number
  - radius: number
  - renderScale: number

  #### Returns SSAOCalculator

  Overrides TwinfinityPostProcess.constructor

## Properties

### `Protected`_postProcess

_postProcess: undefined | PostProcess = undefined

Inherited from TwinfinityPostProcess._postProcess

### radius

radius: number

### strength

strength: number

## Accessors

### affectedCameras

- get affectedCameras(): Set<Camera>

  Returns a set of all the cameras this post-process effect is attached to.

  #### Returns Set<Camera>

  Inherited from TwinfinityPostProcess.affectedCameras

### samples

- get samples(): number

  #### Returns number

- set samples(samples: number): void

  #### Parameters

  - samples: number

  #### Returns void

## Methods

### attach

- attach(camera: Camera): boolean

  Runs the initialize method if the post-process has not yet been initialized. Then attaches the post-process effect to the specified camera.

  #### Parameters

  - camera: Camera

    The camera to attach the post-process effect to.

  #### Returns boolean

  true if the post-process effect was successfully attached to the camera, otherwise false.

  Inherited from TwinfinityPostProcess.attach

### detach

- detach(camera: Camera): boolean

  Disables the post-process effect for the specified camera.

  #### Parameters

  - camera: Camera

    The camera to detach the post-process effect from.

  #### Returns boolean

  true if the post-process effect was successfully detached from the camera, otherwise false.

  Overrides TwinfinityPostProcess.detach

### `Protected` initialize

- initialize(camera: Camera): PostProcess

  Method for initializing this post-process effect before it gets attached to a camera. This gets called automatically from attach.

  #### Parameters

  - camera: Camera

    BabylonJS camera variable.

  #### Returns PostProcess

  Overrides TwinfinityPostProcess.initialize