# PostEffect class

Namespace: [Rhino.Render.PostEffects](https://developer.rhino3d.com/api/rhinocommon/namespace/rhino.render.posteffects.md) · Assembly: [RhinoCommon](https://developer.rhino3d.com/api/rhinocommon/assembly/rhinocommon.md)

```cs
public abstract class PostEffect : IDisposable
```

## Constructors

- [PostEffect](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/ctor.md)

## Finalizer

- [~PostEffect](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/finalize.md)

## Properties

- [CanDisplayHelp](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/candisplayhelp.md)
- [ExecuteWhileRenderingOption](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/executewhilerenderingoption.md)
- [Id](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/id.md)
- [IsSelected](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/isselected.md): Return true if the post effect is selected.
- [LocalName](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/localname.md)
- [On](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/on.md)
- [PostEffectType](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/posteffecttype.md)
- [RequiredChannels](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/requiredchannels.md): The RDK calls this method to determine which channels a post effect requires. If a required channel is not available, the RDK will hide the post effect's UI and display explanatory text instead. Note: As a convenience, the default implementation adds IRhRdkRenderWindow::chanRGBA to the output array. Most post effects should be able to use this default with no need to override the method.
- [SerialNumber](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/serialnumber.md)
- [Shown](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/shown.md)
- [Styles](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/styles.md)

## Methods

- [AddUISections](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/adduisections.md): Create each of your UI sections using 'new' and then call ui.AddSection() on them. RDK takes ownership of the sections.If your post effect does not need a UI, then your implementation of this method can be a no-op.
- [BeginChange](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/beginchange.md)
- [CanExecute](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/canexecute.md): Return true if the post effect can execute, else false. The base implementation checks if the post effect is 'On' and 'Shown'. Post effect authors can override this to include other criteria but cannot disable the base criteria.
- [Changed](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/changed.md)
- [DisplayHelp](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/displayhelp.md): Displays the post effect's help page, if any.
- [Dispose](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/dispose.md): (2 overloads)
- [EndChange](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/endchange.md)
- [Execute](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/execute.md): Execute the post effect.
- [GetHashCode](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/gethashcode.md): A CRC of the state of this post effect.
- [GetParam](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/getparam.md): Get a parameter.
- [ReadFromDocumentDefaults](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/readfromdocumentdefaults.md): (obsolete) Because post effects are now in the render settings, this function can no longer be called.
- [ReadState](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/readstate.md): Read the state. If your post effect has no state, you must still return true for success.
- [RegisterPostEffect](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/registerposteffect.md): (2 overloads, static)
- [ResetToFactoryDefaults](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/resettofactorydefaults.md): Reset the state to factory defaults.
- [SetParam](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/setparam.md): Set a parameter.
- [WriteState](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/writestate.md): Write the state. If your post effect has no state, you must still return true for success.
- [WriteToDocumentDefaults](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.posteffects.posteffect/writetodocumentdefaults.md): (obsolete) Because post effects are now in the render settings, this function can no longer be called.
