---
title: SKEffectNode
framework: spritekit
role: symbol
role_heading: Class
path: spritekit/skeffectnode
---

# SKEffectNode

A node that renders its children into a separate buffer, optionally applying an effect, before drawing the final result.

## Declaration

```swift
class SKEffectNode
```

## Mentioned in

About Node Drawing Order Adding a Video to a Scene Animate the Warping of a Sprite Creating a New Node By Rendering To a Texture Warping SpriteKit Content By Using an Effect Node

## Overview

Overview An SKEffectNode object renders its children into a buffer and optionally applies a Core Image filter to this rendered output. Because effect nodes conform to SKWarpable, you can also use them to apply distortions to nodes that don’t implement the protocol, such as shape and video nodes. Use effect nodes to incorporate sophisticated special effects into a scene or to cache the contents of a static subtree for faster rendering performance. Each time a new frame is rendered using the effect node, the effect node follows these steps: It draws its children into a private framebuffer. It applies a Core Image effect to the private framebuffer. This stage is optional; see the filter and shouldEnableEffects properties. It blends the contents of its private framebuffer into its parent’s framebuffer, using one of the standard sprite blend modes. It discards its private framebuffer. This step is optional; see the shouldRasterize property.

## Topics

### Applying Core Image Filters with an Effect Node

- [Applying Special Effects to a Node’s Children](spritekit/applying-special-effects-to-a-node-s-children.md)
- [filter](spritekit/skeffectnode/filter.md)
- [shouldEnableEffects](spritekit/skeffectnode/shouldenableeffects.md)
- [shouldCenterFilter](spritekit/skeffectnode/shouldcenterfilter.md)

### Warping Nodes with an Effect Node

- [Warping SpriteKit Content By Using an Effect Node](spritekit/warping-spritekit-content-by-using-an-effect-node.md)

### Applying a Shader with an Effect Node

- [shader](spritekit/skeffectnode/shader.md)
- [attributeValues](spritekit/skeffectnode/attributevalues.md)
- [setValue(_:forAttribute:)](spritekit/skeffectnode/setvalue(_:forattribute:).md)
- [value(forAttributeNamed:)](spritekit/skeffectnode/value(forattributenamed:).md)

### Flattening an Effect Node’s Child Tree for Performance Improvement

- [Improving the Performance of Static Content](spritekit/improving-the-performance-of-static-content.md)
- [shouldRasterize](spritekit/skeffectnode/shouldrasterize.md)

### Configuring Alpha Blending

- [blendMode](spritekit/skeffectnode/blendmode.md)

## Relationships

### Inherits From

- [SKNode](spritekit/sknode.md)

### Inherited By

- [SKScene](spritekit/skscene.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSCopying](foundation/nscopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSSecureCoding](foundation/nssecurecoding.md)
- [NSStandardKeyBindingResponding](appkit/nsstandardkeybindingresponding.md)
- [NSTouchBarProvider](appkit/nstouchbarprovider.md)
- [NSUserActivityRestoring](appkit/nsuseractivityrestoring.md)
- [SKWarpable](spritekit/skwarpable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
- [UIActivityItemsConfigurationProviding](uikit/uiactivityitemsconfigurationproviding.md)
- [UICoordinateSpace](uikit/uicoordinatespace.md)
- [UIFocusEnvironment](uikit/uifocusenvironment.md)
- [UIFocusItem](uikit/uifocusitem.md)
- [UIFocusItemContainer](uikit/uifocusitemcontainer.md)
- [UIPasteConfigurationSupporting](uikit/uipasteconfigurationsupporting.md)
- [UIResponderStandardEditActions](uikit/uiresponderstandardeditactions.md)
- [UIUserActivityRestoring](uikit/uiuseractivityrestoring.md)

## See Also

### Nodes that Modify Drawing

- [SKCropNode](spritekit/skcropnode.md)
- [SKTransformNode](spritekit/sktransformnode.md)
