This page has been translated automatically.
Video Tutorials
Interface
Essentials
Advanced
How To
Basics
Rendering
Professional (SIM)
UnigineEditor
Interface Overview
Assets Workflow
Version Control
Settings and Preferences
Working With Projects
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Lighting
Sandworm
Using Editor Tools for Specific Tasks
Extending Editor Functionality
Built-in Node Types
Nodes
Objects
Effects
Decals
Light Sources
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
Programming
Fundamentals
Setting Up Development Environment
Usage Examples
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
Materials and Shaders
Rebuilding the Engine Tools
GUI
Double Precision Coordinates
API
Animations-Related Classes
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
VR-Related Classes
Content Creation
Materials
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials

Textures Optimization

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.

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.

The output of 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 texture loading without spikes and other impacts on performance at the first moments of run time.

Notice
Make sure asynchronous texture streaming is enabled for your world:

For the texture streaming optimization, you can enable texture mipmap loading, which significantly improves performance by reducing the memory consumption of texture streaming. This feature allows for the correct mipmap to be loaded at the current moment. When mipmaps loading is enabled, the textures that are not currently in use are unloaded.

To enable and configure mipmaps loading via UnigineEditor, do the following:

  1. Open the Settings window and go to the Streaming section.
  2. Toggle on the Mipmaps flag and specify the required Mipmaps Density.
Notice
You can do the same via the console using the render_streaming_textures_mipmaps and render_streaming_textures_mipmaps_density commands.

Mipmaps Density sets the density of mipmaps relative to the screen resolution and helps to define which mipmap should be loaded at the current moment. You can specify different values for different quality presets. For example, you can set the density to less than 1 for the low-quality preset. In this case, the engine will load the low-resolution mipmaps, and the textures will look blurry.

Additionally, you may need to configure the Texture Streaming Density Multiplier for each texture in some materials to achieve the desired visual effect.

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).

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.

You can also manually select the desired resolution of the texture in the Import Options.

Texture 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.

To open the Texture Profiler window, choose Tools -> Content Profiler on the Menu Bar of UnigineEditor and switch to the Textures tab. 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 allows sorting by path, extension, occupied RAM or Video Memory size, format, or resolution.

Last update: 2024-08-16
Build: ()