Как сделать текстуру в юнити
Текстуры
Вы можете добавлять текстуры на поверхность terrain’а для создания окраски и мелких деталей. Так как terrain’ы довольно большие объекты, к ним обычно применяют текстуры, которые можно бесшовно стыковать, чтобы замостить ими поверхность (повтор обычно не заметен с точи зрения персонажа, который находится близко к земле). Одна текстура будет служить как “фоновая” картинка по всему ландшафту, но вы также можете рисовать области, используя другие текстуры, чтобы симулировать различные покрытия, такие как трава, пустыня и снег. Нарисованные текстуры могут быть применены с разной прозрачностью, так, чтобы у вас получился плавный переход между травянистой местностью и песчаным пляжем, например.
Terrain песчаной дюны с песочной текстурой
Включение текстур
Кнопка с кистью на панели инструментов включает рисование текстур.
Изначально у terrain’а не будет текстур, назначенных для рисования. Если вы кликнете кнопку Edit Textures и из выпавшего меню выберите Add Texture, вы увидите окно, в котором вы можете указать текстуру и её свойства.
Depending on the material type you set in Terrain Settings, the color channels of the main texture map may have different uses. These are listed below in Terrain Texture Settings.
Click on Select to see your texture assets in a separate Select Texture window (not shown). Click on the texture you want and it displays in the Add Terrain Texture window. (See Add Terrain Texture window, before and after, in Fig 1 below.)
Нанесение текстур на ландшафт
Depending on the material type you set in Terrain Settings, the color channels of the main texture map may have different uses. The different Add Terrain Texture windows are listed here.
Standard [image above in Fig 1]: RGB channels are the albedo color of the terrain surface, while alpha channel controls the smoothness. There is also a ‘Metallic’ slider which controls the overall look of the surface.
Diffuse: RGB channels are the diffuse color. Alpha channel is not used.
Окно Add Texture
Specular: RGB channels are the diffuse color. Alpha channel is the gloss map.
Окно Add Texture
Custom: How the splat map is used depends on your custom shader, but usually you want the RGB channels to be the base color.
Окно Add Texture
Besides the main texture map, you can also specify a normal texture for all of the 3 built-in material types. The texture type of the normal texture used here must be ‘Normal Map’ (you can change the texture type of a texture asset in its import settings). Shader code that handles normal map will be turned on only when at least one normal texture is set for the terrain, so you don’t need to pay the performance cost of normal map if you don’t use them.
Свойство Size (прямо под селекторами текстур) позволяет вам установить ширину и высоту на которую будет растягиваться изображение по поверхности terrain’а. Свойство Offset определяет, как далеко от точки вращения terrain’а будет начинаться тайлинг; вы можете установить его в 0, чтобы начать тайлинг прямо от угла. После того как вы установили текстуру и нужные вам свойства, нажмите на кнопку Add, чтобы сделать текстуру доступной terrain’у.
To make changes to an added terrain texture, select its thumbnail, click the ‘Edit Textures’ button and select ‘Edit Texture…’ from the menu. Or, you can simply double click on its thumbnail. To remove a terrain texture, select its thumbnail, click the ‘Edit Textures’ button and select ‘Remove Texture’ from the menu.
Рисование текстурами
Первая текстура, которую вы добавите, будет использоваться в качестве “фона” для покрытия terrain’а. Однако, вы можете добавить сколько угодно текстур; последующие текстуры будут доступны для рисования с помощью привычных кистей. Под текстурами в инспекторе terrain’а вы увидите не только обычные опции Brush Size и Opacity, но и дополнительную опцию Target Strength. Она устанавливает максимальную степень непрозрачности, которую достигнет кисть, даже если повторно пройдётся по одной и той же точке. Это может быть полезно при добавлении едва заметных островков разнообразия цветов на одном типе terrain’а для разбавления монотонности большой, плоской области с такой же затайленой текстурой, повторяющейся снова и снова.
Травяная поверхность с нарисованной текстурой грязи в углах
Unity 2018 и ProBuilder: создаем, редактируем и текстурируем 3D-модели прямо в редакторе
Как известно, в Unity нельзя было создавать трехмерные модели. Т.е. нативных средств и инструментов для редактирования трехмерных моделей в Unity нет, есть несколько встроенных объектов (куб, сфера и т.п.), но с ними невозможно, опять же, встроенными стредствами редактора выполнять такие манипуляции, как добавление (перемещение, вращение, удаление) вершин, ребер, полигонов, нельзя накладывать текстуры на отдельные полигоны, нельзя создавать фаски и выполнять вытягивание полигонов.
15 февраля 2018 года Unity Technologies в своем блоге разместила замечательную новость: начиная с версии Unity 2018 в редактор будут интегрированы инструменты ProBuilder. ProBuilder — это уникальный набор средств для построения двумерных и трехмерных геометрических форм с возможностью их дальнейшего редактирования и текстурирования.
Я специально скачал и установил Unity версии 2018.1 beta для того, чтобы воочию убедиться в реальности происходящего. Ведь интеграция инструментов редактирования трехмерных сеток в редактор поднимет Unity еще на одну ступеньку вверх на лестнице их достижений за последние несколько лет. Unity вправе сегодня считаться одной из самых продвинутых IDE для создания компьютерных игр и интерактивных приложений.
После установки Unity 2018.1 beta зайдите в пункт меню Windows — Package Manager, в появившемся диалоговом окне нажмите кнопку All, найдите пункт ProBuilder и нажмите Install.
После достаточно быстрой установки в главном меню программы появится новый пункт Tools с одним подпунктом — ProBuilder, наведя на который мы с вами получим внушительный список возможностей.
Давайте выберем пункт ProBuilder Window, после чего на экране появится плавающая панель с инструментами: создание новой формы (New Poly Shape), создание нового объекта (New Shape), редактор материалов, UV редактор, и многое другое. Этакий мини 3D Studio Max внутри Unity.
Я попробовал создать несколько объектов и был приятно удивлен. Список новых возможностей впечатляет:
Я не удержался и создал видео — быстрый старт в инструменты ProBuilder с новой версией Unity, кому интересно — посмотрите ниже.
2D текстуры
Textures bring your Meshes, Particles, and interfaces to life! They are image or movie files that you lay over or wrap around your objects. As they are so important, they have a lot of properties.
Свойства
The Texture Inspector looks a bit different from most others:
The inspector is split into two sections, the Texture Importer and the texture preview.
Texture Importer
Textures all come from image files in your Project Folder. How they are imported is specified by the Texture Importer. You change these by selecting the file texture in the Project View and modifying the Texture Importer in the Inspector.
The topmost item in the inspector is the Texture Type menu that allows you to select the type of texture you want to create from the source image file.
Свойство: | Функция: | |
---|---|---|
Texture Type | Выбор этого пункта устанавливает базовые параметры, в зависимости от предназначения вашей текстуры. | |
Texture | Это самый распространённый вариант для обычных текстур. | |
Normal Map | Select this to turn the color channels into a format suitable for real-time normal mapping. See the Details section at the end of the page. | |
Editor GUI | Используйте этот вариант, если собираетесь использовать вашу текстуру для интерфейса. | |
Sprite (2D and UI) | This must be selected if your texture will be used in a 2D game as a Sprite. | |
Cubemap | Cubemap, often used to create reflections. See Cubemap Textures for more info. | |
Cookie | Этот вариант настроит вашу текстуру для использования в виде Cookie для источников освещения. | |
Advanced | Выберите этот вариант, если хотите задать особые параметры для вашей текстуры и хотите получить полный контроль над текстурой. |
Texture
Свойство: | Функция: | |
---|---|---|
Alpha From Grayscale | If enabled, an alpha transparency channel will be generated by the image’s existing values of light and dark. | |
Wrap Mode | Отвечает за поведение текстуры при тайлинге: | |
Repeat | Текстура повторят (тайлит) саму себя | |
Clamp | Края текстуры растягиваются | |
Filter Mode | Отвечает за то, как текстура фильтруется, если её растянуло при 3D трансформациях: | |
Point | Вблизи текстура становится более пиксельной | |
Bilinear | Вблизи текстура становится более размытой | |
Trilinear | Как и Bilinear, но текстура также размывается и на разных мип уровнях | |
Aniso Level | Увеличивает качество текстуры, при обзоре под большим углом. Хорошо подходит для пола и текстур земли. См. раздел Детали в конце страницы. |
Normal map
Свойство: | Функция: |
---|---|
Create from Greyscale | Если включено, то опции рельефности и фильтрования будут показаны. |
Bumpiness | Контролирует значение рельефности. |
Filtering | Определяет, как рассчитывается рельефность: |
Smooth | Генерирует достаточно гладкие карты нормалей. |
Sharp | Также известно как Sobel-фильтр. Он генерирует карты нормалей, которые более резкие, нежели стандартные. |
Wrap Mode | Отвечает за поведение текстуры при тайлинге: |
Repeat | Текстура повторят (тайлит) саму себя |
Clamp | Края текстуры растягиваются |
Filter Mode | Отвечает за то, как текстура фильтруется, если её растянуло при 3D трансформациях: |
Point | Вблизи текстура становится более пиксельной |
Bilinear | Вблизи текстура становится более размытой |
Trilinear | Как и Bilinear, но текстура также размывается и на разных мип уровнях |
Aniso Level | Увеличивает качество текстуры, при обзоре под большим углом. Хорошо подходит для пола и текстур земли. См. раздел Детали в конце страницы. |
Editor GUI
Свойство: | Функция: |
---|---|
Filter Mode | Отвечает за то, как текстура фильтруется, если её растянуло при 3D трансформациях: |
Point | Вблизи текстура становится более пиксельной |
Bilinear | Вблизи текстура становится более размытой |
Trilinear | Как и Bilinear, но текстура также размывается и на разных мип уровнях |
Sprite (2D and UI)
Свойство: | Функция: |
---|---|
Sprite mode | Отвечает за то, как спрайтовая графика будет извлекаться из изображения. |
Single | Спрайтовое изображение будет использоваться как единое. |
Multiple | Несколько раздельных спрайтов(например, кадры анимации или раздельные элементы спрайта, которые принадлежат одному игровому персонажу) будут храниться в одном и том же изображении. |
Packing Tag | Имя опционального атласа спрайта в который эта текстура должна быть запакована. |
Pixels To Units | Количество пикселей ширины/высоты в изображении спрайта, которые будут соответствовать одной единицы расстояния в мировом пространстве. |
Pivot | Точка на изображении, где определяется центр местной системы координат спрайта (центр, сверху-слева и т.д.). |
Filter Mode | Отвечает за способ фильтрации текстуры, когда она растягивается при трансформациях: |
Point | Вблизи текстура становится более пиксельной |
Bilinear | Вблизи текстура становится более размытой |
Trilinear | Как и Bilinear, но текстура также размывается и на разных мип уровнях |
Cursor
Свойство: | Функция: |
---|---|
Wrap Mode | Отвечает за поведение текстуры при тайлинге: |
Repeat | Текстура повторят (тайлит) саму себя |
Clamp | Края текстуры растягиваются |
Filter Mode | Отвечает за то, как текстура фильтруется, если её растянуло при 3D трансформациях: |
Point | Вблизи текстура становится более пиксельной |
Bilinear | Вблизи текстура становится более размытой |
Trilinear | Как и Bilinear, но текстура также размывается и на разных мип уровнях |
Cubemap
See Cubemap Textures page for more information on cubemap import settings.
Cookie
Lightmap
Свойство: | Функция: |
---|---|
Filter Mode | Отвечает за то, как текстура фильтруется, если её растянуло при 3D трансформациях: |
Point | Вблизи текстура становится более пиксельной |
Bilinear | Вблизи текстура становится более размытой |
Trilinear | Как и Bilinear, но текстура также размывается и на разных мип уровнях |
Aniso Level | Увеличивает качество текстуры, при обзоре под большим углом. Хорошо подходит для пола и текстур земли. См. раздел Детали в конце страницы. |
Advanced
Per-Platform Overrides
Когда вы собираете игру для разных платформ, вам следует подумать о разрешении текстур для целевой платформы, размере и качестве. Вы можете установить стандартные настройки и затем их изменить под определённую платформу.
The general settings are covered below. Settings specific to a platform can be found separately in the platform’s own manual section.
If you have set the Texture Type to Advanced then the Texture Format has different values.
Import Details
Поддерживаемые форматы
Unity can read the following file formats: PSD, TIFF, JPG, TGA, PNG, GIF, BMP, IFF, PICT. It should be noted that Unity can import multi-layer PSD and TIFF files just fine. They are flattened automatically on import but the layers are maintained in the assets themselves, so you don’t lose any of your work when using these file types natively. This is important as it allows you to just have one copy of your textures that you can use from Photoshop, through your 3D modelling app and into Unity.
Размеры текстур
Ideally texture sizes should be powers of two on the sides. These sizes are as follows: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 etc. pixels. The textures do not have to be square, i.e. width can be different from height. Note that each platform may impose maximum texture sizes. See Android and iOS. For DirectX the maximum texture sizes for different feature levels are:
DX feature level: | Maximum texture sizes: |
---|---|
9.1 | 2048 |
9.2 | 2048 |
9.3 | 4096 |
10.0 | 8192 |
10.1 | 8192 |
11.0 | 16384 |
Note: The texture importer currently only allows you to choose sizes up to 8K.
Non power of two texture assets can be scaled up at import time using the Non Power of 2 option in the advanced texture type in the import settings.
UV Mapping
When mapping a 2D texture onto a 3D model, some sort of wrapping is done. This is called UV mapping and is done in your 3D modelling app. Inside Unity, you can scale and move the texture using Materials. Scaling normal & detail maps is especially useful.
Mip Maps
Normal Maps (карты нормалей)
Карты нормалей используются для шейдеров с их использованием, чтобы у низкополигональных моделей создать эффект, что они содержат больше деталей. Unity использует карты нормалей закодированными в виде RGB изображения. У вас также есть вариант генерации карты нормалей из черно-белой карты высот изображения.
Detail Maps (карты деталей)
If you want to make a terrain, you normally use your main texture to show where there are areas of grass, rocks sand, etc. If your terrain has a decent size, it will end up very blurry. Detail textures hide this fact by fading in small details as your main texture gets up close.
The Secondary Maps (Detail Maps) and Detail Mask page describes this in more details.
Reflections (Cube Maps)
If you want to use texture for reflection maps (e.g. use it in Reflection Probes or a cubemapped Skybox), pick Cubemap import type. See Cubemap Textures page for more information.
Anisotropic filtering (Анизотропная фильтрация)
Анизотропная фильтрация увеличивает качество текстуры видимой под высоким углом, немного увеличивая нагрузку рендеринга (нагрузка полностью идёт на видеокарту). Обычно увеличение уровня анизотропии является неплохой идеей для текстур земли и пола. В меню Quality Settings анизотропную фильтрацию можно применить ко всем текстурами или полностью отключить её.
Нет анизотропии (слева)/ Максимальная анизотропия (справа) применённая для текстуры земли