Почему у SCNTechnique нет свойства .library, такого как SCNProgram? - PullRequest
2 голосов
/ 23 марта 2019

Я работаю над проектом SceneKit и использую металл для рендеринга. Я хотел применить постобработку к моей сцене с помощью SCNTechnique, но SCNTechnique требует, чтобы файлы металлических шейдеров находились в расположении библиотеки металлов по умолчанию. Это проблематично, потому что у моей программы есть собственное местоположение пакета, где расположены все ресурсы, и я не могу получить доступ к местоположению по умолчанию. Когда я запускаю свой код, SceneKit жалуется, что «не может найти библиотеку без пути», что означает, что он не нашел никаких шейдеров в расположении по умолчанию (потому что я не могу их туда поместить). Более того, не похоже, что Metal может быть встроен в строковый литерал, такой как OpenGL. Как ни странно, SCNProgram имеет свойство библиотеки, поэтому оно работает, поскольку я могу установить для этого свойства библиотеку по умолчанию, которая указывает на правильный пакет моей программы и содержит все шейдеры. Однако SCNProgram не поддерживает постобработку, только геометрию и материалы.

Может кто-нибудь пролить свет на эту проблему?

...