Вопрос:
Есть ли способ применить модификаторы шейдеров не только к конкретному SCNMaterial
или SCNGeometry
(поскольку это единственные классы, использующие протокол SCNShadable
), но и к набору SCNNodes
, например, ко всем дочерним узлам выбрал один?
Проблема, которую я пытаюсь решить:
У меня есть шейдерный код, который обрезает (discard
s фрагменты) геометрию путем расчетов по одинаковым параметрам. Фактически, он может обрезать модель по координатам оси или случайным «коробочным» объемам, переданным как однородные.
Я не нашел никакой информации о модели отсечения в SceneKit
, поэтому я решил придерживаться шейдеров. Применение модификатора шейдера к каждому узлу кажется неправильным. Тем не менее, он работал на симуляторе, но не работает на реальном устройстве, так как превышает лимит ресурсов. Я также попробовал SCNTechnique
, но то, что я нашел, похоже, подходит для постобработки, а не для обработки фрагментов.
Применение модификатора шейдера к сцене rootNode
было бы способом пойти ИМХО, но я не уверен, возможно ли это вообще.
Я что-то упустил из-за использования шейдеров в SceneKit? Или есть более эффективные способы выполнения параметрического вырезания геометрии?