Я пишу металлическое приложение для iPhone.У меня есть тонны опыта OpenGL, так что это не должно быть слишком сложно, верно?
НЕПРАВИЛЬНО.
Я рендеринг этой 2-й сцены прямоугольников без коррекции соотношения сторон - вершиныв [-1,1] x [-1,1] координатах, поэтому это должно заполнить весь экран и исказить сцену, чтобы соответствовать экрану.
Кстати, это работает на относительно новой версии iPhone, версия12.1.2 (16C101).
В альбомном режиме (ширина> высота) вот что я получаю (изображение на экране): https://imgur.com/r7gJXct. Половина экрана пуста.
В портретном режиме (высота> ширина) я получаю именно то, что ожидал (искаженные квадраты): https://imgur.com/ZoPoHhR.
Я думаю, что происходит то, что Металл просто воспроизводит портретный режим и обрезает все, что выходит изЭкран, без «сжатия» его в окне просмотра экрана.
Код - это просто основной металлический код, без конфигурации.Я взял стандартный металлический iOS-проект, удалил код в Renderer и следовал учебному пособию Hello Triangle с униформой, отправленной в шейдер, и различными данными вершин.
Как мне исправить эту «ошибку»?Это даже ошибка?