This page has been translated automatically.
Основы UNIGINE
1. Введение
2. Виртуальные миры и работа с ними
3. Подготовка 3D моделей
5. Камеры и освещение
6. Реализация логики приложения
7. Создание кат-сцен и запись видео
8. Подготовка проекта к релизу
9. Физика
10. Основы оптимизации
11. ПРОЕКТ2: Шутер от первого лица
12. ПРОЕКТ3: Аркадная гонка по пересеченной местности от 3-го лица
13. ПРОЕКТ4: VR приложение с простым взаимодействием

Текстуры в материалах

A texture (or map) is a raster image that defines the material color (or any other feature, such as relief) at each point on a surface. We can say that a texture is superimposed on a surface — a special map is created that maps the points of a three-dimensional surface to a flat image. This map determines how exactly the texture is overlaid onto your model and matches polygons with the texture islands. This map is called UV map and it is usually stored in the model itself, and the process of its creation is called UV unwrapping.Текстура (или карта) – это растровое изображение, которое определяет цвет (или какую-либо другую характеристику, например, рельеф) материала в каждой точке поверхности. Говорят, что текстура накладывается на поверхность: иными словами, создается особая «карта», сопоставляющая точки объемной поверхности с плоским изображением. Она определяет как именно текстура будет ложиться на вашу модель и какие полигоны будут соответствовать «островам» на текстуре. Эту карту называют UV-разверткой или просто разверткой и хранится она обычно в самой модели.

