---
title: SCNNodeRendererDelegate
framework: scenekit
role: symbol
role_heading: Protocol
path: scenekit/scnnoderendererdelegate
---

# SCNNodeRendererDelegate

Methods you can implement to use your own custom Metal or OpenGL drawing code to render content for a node.

## Declaration

```swift
protocol SCNNodeRendererDelegate : NSObjectProtocol
```

## Overview

Overview Typically, you use a node renderer delegate to perform custom rendering that is anchored at a location in the scene. For example, you can attach a node with a renderer delegate to part of a scene in order to add a special effect rendered using your own Metal or OpenGL drawing code, such as a fluid simulation. To provide a renderer delegate for an SCNNode object, use its rendererDelegate property. SceneKit performs no rendering of its own for a node with a render delegate, so this protocol is not appropriate for customizing SceneKit’s rendering of geometry and materials. Instead, use methods in the SCNShadable protocol to extend SceneKit’s rendering using shader programs written in the Metal shading language or the OpenGL Shading Language (GLSL).

## Topics

### Customizing the Rendering of a Node

- [renderNode(_:renderer:arguments:)](scenekit/scnnoderendererdelegate/rendernode(_:renderer:arguments:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Renderer Customization

- [SCNShadable](scenekit/scnshadable.md)
- [SCNProgram](scenekit/scnprogram.md)
- [SCNBufferStream](scenekit/scnbufferstream.md)
- [SCNTechnique](scenekit/scntechnique.md)
- [SCNTechniqueSupport](scenekit/scntechniquesupport.md)
- [Postprocessing a Scene With Custom Symbols](scenekit/postprocessing-a-scene-with-custom-symbols.md)
