Пометка текстур как “Только виртуальная текстура”
В Unity Editor вы можете пометить текстуры, которые использует только Виртуальное Текстурирование. Это оптимизирует использование памяти и время загрузки Scene, а также уменьшает размер сборки. Чтобы пометить текстуру как используемую только Виртуальным Текстурированием, откройте ее Импортер Текстур и включите Только Виртуальные Тексты.
На практике, когда вы используете Виртуальное Текстурирование, вы должны пометить как можно больше текстур как Только Виртуальная Текстура, чтобы максимально увеличить эти преимущества. Обратите внимание, что если вы пометите текстуру как Только Виртуальная Текстура, вы не сможете использовать ее с обычным Текстурным Сэмплеров в вашем Project. В Редакторе может показаться, что вы можете использовать ее с обычным Текстурным Сэмплеров, потому что появляется предварительный просмотр низкого разрешения, но ошибка возникает, если вы затем создаете проигрыватель.
Как это работает
По умолчанию, когда вы загружаете Scene в Unity Editor, Редактор загружает все текстуры, на которые сделана ссылка, в память CPU и GPU. Unity Editor не может передавать текстуры в память GPU с диска, но SVT может передавать их из памяти CPU. Когда вы помечаете текстуру как Только виртуальная текстура, это означает, что при загрузке сцены Редактор загружает ее только в память CPU, а затем извлекает плитки из этой текстуры и передаёт их в память GPU по требованию.
В Project со многими текстурами высокого разрешения, это значительно снижает как использование памяти GPU, так и время загрузки Scene в Unity Editor. По этой причине, это хорошая практика, чтобы пометить как можно больше текстур как Виртуальная Текстура Только, чтобы убедиться, что Streaming Virtual Texturing (SVT) система только поток их из CPU.
Если вы не помечаете текстуру как Только виртуальная текстураи затем используете ее с виртуальным текстурированием в Проигрывателе, система SVT сохраняет копию текстуры в памяти CPU и GPU.
Стандартные артефакты текстуры
По умолчанию Unity добавляет все текстуры, взятые из Shader Graph, в сборку в качестве стандартных артефактов текстуры. Кроме того, Virtual Texturing импортирует все текстуры Texture Stack в потоковый файл, который Unity также включает в сборку.
- Если вы пометите текстуру как Виртуальная Текстура Только, Unity не включает ее как стандартный артефакт текстуры, и включает ее только в потоковый файл.
- Если вы не отмечаете текстуру как Только виртуальная текстура, Unity включает его дважды в сборку; один раз как стандартный артефакт текстуры, и один раз в потоковом файле плитки.
Обратите внимание, что если вы пометите текстуру как Только виртуальная текстура, но использовать его в качестве стандартной текстуры в Проигрывателе, сборка Проигрывателя не удастся.