Есть ли жизнеспособный способ использования текстур с шейдерами SCNProgram в Scenekit? Насколько я могу судить, нет способа получить доступ к текстурам SCNMaterial по умолчанию из SCNProgram (я знаю, что могу получить к ним доступ из модификаторов шейдеров, но, к сожалению, насколько я могу судить, я не могу сделать то, что мне нужно сделать с модификаторами шейдеров).Использование текстур с пользовательскими SCNPrograms в SceneKit
Управление собственными текстурами непросто, потому что очевидное место для их привязки - в блоке material.handleBindingOfSymbol - вызывается один раз для каждого бита геометрии, созданного с помощью материала. В моем случае это десятки тысяч раз за кадр, что кажется сумасшедшим для чего-то, что нужно сделать только один раз, если граф сцены правильно сортирует состояние рендеринга.
Я предположил, что будет способ прикрепления текстуры к SCNProgram или к материалу SCNM, чтобы scengraph мог управлять состоянием рендеринга, но для жизни меня я не могу найти ничего подобного.
Я что-то упустил или текстуры в основном непригодны для использования с программами SCN?
Что вы не можете сделать в комплекте модификаторов шейдеров? –
Привет, Дэвид, спасибо за ваш ответ. Я обрабатываю светящуюся геометрию - в отличие от обычного «прозрачного» затенения, это должно действовать как свет и быть добавочно смешанным (согласно моему предыдущему вопросу, на который вы ответили). Единственный способ, которым я нашел, чтобы заставить stageKit собрать его правильно, - это настраиваемый шейдер, который просто выполняет поиск текстуры и возвращает цвет с альфа = 0. Модификаторы, похоже, предполагают нормальное освещение и имеют фазу освещения, и я не могу решить, можно ли просто обойти, чтобы просто вернуть «неосвещенный» цвет. – jportway
Также, как я упоминал в [моем предыдущем вопросе] (http://stackoverflow.com/questions/27319549/using-blending-functions-in-scenekit?noredirect1_comment43102388_27319549), я не могу получить SceneKit для включения смешивания без установки свойства «opaque = false» в SCNProgram - никакое количество попыток перебора с «прозрачностью», похоже, не имеет никакого значения, странно. Поэтому я не уверен, как заставить смешение без SCNProgram. – jportway