Как включить опцию "Глубина резкости" в ARKit 3.0?

В демонстрации ARKit 3.0 от Apple depth of field эффект был представлен. Я пытался найти документацию для этого, но я не могу найти, как мы должны это включить.

Я обнаружил, что легко включить эффекты размытия в движении и зернистости шума. По сути, в Objective-C установлен один флаг

scnview.rendersMotionBlur = true;

Но ничего для глубины резкости я не смог найти.

Это что-то еще не раскрыто разработчикам?

1 ответ

Depth Of Field является особенностью новой сопутствующей платформы RealityKit. DoF ARCamera активируется и деактивируется через ARView.RenderOptions на основе возможностей устройства iOS и, если ваше устройство поддерживает его, ON по умолчанию. Для превращения это OFF Вы должны использовать disableDepthOfField свойство глобального типа:

static let disableDepthOfField: ARView.RenderOptions

Документация RealityKit: отключите эффект глубины резкости для всего виртуального контента.

В рамках SceneKit есть wantsDepthOfField свойство экземпляра для виртуальной камеры.

var wantsDepthOfField: Bool { get set }


let nonAR_Camera = SCNCamera()
nonAR_Camera.wantsDepthOfField = true
nonAR_Camera.focusDistance = 1.5        // distance in meters
nonAR_Camera.fStop = 4.0

Документация SceneKit: логическое значение, определяющее, будет ли SceneKit отображать эффекты размытия глубины резкости для камеры.

Другие вопросы по тегам