Unity3d дозвіл отрисовать текстури менше дозволу оригінального файлу - stack overflow на

Я намагаюся вивести кубічну панораму. Сцена проста: камера всередині куба, що складається з 6 кубів-сторін. Додаток завантажує текстуру не з Assets або Resources, а з файлової системи комп'ютера. Після чого програма виводить на грані куба відповідні фрагменти текстури з відповідними mainTextureScales and mainTextureOffsets.

Панорама отрісовивается коректно. Але з катастрофічною пікселізацією. Судячи з усього, при рендеринге текстура була у багато разів зменшена.

У мене дуже великий графічний файл, що складається з 6 картинок 2048x2048, склеєних в одну стрічку. Тобто повний розмір картинки з усіма шістьма текстурами - 12288x2048. Але після того, як я завантажую цю мега-текстуру в Texture2D, вона показує правильний розмір: 12288x2048.

Якщо я зчитую текстури для граней куба не з одного файлу 12288x2048, а з 6 окремих файлів 2048x2048, дозвіл стає значно краще.

Підкажіть, як зберігати текстури кубічної панорами в одному, а не в 6 файлах, але при цьому не втрачати дозвіл при рендеринге?

Можна від чого-небудь подібного відштовхнутися:

Подається масив байт, у Texture2D є GetRawTextureData. Тобто щоб коректно завантажити, треба спочатку текстуру зберегти файл у вигляді масиву байтів отриманого з GetRawTextureData. Мінус тут в тому, що якщо розмірність блоків на які треба нарізати текстуру не всі однакові, тобто припустимо, текстура 512х512, нарізати на 512х255 не вийти, тільки на кратні, нібито 2х128, 256х64 і т.д. (пов'язано це з тим, що не зрозуміло в ширині або в висоті тобто не кратна розмірність, масив байт все ж)

p.s. Тип текстури можна винести в параметр, і через якийсь Switch визначити розмірності (як DIMENSION_RGBA32) для кожного TextureFormat (ну або можливо у Unity є якийсь інструмент для цього, не знаю). Або визначити функцію для кожного використовуваного типу текстури.