Используйте этот API, чтобы переопределить настройки по умолчанию в системе потоковой передачи Mipmap или получить более точное управление.
Эта страница содержит следующую информацию:
- Обзор
- Управление системой потоковой передачи Mipmap
- Управление камерами
- Загрузка определенного уровня MIP
- Отладка и профилирование
- Связанные методы Unity API
Общую информацию об этой системе см. в разделе Система потоковой передачи Mipmap.
Обзор
Вы можете использовать API для переопределения поведения в определенных ситуациях, в то время как система потоковой передачи Mipmap автоматически управляет настройками по умолчанию.
Это полезно, если вы знаете, что Unity необходимо полностью загрузить определенные текстуры; например, если они относятся к GameObjectsфундаментальному объекту в сценах Unity, который может представлять персонажей, реквизит, декорации, камеры, путевые точки , и больше. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
См. в Словарь, которые быстро перемещаются на большие расстояния, или если вы используете мгновенную камеруКомпонент, который создает изображение определенной точки обзора в вашей сцене. Вывод либо рисуется на экране, либо фиксируется в виде текстуры. Подробнее
См. в Словарь.
Управление системой потоковой передачи Mipmap
Чтобы включить потоковую передачу Mipmap для текстуры и управлять ею, используйте следующие свойства:
- TextureImporter.streamingMipmaps
- TextureImporter.streamingMipmapsPriority
- IHVImageFormatImporter.streamingMipmaps
- IHVImageFormatImporter.streamingMipmapsPriority
Потоковая передача Mipmap автоматически уменьшает уровень мип-текстур до тех пор, пока они не будут соответствовать бюджету памяти потоковой передачи Mipmap. Число приоритета Mip-карты текстуры примерно равно смещению MIP-карты для бюджета памяти. Например, с приоритетом 2 система Mipmap Streaming пытается использовать мип, который на два уровня мип выше, чем другие текстуры с приоритетом 0. Допустимы и отрицательные значения. Если он не может этого сделать, он использует более низкий уровень MIP, чтобы соответствовать Бюджету памяти.
Эти свойства доступны только для чтения во время выполнения:
Чтобы управлять тем, что происходит во время выполнения, используйте следующие статические свойства:
- QualitySettings.streamingMipmapsActive
- QualitySettings.streamingMipmapsMemoryBudget (по умолчанию 512 МБ)
- QualitySettings.streamingMipmapsRenderersPerFrame (по умолчанию 512)
- QualitySettings.streamingMipmapsMaxLevelReduction (по умолчанию 2)
- QualitySettings.streamingMipmapsMaxFileIORequests (по умолчанию 1024)
- Texture2D.streamingTextureDiscardUnusedMips (по умолчанию false)
Управление камерами
При переходе из одного места в другое системе Mipmap Streaming требуется время для потоковой передачи необходимых текстур в Unity. Чтобы запустить предварительную загрузку в отключенной целевой камере, вызовите StreamingController.SetPreloading в компоненте Streaming Controller целевой камеры. Вы можете указать тайм-аут для завершения фазы предварительной загрузки. Чтобы камера автоматически включалась в конце этапа предварительной загрузки, установите в скрипте флаг activateCameraOnTimeout
в значение true. Чтобы отключить камеру после перехода от нее к новой, передайте эту камеру в качестве параметра disableCameraCuttingFrom
.
void StreamingController.SetPreloading(float timeoutSeconds=0.0f, bool enableCameraOnTimeout=false, Camera disabledCameraCuttingFrom=null)
Чтобы отменить или запросить состояние предварительной загрузки, используйте следующие методы:
Чтобы определить, загружает ли система Mipmap Streaming текстуры, можно запросить следующие свойства:
Обратите внимание, что между включением камеры и моментом, когда значения этих свойств становятся отличными от нуля, существует задержка. Эта задержка связана с тем, что система Mipmap Streaming вычисляет MIP-карты, используя обработку с разделением по времени. По этой причине во время монтажа камеры вы должны ждать минимальное время перед монтажом. Бюджет текстуры и СценаСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
См. в Словарь движение может привести к непрерывной потоковой передаче Mipmap, поэтому вам также необходимо установить максимальное время до обрезки.
Загрузка определенного мип-уровня
Чтобы переопределить расчет уровня MIP для конкретной Текстуры, используйте Texture2D.requestedMipmapLevel. Это точный мип-уровень в диапазоне от 0 до максимального мип-уровня конкретной Текстуры или значение Max Level Reduction, если оно ниже. 0 — максимальное разрешение MIP.
Чтобы проверить, загружен ли запрошенный вами уровень MIP, используйте Texture2D.IsRequestedMipmapLevelLoaded.
Если вы больше не хотите переопределять запрошенный вами уровень MIP и вместо этого хотите, чтобы система продолжала вычислять уровни MIP, используйте Texture2D.ClearRequestedMipmapLevel для сброса значения.
Чтобы получить оценку плотности УФ-излучения на Meshосновном графическом примитиве Unity. Меши составляют большую часть ваших 3D-миров. Unity поддерживает триангулированные или четырехугольные полигональные сетки. Поверхности Nurbs, Nurms, Subdiv должны быть преобразованы в полигоны. Подробнее
См. в Словарь, используйте следующее:
float Mesh.GetUVDistributionMetric(int uvSetIndex)
Вы можете использовать метрику UV-распределения для расчета необходимого уровня MIP-карты на основе положения камеры. Пример кода см. в разделе Mesh.GetUVDistributionMetric.
Чтобы переопределить систему и принудительно загрузить все MIP-файлы, используйте Texture.streamingTextureForceLoadAll.
Отладка и профилирование
Чтобы получить информацию о потоковой передаче для каждой текстуры в свойствах материала, которую можно использовать для создания визуализаций отладки, используйте Texture.SetStreamingTextureMaterialDebugProperties.
Следующие свойства текстуры также могут быть полезны для разработки инструментов профилирования/отладки Mipmap Streaming для вашего проекта.
- Texture.currentTextureMemory
- Texture.desiredTextureMemory
- Texture.totalTextureMemory
- Texture.targetTextureMemory
- Texture.nonStreamingTextureMemory
Чтобы получить информацию о количестве текстур или средств визуализации, с которыми взаимодействует система Mipmap Streaming, используйте следующие свойства:
- Texture.streamingMipmapUploadCount
- Texture.nonStreamingTextureCount
- Texture.streamingTextureCount
- Texture.streamingRendererCount
Чтобы получить информацию об уровнях MIP-текстуры для текстуры, используйте следующие свойства:
Связанные методы Unity API
Чтобы получить и установить текстуру, назначенную материалу, используйте:
Чтобы получить все свойства Текстуры для Материала, используйте: