---
title: SCNSceneRenderer
framework: scenekit
role: symbol
role_heading: Protocol
path: scenekit/scnscenerenderer
---

# SCNSceneRenderer

Methods and properties common to the SCNView, SCNLayer, and SCNRenderer classes.

## Declaration

```swift
protocol SCNSceneRenderer : NSObjectProtocol
```

## Overview

Overview You use an instance of one of these classes to display a scene and manage SceneKit’s rendering and animation of the scene’s contents. Typically, you use the SCNView class to display a scene in a window (or full screen). You can create and configure a SceneKit view programmatically or in Interface Builder. The other renderer classes render SceneKit content in more specialized situations. If your app has a user interface composed of Core Animation layers, you can use the SCNLayer class to render a scene into a layer. If your app uses Metal or OpenGL for other rendering, you can use the SCNRenderer class to render SceneKit content with the same Metal device or OpenGL context. Use the scene property of the view, layer, or renderer to specify the scene to display.

## Topics

### Presenting a Scene

- [scene](scenekit/scnscenerenderer/scene.md)
- [present(_:with:incomingPointOfView:completionHandler:)](scenekit/scnscenerenderer/present(_:with:incomingpointofview:completionhandler:).md)

### Managing Scene Display

- [pointOfView](scenekit/scnscenerenderer/pointofview.md)
- [autoenablesDefaultLighting](scenekit/scnscenerenderer/autoenablesdefaultlighting.md)
- [isJitteringEnabled](scenekit/scnscenerenderer/isjitteringenabled.md)
- [showsStatistics](scenekit/scnscenerenderer/showsstatistics.md)
- [debugOptions](scenekit/scnscenerenderer/debugoptions.md)
- [renderingAPI](scenekit/scnscenerenderer/renderingapi.md)
- [SCNDebugOptions](scenekit/scndebugoptions.md)
- [SCNRenderingAPI](scenekit/scnrenderingapi.md)

### Managing Scene Animation Timing

- [sceneTime](scenekit/scnscenerenderer/scenetime.md)
- [isPlaying](scenekit/scnscenerenderer/isplaying.md)
- [loops](scenekit/scnscenerenderer/loops.md)

### Preloading Renderer Resources

- [prepare(_:shouldAbortBlock:)](scenekit/scnscenerenderer/prepare(_:shouldabortblock:).md)
- [prepare(_:completionHandler:)](scenekit/scnscenerenderer/prepare(_:completionhandler:).md)

### Working With Projected Scene Contents

- [hitTest(_:options:)](scenekit/scnscenerenderer/hittest(_:options:).md)
- [SCNHitTestOption](scenekit/scnhittestoption.md)
- [isNode(_:insideFrustumOf:)](scenekit/scnscenerenderer/isnode(_:insidefrustumof:).md)
- [nodesInsideFrustum(of:)](scenekit/scnscenerenderer/nodesinsidefrustum(of:).md)
- [projectPoint(_:)](scenekit/scnscenerenderer/projectpoint(_:).md)
- [unprojectPoint(_:)](scenekit/scnscenerenderer/unprojectpoint(_:).md)

### Participating in the Scene Rendering Process

- [delegate](scenekit/scnscenerenderer/delegate.md)

### Customizing Scene Rendering with Metal

- [currentRenderCommandEncoder](scenekit/scnscenerenderer/currentrendercommandencoder.md)
- [device](scenekit/scnscenerenderer/device.md)
- [commandQueue](scenekit/scnscenerenderer/commandqueue.md)
- [colorPixelFormat](scenekit/scnscenerenderer/colorpixelformat.md)
- [depthPixelFormat](scenekit/scnscenerenderer/depthpixelformat.md)
- [stencilPixelFormat](scenekit/scnscenerenderer/stencilpixelformat.md)

### Customizing Scene Rendering with OpenGL

- [context](scenekit/scnscenerenderer/context.md)

### Rendering Sprite Kit Content over a Scene

- [overlaySKScene](scenekit/scnscenerenderer/overlayskscene.md)

### Working With Positional Audio

- [audioListener](scenekit/scnscenerenderer/audiolistener.md)
- [audioEnvironmentNode](scenekit/scnscenerenderer/audioenvironmentnode.md)
- [audioEngine](scenekit/scnscenerenderer/audioengine.md)

### Instance Properties

- [currentRenderPassDescriptor](scenekit/scnscenerenderer/currentrenderpassdescriptor.md)
- [currentTime](scenekit/scnscenerenderer/currenttime.md)
- [currentViewport](scenekit/scnscenerenderer/currentviewport.md)
- [isTemporalAntialiasingEnabled](scenekit/scnscenerenderer/istemporalantialiasingenabled.md)
- [usesReverseZ](scenekit/scnscenerenderer/usesreversez.md)
- [workingColorSpace](scenekit/scnscenerenderer/workingcolorspace.md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

### Conforming Types

- [SCNLayer](scenekit/scnlayer.md)
- [SCNRenderer](scenekit/scnrenderer.md)
- [SCNView](scenekit/scnview.md)

## See Also

### Display and Interactivity

- [SCNSceneRendererDelegate](scenekit/scnscenerendererdelegate.md)
- [SCNLayer](scenekit/scnlayer.md)
- [SCNRenderer](scenekit/scnrenderer.md)
- [SCNHitTestResult](scenekit/scnhittestresult.md)
