Рендеринг непрозрачных, альфа-активированных и смешанных объектов - PullRequest
1 голос
/ 18 июля 2011

В моем рендеринге я иногда мои объекты полностью непрозрачны, иногда объекты имеют некоторую альфа к ним.Под альфа я имею в виду текстуру листа, где показана только листовая часть, а остальные пиксели нет (поэтому прозрачность на части текстуры).Для смешивания я имею в виду настройку целевого смешивания и исходного смешения.

Однако нужно ли два списка визуализации или три списка визуализации?Сначала у меня есть список всех возможных объектов, которые могут быть отрисованы.Оттуда я разделил его на два списка, Opaque и «Alpha Enabled» (которые будут отображены обратно).Тем не менее, для тех, у кого есть смеси, но без изменений альфа-уровня, они должны быть в отдельном списке или в непрозрачных или альфа-списках?

Ответы [ 2 ]

1 голос
/ 20 июля 2011

Вам нужно два списка, один для непрозрачных, один для прозрачных.

Все, что должно визуально смешиваться с другой геометрией «за ней», должно находиться в смешанном списке, независимо от того, основано ли смешивание на альфа-канале или каком-либо другом состоянии добавления / подписки / умножения / любого другого состояния смешивания. Выполните рендеринг назад, убедитесь, что отдельные примитивы выпуклые и не пересекаются друг с другом.

Альфа-тестирование, как и состояния Гоза, является исключением, поскольку оно выполняет z-записи на основе альфа-маски. Он уходит в непрозрачную кучу.

1 голос
/ 19 июля 2011

Если вы используете альфа-тестирование, то вы можете протолкнуть альфа-тестированные детали через непрозрачный конвейер. Итак, при условии, что я вас правильно понимаю, вам нужно только 2 списка рендера.

...