Пытаюсь добавить в игру поддержку разрешения 16:9. Во времена когда я последний раз работал с графикой, это происходило при помощи задания области просмотра (Viewport). Но как происходит работа на стыке Camera/GL в Unity я не знаю.
pixelWidth / pixelHeight возвращает огрызок в 1028x720 вместо 1280x720
Изменив аспект камеры с 1.428571 на 2.2 я получаю следующую картину:
Меши и текстуры сжимаются по ширине, словно я не увеличил, а уменьшил горизонтальную область просмотра. При этом дождь, рендерящийся посредством GC, продолжает идти на прежней территории (белая полоска справа), но точно так же обрезается по старой границе. Где и что может его ограничивать? Это могут быть шейдеры? Если да, если возможность их декомпилировать? Или нужно смотреть в сторону матриц?
Вот список всех GL-методов, которые вызываются из C#-части:
Синтаксис:
Используется csharp
GL.Begin
GL.Clear
GL.Color
GL.End
GL.IssuePluginEvent
GL.LoadIdentity
GL.LoadOrtho
GL.LoadPixelMatrix
GL.LoadProjectionMatrix
GL.MultMatrix
GL.PopMatrix
GL.PushMatrix
GL.TexCoord2
GL.Vertex3
GL.Viewport
GL.Clear
GL.Color
GL.End
GL.IssuePluginEvent
GL.LoadIdentity
GL.LoadOrtho
GL.LoadPixelMatrix
GL.LoadProjectionMatrix
GL.MultMatrix
GL.PopMatrix
GL.PushMatrix
GL.TexCoord2
GL.Vertex3
GL.Viewport
Естественно, Viewport был проверен первым делом и заменен повсеместно на:
Синтаксис:
Используется csharp
GL.Viewport(new Rect(0, 0f, Screen.width, Screen.height));