Применить модификатор шейдера SceneKit к нескольким узлам - PullRequest
0 голосов
/ 06 сентября 2018

Вопрос: Есть ли способ применить модификаторы шейдеров не только к конкретному SCNMaterial или SCNGeometry (поскольку это единственные классы, использующие протокол SCNShadable), но и к набору SCNNodes, например, ко всем дочерним узлам выбрал один?

Проблема, которую я пытаюсь решить: У меня есть шейдерный код, который обрезает (discard s фрагменты) геометрию путем расчетов по одинаковым параметрам. Фактически, он может обрезать модель по координатам оси или случайным «коробочным» объемам, переданным как однородные.

Я не нашел никакой информации о модели отсечения в SceneKit, поэтому я решил придерживаться шейдеров. Применение модификатора шейдера к каждому узлу кажется неправильным. Тем не менее, он работал на симуляторе, но не работает на реальном устройстве, так как превышает лимит ресурсов. Я также попробовал SCNTechnique, но то, что я нашел, похоже, подходит для постобработки, а не для обработки фрагментов.

Применение модификатора шейдера к сцене rootNode было бы способом пойти ИМХО, но я не уверен, возможно ли это вообще. Я что-то упустил из-за использования шейдеров в SceneKit? Или есть более эффективные способы выполнения параметрического вырезания геометрии?

...