Должна ли игра OpenGL использовать собственные границы UIScreen или границы для iPhone6 ​​plus?

Мой игровой движок в настоящее время использует границы UIScreen для разрешения рендеринга. На iPhone6 ​​plus это сообщает о виртуальном разрешении 2208x1242.

На симуляторе это тоже самое разрешение, о котором сообщает UIScreen nativeBounds.

Однако на реальном устройстве nativeBounds будет 1920x1080, и я не уверен, что использовать для правильного рендеринга OpenGL на iPhone6 ​​plus, и не могу найти официальную документацию по нему.

Который правильный?


person DJPJ    schedule 15.09.2014    source источник


Ответы (2)


Используйте nativeBounds и nativeScale, чтобы определить размер, который нужно установить для вашего фреймбуфера или рисунка. (Не зацикливайтесь на размере.)

Для требовательной к производительности работы с GPU — игр с OpenGL ES или Metal — вам действительно нужно свести к минимуму количество пикселей, проходящих через фрагментный шейдер. Один из хороших способов сделать это — не отображать больше пикселей, чем есть на аппаратном обеспечении дисплея.

person rickster    schedule 15.09.2014
comment
Спасибо. Да, я полагал, что оптимальной производительностью будет только рендеринг собственного разрешения, но я не могу протестировать свой движок без реального устройства в nativeBounds/Scale. Будет ли использование виртуального разрешения по-прежнему давать правильный вывод или результирующее изображение будет обрезано? - person DJPJ; 16.09.2014

Теперь я могу подтвердить, что на реальном устройстве правильный рендеринг производится при использовании виртуального разрешения 2208x1242, о котором сообщает [UIScreen bounds].

person DJPJ    schedule 27.11.2014