SceneKit: SCNRenderingAPI - PullRequest
       39

SceneKit: SCNRenderingAPI

0 голосов
/ 10 марта 2019

Я пытаюсь использовать модель освещения PhysicallyBased для моего SCNView ... но для этого я должен установить для свойства renderAPI представления значение SCNRenderingAPIMetal.

Технологией игры, которую я выбрал, был SceneKit, а не Metal, так что это может быть проблемой. Тем не менее, я думаю, что это просто шаблон. Разве я не могу каким-то образом импортировать металлический каркас?

edit: я получаю сообщение об ошибке о том, что свойство view.renderingAPI является неизменным ...

1 Ответ

0 голосов
/ 11 марта 2019

SceneKit - это абстракция, построенная на OpenGL / Metal. Он объединяет часто используемые операции, модели затенения и т. Д. В приятную среду, поэтому программистам не нужно реализовывать весь конвейер рендеринга. Вам не нужно переходить в Metal для выполнения часто поддерживаемых операций, таких как физическое рендеринг.

Чтобы реализовать PBR, вам нужно указать, что ваш объект использует PBR, и установить различные входные данные, необходимые для визуализации эффекта:

let material = firstNode.geometry?.firstMaterial
material?.lightingModelName = SCNLightingModelPhysicallyBased
material?.diffuse.contents = UIImage(named: "albedo.png")
material?.roughness.contents = UIImage(named: "roughness.png")
material?.metalness.contents = UIImage(named: "metalness.png")
material?.normal.contents = UIImage(named: "normal.png")

Вам нужно только перейти в Metal, если вы пытаетесь реализовать эффект, который не поддерживается SceneKit. Надеюсь, это поможет!

...