#xamarin.ios #transparency #opentk #glblendfunc
#xamarin.ios #прозрачность #opentk #glblendfunc
Вопрос:
Я пытаюсь отобразить некоторые текстуры меток с прозрачным фоном, используя OpenTK в Xamarin. Сначала казалось, что метки отображаются правильно (см. Рисунок 1), но при повороте вида фон некоторых меток больше не прозрачен (см. Рисунок 2).
Включенный BlendFunc — это GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha).
Мой вопрос в том, как я могу всегда иметь прозрачность ярлыков, несмотря на их положение? Кстати, тот же код и шейдер могут корректно работать на устройствах Android.
Ответ №1:
Ах да, старая добрая проблема прозрачности. К сожалению, это тот, который графический программист должен решить самостоятельно.
Для нескольких меток наиболее простым решением, скорее всего, будет сортировать ваши метки по z-глубине, а затем отображать их от самых дальних к самым близким. Вероятно, вам потребуется выполнить некоторую матричную математику для этой позиции метки, чтобы настроить вращение области просмотра.
Для 3D-игры, над которой я работаю, я решил реализовать независимый от порядка метод прозрачности, называемый WBOIT Моргана Макгуайра, который довольно прост в реализации и дает относительно хорошие результаты.
Комментарии:
1. Я не уверен, что 50-100 меток считаются «немногочисленными», но пока, я думаю, мне нужно отсортировать их по z-глубине перед рендерингом. Вашу ссылку также стоит проверить. Большое вам спасибо.
2. Пожалуйста, z-сортировка 50-100 меток должна быть в порядке