This page has been translated automatically.
Видеоуроки
Interface
Essentials
Advanced
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Professional (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Landscape Tool
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World Nodes
Звуковые объекты
Объекты поиска пути
Players
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Materials and Shaders
Rebuilding the Engine Tools
GUI
Двойная точность координат
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
Работа с контентом
Материалы
Визуальный редактор материалов
Сэмплы материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Оптимизация текстур

Textures are often the most frequently used and the most memory-consuming assets. Big projects with a huge number of assets have to face the optimization stage to improve performance and have acceptable FPS.Текстуры часто являются наиболее часто используемыми ассетами, которые потребляют больше всего памяти. Большие проекты с огромным количеством ресурсов должны пройти стадию оптимизации, чтобы повысить производительность и иметь приемлемый FPS.

An overview of the project's bottlenecks is given by Performance Profiler. By using the Rendering Performance Profiler, you can estimate the amount of video memory consumed by textures.Обзор узких мест проекта дает Профилировщик производительности . С помощью Rendering Performance Profiler можно оценить объем видеопамяти, потребляемой текстурами.

The output of Rendering ProfilerВывод Rendering Profiler

Adjust the global Textures Settings to quickly choose the desired Quality or Maximum Resolution of all textures in the project and thus decrease the video memory consumption. Mipmaps of lower resolution are used for rendering textures of lower quality.Отрегулируйте глобальные Настройки текстур чтобы быстро выбрать желаемое качество или максимальное разрешение всех текстур в проекте и, таким образом, уменьшить потребление видеопамяти. Мипмапы более низкого разрешения используются для рендеринга текстур более низкого качества.

Asynchronous StreamingАсинхронный стриминг#

Asynchronous Data Streaming of graphic resources ensures smooth loading of textures without spikes and other impacts on performance at first moments of run time. Make sure it is enabled for your worlds with a massive number of textures that certainly do not fit into video memory.Асинхронный стриминг данных графических ресурсов обеспечивает плавную загрузку текстур без спайков и других воздействий на производительность в самом начале работы приложения. Убедитесь, что стриминг включен для миров с огромным количеством текстур, которые точно не помещаются в видеопамять.

To make sure the video memory budget is not exceeded, the Memory Limits control freeing unnecessary resources. The corresponding memory limit for textures is available in the Rendering Profiler as the Textures Limit value. Please note that this setting is just a recommendation for the engine, and the specified memory limit can be exceeded if textures are required to render the current frame.Чтобы убедиться, что бюджет видеопамяти не превышен, Memory Limits управляет освобождением ненужных ресурсов. Соответствующий лимит памяти для текстур доступен в профилировщике рендеринга как значение Textures Limit. Обратите внимание, что эта настройка является лишь рекомендацией для движка, и указанный лимит памяти может быть превышен, если для рендеринга текущего кадра требуются текстуры.

Setting a low memory limit for textures is not reasonable as in this case, textures will be constantly reloaded from the disk storage, affecting the performance.Ставить низкий лимит памяти для текстур нецелесообразно, так как в этом случае текстуры будут постоянно перезагружаться с диска, что скажется на производительности.

Texture Cache used for rendering when full-size textures are being loaded also occupies video memory. Although it usually takes very little space, consider lowering the resolution and, therefore, the size of cached textures to gain more free memory.Кэш текстур используется для рендеринга при загрузке полноразмерных текстур, также занимает видеопамять. Хотя обычно это занимает очень мало места, рассмотрите возможность уменьшения разрешения и, следовательно, размера кэшированных текстур, чтобы получить больше свободной памяти.

Texture FormatsФорматы текстур#

You can control each texture asset in its Import Parameters.Вы можете менять настройки каждого текстурного ассета в его параметрах импорта.

It is usually inappropriate to use textures with the Unchanged option enabled unless they have the *.dds or *.texture format. Otherwise, compression may affect the color data a lot (like with custom hdri textures).Обычно неуместно использовать текстуры с включенной опцией Unchanged, если они не имеют формат *.dds или *.texture. В противном случае сжатие может сильно повлиять на данные цвета (например, с пользовательскими текстурами hdri).

It is crucial to use the correct Texture Preset for every texture, depending on its applicability. Thus, you ensure to use only needed channels and apply a proper compression algorithm. If the list does not provide a required preset, you can select the Custom option and choose the needed options.Крайне важно использовать правильный Предустановка текстуры для каждой текстуры, в зависимости от ее применимости. Таким образом, вы гарантируете использование только необходимых каналов и применяете правильный алгоритм сжатия. Если в списке нет требуемой предустановки, вы можете выбрать опцию Custom и выбрать нужные опции.

You can also manually select the desired resolution of the texture in the Import Options.Вы также можете вручную выбрать желаемое разрешение текстуры в параметрах импорта.

Texture ProfilerTexture Profiler#

To clearly understand which assets can be optimized or deleted, Texture Profiler is used. Using this tool, you can see how much memory every texture used in the project takes, easily find it in Asset Browser, and delete or resize it.Чтобы четко понимать, какие ассеты можно оптимизировать или удалять, используется Texture Profiler. Используя этот инструмент, вы можете увидеть, сколько памяти занимает каждая текстура, используемая в проекте, легко найти ее в Asset Browser и удалить или изменить ее размер.

To open the Texture Profiler window, choose Tools -> Texture Profiler on the Menu Bar of UnigineEditor. By using the Location switch, you can choose to inspect the textures either from the entire video memory or only the ones displayed in the Editor viewport at the moment.Чтобы открыть окно Texture Profiler, выберите Tools -> Texture Profiler в меню UnigineEditor. С помощью переключателя Location вы можете выбирать текстуры либо из всей видеопамяти, либо только те, которые отображаются во вьюпорте редактора в данный момент.

Texture Profiler allows sorting by path, extension, occupied RAM or Video Memory size, format, or resolution.Texture Profiler позволяет сортировать по пути, расширению, размеру занимаемой ОЗУ или видеопамяти, формату или разрешению.

Последнее обновление: 07.04.2022
Build: ()