In early visualizations, the polygons of the model were just "filled" with color, now 3D modeling operates with a great variety of textures. They can be projected directly onto the surface (albedo), can be used as masks (for example, to define transparent areas), besides, pixel values of textures can be used for other calculations (for example, 3D textures may be used to define the cloud shape). Textures can also be used to simulate the environment (cube maps that are projected onto the walls of a cube from the inside) or as filters on light sources like a spotlight. Here is just a small list of the most commonly used textures:В самых первых визуализациях полигоны модели просто "заливали" цветом, сейчас же в 3D-моделировании существует превеликое множество текстур. Они могут проецироваться на поверхность непосредственно (albedo), могут использоваться в качестве масок (например, определять прозрачные области), кроме того значения пикселей текстуры могут использоваться для других вычислений (например 3D текстуры для задания формы облаков). Текстуры также можно использовать, например, для имитации окружающей среды (кубические карты, которые проецируются на стенки куба изнутри) или как светофильтры на источниках света типа прожектор. Вот лишь небольшой список наиболее встречающихся текстур, с которыми нам предстоит столкнуться:

  • Albedo map is a color map or model coloring. For a long time this was the only map applicable to the model (besides UV), and many games (especially mobile games, where saving memory space and computational resources is extremely important) still use only this map. Although, skillful use of diffuse map can replace other maps to some extent, it many cases is not enough.Карта альбедо (albedo) — это карта цвета или раскраска модели. Долгое время это была единственная карта, применимая к модели (помимо UV), и до сих пор многие игры (особенно мобильные, где максимально важна экономия пространства памяти и вычислительных ресурсов) обходятся только ей. Умелая работа с диффузной картой действительно способна заменить в какой-то степени другие карты, но всё же её часто бывает недостаточно.

  • Emission map has a name that explains its function: black means no light emission, pure white means maximum emission, and all available shades of color channels allow you to paint the object in all possible colors, like a neon sign.Карта свечения (emission) — карта, название которой отражает её функции: чёрный цвет означает отсутствие свечения, чисто белый — максимальное свечение,а все доступные оттенки цветовых каналов, позволяют раскрасить объект во все цвета радуги, как неоновую вывеску.

  • Ambient Occlusion (AO) map is used to store the information about indirect lighting intensity, the amount of light reaching the surface — some areas are brighter, some are darker. This map can highlight the relief shown on the main texture, without it the material may look more flat.Карта фонового затенения (ambient occlusion) — используется для хранения информации о том, какие области модели должны получать яркое или слабое непрямое освещение, интенсивности света, доходящего до точки поверхности. Эта карта может подчеркнуть рельеф, изображенный на основной текстуре, без нее материал может смотреться более плоским.

  • Normal map is a map that imitates volume without increasing the number of polygons. It creates the illusion of an uneven surface due to light and shadow transitions. Normals are stored not just for polygon vertices or planes, but for each pixel of the superimposed texture map. Normal maps change the direction of light reflected from an object, making it look more complex than it really is (like holograms — they are absolutely flat, but reflect light as a three-dimensional object would).Карта нормалей (normal map) — карта, имитирующая объем без увеличения числа полигонов. Она создаёт иллюзию неровной поверхности за счёт переходов света и тени. Нормали хранятся не просто для вершин или плоскостей полигонов, а для каждого пикселя наложенной текстурной карты. Карты нормалей меняют направление света, отражающегося от объекта, заставляя его выглядеть сложнее, чем он есть на самом деле (как голограммы, – они совершенно плоские, но отражают свет так, как это делал бы объемный объект).

  • Displacement map is a single-channel map that stores the distortion (displacement) values of the model surface. Unlike the normal map, it does not simulate volume, but directly informs the engine how the model should look like (that's why the model has real volume in the final image, not its illusion).Карта смещения (displacement map) — одноканальная карта, хранящая значения искажений (смещения) поверхности модели. В отличие от карты нормалей она не имитирует объём, а непосредственно «показывает» движку, как именно должна выглядеть модель (благодаря чему на финальном изображении модель имеет реальный объём, а не его иллюзию.

  • Transparent map, alpha map or simply alpha is a map responsible for marking transparent areas on the texture. This function is often (and UNIGINE is no exception) is taken over by an albedo map, which has an additional alpha channel. It can be either really transparent (PNG files) or just carry information about transparency (DDS and TGA formats).Карта прозрачности, альфа-карта или просто альфа (alpha / transparent map) — карта, отвечающая за маркировку прозрачных областей на текстуре. Часто (UNIGINE не исключение) эту функцию на себя берёт карта альбедо, имеющая дополнительный альфа-канал. Он может быть как действительно прозрачным (PNG файлы), так и просто нести информацию о прозрачности (DDS и TGA форматы).

Procedurally Generated Textures
Процедурно генерируемые текстуры#

You can apply not only ready-made textures to an object, but also textures generated by a computer. For instance, you can create a noise texture, which is an image that contains visual noise.На объект можно накладывать не только готовые текстуры, но и генерируемые компьютером. Например, можно создать текстуру шума (англ. noise texture) — изображение, содержащее визуальный мусор (шум).

This type of texture can be helpful in making the surface of a model look less perfect, as real-life objects are almost never perfectly smooth or uniformly colored. They usually have some scuffs, stains, scratches, and other minor defects. By using noise as a displacement map, you can easily create realistic textures like plaster, orange zest, the surface of Mars, and more.Такая текстура может пригодиться, например, чтобы поверхность модели не выглядела слишком идеальной — в реальной жизни практически не встречаются безупречно ровные или идеально окрашенные предметы. Всегда есть какие-то потёртости, пятна, шероховатости и другие небольшие дефекты. Использование шума в качестве карты смещения поможет быстро создать реалистичную штукатурку, цедру апельсина, поверхность Марса и многое другое.

A material can utilize several textures for various purposes. For instance, it can incorporate an albedo texture, an ambient occlusion texture, and a normal map. Furthermore, alpha channels of one or more of these textures may store roughness and emission maps.В одном материале используется несколько текстур для разных целей. Например, материал может иметь текстуру альбедо, текстуру ambient occlusion, карту нормалей и т.д. Кроме того, может существовать карта шероховатости и свечения(эмиссии), сохраненная в альфа-каналах одной или нескольких из этих текстур.

The process of creating textures is called texturing, and it is typically performed using specialized software. Ready-made textures can also be purchased or downloaded for free from various online resources. UNIGINE allows for the import and use of ready-made textures, as well as the creation and editing of textures and masks directly on objects using the built-in Texture Editor (we will review this tool in more detail later).Процесс создания текстур называется текстурированием. Как правило, это делается с использованием специализированного ПО, также можно купить или бесплатно скачать готовые текстуры с различных Интернет-ресурсов. В UNIGINE можно импортировать и использовать уже готовые текстуры, и вдобавок к этому создавать и редактировать текстуры и маски прямо на объекте при помощи встроенного редактора Texture Editor, с которым мы познакомимся чуть позже.

You can also assign a texture to the corresponding material slot via the Parameters window simply by dragging an asset into the corresponding field.Назначить текстуру в соответствующий слот материала можно также через окно Parameters, просто перетащив ассет в соответствующее поле.

When importing textures, it is crucial to indicate their type as it determines the final format of the runtime-texture, channels to be used, and compression methods to be applied. To specify this, you can select the appropriate preset while importing a texture asset.При импорте текстур важно указывать, к какому типу они относятся, поскольку от этого зависит каким будет окончательный формат runtime-текстуры, какие каналы будут использоваться и что за методы компрессии будут применяться. Указать это можно, выбрав соответствующий пресет при импорте текстурного ассета.

Moreover, you can add a postfix to the texture name to pre-define its type and apply the necessary import parameters automatically. Postfixes correspond to presets such as _alb for Albedo, _n for Normal, _e for Emission, and more (see documentation for a complete list).Кроме того к имени текстуры можно добавить постфикс, который позволяет сразу обозначить ее тип и автоматически применить нужные параметры импорта. Постфиксы соответствуют пресетам: _alb – Albedo, _n – Normal, _e – Emission и так далее (полный список приведен в документации).

It is crucial to ensure that the texture resolution on each axis is divisible by a power of 2 (POT — Power-Of-Two textures) for optimal memory usage, efficient compression, and performance enhancement — this recommendation is applicable to any engine. Texture size also impacts performance and memory utilization, so it is essential to avoid using a 4K texture where a 512x512 texture size is sufficient. The built-in Texture Profiler in UNIGINE can help track potential problems with textures in your project. Further recommendations on texture optimization will be provided in the corresponding section.Также важно следить за тем, чтобы разрешение текстуры по всем осям было кратно степеням 2 (текстуры POT – Power-Of-Two), с точки зрения оптимального использования памяти, эффективной компрессии и повышения производительности всеми движками рекомендуется использование именно таких текстур. С точки зрения производительности и рационального использования памяти важен также размер текстуры – не стоит использовать 4К-текстуру там, где вполне достаточно размерности 512х512. В UNIGINE отследить потенциальные проблемы с текстурами в проекте вам поможет встроенный текстурный профайлер (Texture Profiler), рекомендации по оптимизации текстур будут даны позже в соответствующем разделе.

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