<!--
{
  "availability" : [
    "iOS: 8.0.0 - 26.0.0",
    "iPadOS: 8.0.0 - 26.0.0",
    "macCatalyst: 13.1.0 - 26.0.0",
    "macOS: 10.8.0 - 26.0.0",
    "tvOS: 9.0.0 - 26.0.0",
    "visionOS: 1.0.0 - 26.0.0",
    "watchOS: 3.0.0 - 26.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "SceneKit",
  "identifier" : "/documentation/SceneKit/SCNSceneRenderer/currentRenderCommandEncoder",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "SceneKit"
    ],
    "preciseIdentifier" : "c:objc(pl)SCNSceneRenderer(py)currentRenderCommandEncoder"
  },
  "title" : "currentRenderCommandEncoder"
}
-->

# currentRenderCommandEncoder

The Metal render command encoder in use for the current SceneKit rendering pass.

```
var currentRenderCommandEncoder: (any MTLRenderCommandEncoder)? { get }
```

## Discussion

Use this render command encoder to encode additional rendering commands before or after SceneKit draws its own content.

This property is valid only during the SceneKit rendering loop—that is, within one of the methods defined in the [`SCNSceneRendererDelegate`](/documentation/SceneKit/SCNSceneRendererDelegate) protocol. Accessing this property at any other time returns `nil`.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)