2015-10-13 14 views
3

Я пробовал Scenekit, и у меня возникает проблема, когда я пытаюсь отображать частицы за полупрозрачными объектами. Они просто не отображают, пока другие объекты в сцене делают.Можно ли отображать частицы за полупрозрачными объектами в наборе сюжетов?

enter image description here

На этой фотке все частицы находятся в передней части полу прозрачной коробке, все частицы, которые за не отображаются. Вы можете видеть, что сфера правильно отображается, а цвета покрытой части ослаблены. Я бы ожидал такого же от частиц, но, может быть, выбор рендеринга каркаса, чтобы сделать системы частиц эффективными, делает такое поведение нормальным?

Я пытался использовать google/stackoverflow, но кажется, что сценарий не очень хорошо освещенная тема.

+0

Я не знаю, как много о наборе сцены, но я знаю, что в OpenGL сделать заказ очень важен для полупрозрачности. Можете ли вы управлять, если вы нарисуете частицы до или после коробки? Сначала вы должны нарисовать непрозрачные объекты. –

+0

Это хороший намек ... Я искал его, но я думаю, что я забыл ... Я не могу изменить порядок обработки частиц, но кажется, что я могу изменить порядок отображения излучателя частиц ... попробует его вне. – Xav

+0

Просто быстрый google показывает, что вы можете управлять чертежным графиком сцены. «Родитель рисует свой контент перед его воспроизведением». «Дети отображаются в порядке, в котором они отображаются в дочернем массиве». –

ответ

2

Прозрачность сильно зависит от порядка вытягивания. С альфа-смешиванием рендерер считывает текущие значения в буфере кадров и смешивает в полупрозрачном цвете поверх этих значений.

Это означает, что непрозрачные объекты должны быть нарисованы первыми, а полупрозрачные объекты должны быть обращены назад. Если непрозрачные объекты рисуются после полупрозрачных объектов, рендереру нет текущих цветов для смешивания.

С помощью SceneKit порядок розыгрыша может контролироваться свойством renderingOrder на узле сцены.

Порядок расположения содержимого узла по сравнению с другими узлами .

Apple Docs

+1

это верно в SpriteKit (2D), но не в SceneKit (3D). Порядок, в котором узлы отображаются в SceneKit, не зависит от их положения в графе сцены. – mnuages

+0

@mnuages ​​ах спасибо за улов. Я обновил ответ. –

+1

На самом деле, сейчас у меня противоположная проблема ... Частицы за коробкой должным образом ослаблены, но частицы перед коробкой также ослаблены, пока они не прозрачны! – Xav