MSAA не работает в Unreal 4.14?
Я пытаюсь использовать новый прямой рендеринг с MSAA в GearVR на Galaxy S6. Но сглаживания определенно не происходит. Совсем.
После долгих поисков в Интернете и в редакторе я обнаружил следующие переменные, которые могут быть связаны с включением MSAA:
1.Окно> Инструменты разработчика> Профили устройств> Android:
- r.MSAACount
- r.MSAACompositingSampleCount
- r.DefaultFeature.Antialiasing
- r.MobileOnChipMSAA
- r.MobileMSAA
- r.MobileContentScaleFactor
Кажется, что ничего из вышеперечисленного не имеет значения, если я изменю их в редакторе профилей устройств в UEd.
2.Измените> Настройки проекта> Engine > Рендеринг> Настройки по умолчанию> Метод сглаживания:. Установка MSAA ничего не делает.
3. Я также попытался установить все предыдущие переменные из DefaultEngine.ini и ничего.
Должно быть что-то, что я пропускаю. Если у кого-то есть какие-то мысли, я бы очень признателен
1 ответ
Получается что:
- MSAA включен по умолчанию для мобильных устройств.
- Рендерер Forward в 4.14 не имеет ничего общего с мобильным. Это новое только для настольных компьютеров (например, HTC Vive и Rift).
Что касается того, как проверить, что MSAA действительно включен:
Вы можете проверить при запуске на устройстве в logcat, выполнив поиск:LogHMD: Enabling r.MobileOnChipMSAA, previous value 0
Вы также можете добавить журнал (и перекомпилировать движок) в OpenGLRenderTarget.cpp: строка 201. Вы хотите убедиться, что вы попали:glFramebufferTexture2DMultisampleEXT
Так как в противном случае ветвь else в этом кодовом пути создаст FBO без мультисэмплинга.
Однако счетчик отсчетов MSAA, по-видимому, жестко закодирован в 2 где-то еще в источнике двигателя. После долгого обсуждения на форумах Oculus мне сказали, что я могу изменить количество выборок (например, MSAA x4) в строке 152:
`// TODO: Mali supports 4x with similar hit as 2x, should we do something smarter here? Hard coded to 2 everywhere else
const uint32 SampleCount = 2;
Но этот код не выполняется при запуске на устройстве. Так что не уверен, где еще 2 могут быть жестко закодированы.