---
title: SCNRenderer
framework: scenekit
role: symbol
role_heading: Class
path: scenekit/scnrenderer
---

# SCNRenderer

A renderer for displaying a SceneKit scene in an existing Metal workflow or OpenGL context.

## Declaration

```swift
class SCNRenderer
```

## Overview

Overview Use this class when you want to add content rendered by SceneKit to an app that already renders other content by using Metal, OpenGL, or OpenGL ES directly. To provide content for a SceneKit renderer, assign a SCNScene object to its scene property. For additional important methods and properties for working with SceneKit renderers, see SCNSceneRenderer.

## Topics

### Creating a Renderer

- [init(device:options:)](scenekit/scnrenderer/init(device:options:).md)
- [init(context:options:)](scenekit/scnrenderer/init(context:options:).md)

### Specifying a Scene

- [scene](scenekit/scnrenderer/scene.md)

### Managing Animation Timing

- [nextFrameTime](scenekit/scnrenderer/nextframetime.md)

### Rendering a Scene Using Metal

- [render(atTime:viewport:commandBuffer:passDescriptor:)](scenekit/scnrenderer/render(attime:viewport:commandbuffer:passdescriptor:).md)

### Rendering a Scene Using OpenGL

- [render()](scenekit/scnrenderer/render().md)
- [render(atTime:)](scenekit/scnrenderer/render(attime:).md)

### Capturing a Snapshot

- [snapshot(atTime:with:antialiasingMode:)](scenekit/scnrenderer/snapshot(attime:with:antialiasingmode:).md)

### Instance Methods

- [render(withViewport:commandBuffer:passDescriptor:)](scenekit/scnrenderer/render(withviewport:commandbuffer:passdescriptor:).md)
- [update(atTime:)](scenekit/scnrenderer/update(attime:).md)
- [updateProbes(_:atTime:)](scenekit/scnrenderer/updateprobes(_:attime:).md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [SCNSceneRenderer](scenekit/scnscenerenderer.md)
- [SCNTechniqueSupport](scenekit/scntechniquesupport.md)

## See Also

### Display and Interactivity

- [SCNSceneRenderer](scenekit/scnscenerenderer.md)
- [SCNSceneRendererDelegate](scenekit/scnscenerendererdelegate.md)
- [SCNLayer](scenekit/scnlayer.md)
- [SCNHitTestResult](scenekit/scnhittestresult.md)
