Что такое текстура unity
Перейти к содержимому

Что такое текстура unity

  • автор:

Текстуры

Вы можете добавлять текстуры на поверхность 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.)

Fig 1: Click on Select in the Add Terrain Texture window and choose a texture asset from the Select Texture window (not shown) - it then displays, ready to add to the terrain

Нанесение текстур на ландшафт

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’а для разбавления монотонности большой, плоской области с такой же затайленой текстурой, повторяющейся снова и снова.

Маркировка текстур как “Virtual Texturing Only”

В редакторе Unity вы можете пометить текстуры, которые используются только при виртуальном текстурировании. Это оптимизирует использование памяти, а Сцена Сцена содержит среду и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
Увидеть в Словарь время загрузки и уменьшить размер сборки. Чтобы пометить текстуру как используемую только для виртуального текстурирования, откройте средство импорта текстур и включите параметр Только виртуальные текстуры.

На практике, когда вы используете виртуальное текстурирование, вы должны пометить как можно больше текстур как Только виртуальные текстуры, чтобы максимизировать эти преимущества. Обратите внимание: если вы пометите текстуру как Только виртуальная текстура, вы не сможете использовать ее с обычным сэмплером текстуры в своем проекте. В редакторе может показаться, что вы можете использовать его с обычным семплером текстур, потому что появляется предварительный просмотр с низким разрешением, но возникает ошибка, если вы затем создаете проигрыватель.

Как это работает

По умолчанию, когда вы загружаете сцену в редакторе Unity, редактор загружает все текстуры, на которые есть ссылки, в память как ЦП, так и графического процессора. Редактор Unity не может передавать текстуры в память графического процессора с диска, но SVT может передавать их из памяти процессора. Когда вы помечаете текстуру как Только виртуальная текстура, это означает, что при загрузке сцены редактор загружает ее только в память ЦП, а затем извлекает фрагменты из этой текстуры и по запросу передает их в память графического процессора.

В проекте с большим количеством текстур высокого разрешения это значительно сокращает использование памяти графического процессора и время загрузки сцены в редакторе Unity. По этой причине рекомендуется помечать как можно больше текстур как Только виртуальные текстуры, чтобы гарантировать, что система потокового виртуального текстурирования (SVT) передает их только из ЦП.

Если вы не пометите текстуру как Только виртуальная текстура, а затем используете ее с виртуальным текстурированием в проигрывателе, система SVT сохранит копию текстуры как в памяти ЦП, так и в памяти графического процессора.

Стандартные артефакты текстуры

По умолчанию Unity добавляет все текстуры, выбранные в Shader программе, работающей на графическом процессоре. Подробнее
См. в Словарь Граф сборки в виде стандартных текстурных артефактов. Кроме того, виртуальное текстурирование импортирует все текстуры стека текстур в мозаичный файл потоковой передачи, который Unity также включает в сборку.

  • Если вы пометите текстуру как Только виртуальная текстура, Unity не включит ее в качестве стандартного артефакта текстуры, а включит только в мозаичный файл потоковой передачи.
  • Если вы не пометите текстуру как Только виртуальная текстура, Unity дважды включит ее в сборку; один раз в виде стандартного артефакта текстуры и один раз в мозаичном потоковом файле.

Обратите внимание: если вы пометите текстуру как Только виртуальная текстура, но используете ее в качестве стандартной текстуры в проигрывателе, сборка проигрывателя завершится ошибкой.

Анимированная текстура (Movie Texture)

Movie Textures это анимированные Textures , созданные из видео файлов. Перемещая видео файл в папку Assets Folder вашего проекта, вы можете использовать импортированное видео как обычную текстуру.

Видео файлы импортируются через Apple QuickTime. Форматы файлов, которые может воспроизводить QuickTime (обычно .mov, .mpg, .mpeg, .mp4, .avi, .asf). При импортировании видео на Windows, требуется иметь предустановленный в системе Quicktime проигрыватель (скачать здесь).

Свойства

Анимированная текстура Inspector очень похожа на обычную текстуру.

Видео файлы в Unity являются анимированными текстурами

Свойство: Функция:
Aniso Level При обзоре текстуры под крутым углом качество текстуры визуально улучшается. Хорошо подходит для текстур полов и земли.
Filtering Mode Выбирается то,как текстура фильтруется во время растяжения объекта различными трансформациями.
Loop При включении, после завершения проигрывания, ролик будет повторяться.
Quality Компрессия видеофайла формата Ogg Theora. Высокие значения означают высокое качество, но больший размер файла.

Детали

При добавлении в проект видеофайла, он будет автоматически импортирован и преобразован в формат Ogg Theora format. Сразу, после импорта анимированной текстуры, вы можете назначить её любой GameObject или Material , точно также как и любую обычную текстуру.

Проигрывание ролика

Ваша анимированная текстура не будет автоматически проигрываться при запуске игры. У вас должен быть небольшой скрипт, который укажет ей когда воспроизвестись.

// this line of code will make the Movie Texture begin playing ((MovieTexture)GetComponent().material.mainTexture).Play(); 

Назначьте необходимый скрипт параметру “включить воспроизведение текстуры”(toggle Movie playback) после нажатия пробела:

public class PlayMovieOnSpace : MonoBehaviour < void Update () < if (Input.GetButtonDown ("Jump")) < Renderer r = GetComponent(); MovieTexture movie = (MovieTexture)r.material.mainTexture; if (movie.isPlaying) < movie.Pause(); >else < movie.Play(); >> > > 

Для более подробной информации по воспроизведению анимированных текстур, посетите страницу [руководства по скритингу анимированных текстур(../ScriptReference/MovieTexture.html)

Аудио в видео

При импорте анимированной текстуры, будет импортирована также и аудио составляющая, дополняющая визуальную составляющую данного видео. Данное аудио представляет из себя потомка AudioClip этой анимированной текстуры.

![Аудио дорожка видео появляется в обозревателе проекта в качестве потомка данной анимированной текстуры (../uploads/Main/MovieTextureAudio.png)

Для воспроизведения звука, данный отрезок аудио должен быть назначен игровому объекту, точно также как и любой другой отрезок аудио. Перетащите отрезок аудио из обозревателя проекта на игровой объект, находящийся в окне иерархии или на сцене. Как правило, этот игровой объект будет похож на тот, который может воспроизводить видео. Затем воспользуйтесь audio.Play(), чтобы запустить синхронное воспроизведение аудио вместе с видео дорожкой.

iOS

Анимированные текстуры не поддерживаются на IOS. Вместо этого можно включить поддержку полноэкранного воспроизведения, используя Handheld.PlayFullScreenMovie.

Вам нужно хранить свои видео внутри папки StreamingAssets, находящейся в папке Assets вашего проекта.

Unity iOS поддерживает любой тип видео файлов, которые на нём безошибочно воспроизводятся, допуская такие форматы файлов как .mov, .mp4, .mpv, и .3gp и используя один из следующих стандартов сжатия данных:

  • H.264 Baseline Profile Level 3.0 video
  • MPEG–4 Part 2 video

Чтобы получить больше информации о поддерживаемых стандартах сжатия, ознакомьтесь с iPhone SDK руководство по классу MPMoviePlayerController.

Как только вы вызовите функцию Handheld.PlayFullScreenMovie экран плавно сменит показ содержимого вашего телефона на цвет заднего фона. Прежде чем видео начнёт своё воспроизведение, может потребоваться некоторое время на его загрузку, в течение которого на экране может появиться индикатор загрузки, а его цвет по прежнему будет цвета заднего фона. По окончании воспроизведения экран вновь отобразит содержимое вашего телефона.

Видео проигрыватель не поддерживает во время воспроизведения переключение в немой режим

Как было подчёркнуто выше, видео файлы воспроизводятся при помощи встроенного проигрывателя Apple(такого как на SDK 3.2 и iPhone OS 3.1.2 и более ранних). В нём содержится ошибка, не позволяющая Unity переключаться в немой режим.

Видео проигрыватель не поддерживает смену ориентации устройства.

Видео проигрыватель Apple и iPhone SDK не поддерживают настройку ориентации видео. Решить эту проблему можно только если вручную создать 2 копии одного и того же видео файла, с альбомной и портретной ориентацией соответственно. Затем перед воспроизведением файла, можно определить ориентацию самого устройства, чтобы была воспроизведена нужная версия файла.

Андроид

Анимированные текстуры не поддерживаются Android платформой. Вместо этого можно включить поддержку полноэкранного воспроизведения, используя Handheld.PlayFullScreenMovie.

Вам нужно хранить свои видео внутри папки StreamingAssets, находящейся в папке Assets вашего проекта.

Unity Android поддерживает любой тип видео файлов поддерживаемых платформой Android (т.е. такие форматы файлов как .mp4 and .3gp) и используя один из следующих стандартов сжатия данных:

Однако поставщики устройств работают над расширением данного списка, чтобы Android устройства могли воспроизводить форматы не перечисленные в данном списке, например такие как HD видео.

Для более подробной информации по поддерживаемым стандартам сжатия данный, ознакомтесь с Android SDK документация по основным медиа форматам.

Как только вы вызовите функцию Handheld.PlayFullScreenMovie экран плавно сменит показ содержимого вашего телефона на цвет заднего фона. Прежде чем видео начнёт своё воспроизведение, может потребоваться некоторое время на его загрузку, в течение которого на экране может появиться индикатор загрузки, а его цвет по прежнему будет цвета заднего фона. По окончании воспроизведения экран вновь отобразит содержимое вашего телефона.

Текстуры для Unity3D: как работать, готовые модели

Lorem ipsum dolor

Иногда детально моделировать сложные объекты в игре на Unity3D — это долго, а хочется выполнить работу как можно быстрее. В этом случае на помощь придут текстуры для Unity. Они помогут создать реалистичную игровую модель, при этом не тратится много времени, но самое главное — не будут трати ть ся ресурсы устройства на вычисление игровой графики.

Текстуры для Unity и для других игровых движков или редакторов графики — это обычное изображение, которое накладывается на поверхность готовой модели, чтобы придать ей цвет, свойства и рельефность.

Как вы знаете, за передачу геометрических данных 3D-модели отвечает набор полигонов. Полигон — это векторный многоугольник, из большого количества которых получаются готовые 3D-объекты. С полигонами взаимодействует дизайнер игровых моделей. Фактически получается так: чем больше полигонов, тем качественней будет детализирована игровая модель. Но отрисовка полигонов занимает слишком много времени. Поэтому часто реалистичность объектов достигается не большим количеством полигонов, а наложением текстур и материалов.

Текстуры для Unity 3D

  • обозначить трещины;
  • обозначить сучки;
  • сделать выпуклости;
  • и др.

Текстуры для Unity3D: применение карт рельефа

  1. Bump Map. Определяет иллюзию рельефности, вообще не меняя геометрические данные модели. По сути, на текстуру добавляются визуальные искажения, которые и создают ощущение неровностей на поверхности.
  2. Parallax Map. Определяет иллюзию движения отдельных частей модели относительно общей сцены. Такой вид карты воздействует на положение отдельных пикселей, но не полигонов.
  3. Displacement map. Этот вид карты влияет на геометрические данные модели и обеспечивает максимально реалистичную рельефность текстуры. Однако общее количество полигонов модели остается неизменным. Этот вид карты рельефа определяет реальное изменение поверхности модели и не создает иллюзий, как первые два вида. Из-за своей сложности, она считается наиболее затратной, поэтому используется нечасто.

Текстуры шумов для Unity

  • поверхность асфальта;
  • песочный пляж;
  • поверхность камней;
  • штукатурку зданий;
  • поверхность шкурки цитрусовых;
  • поверхность планет;
  • вид хлеба;
  • и др.

Текстуры для Unity3D: большие объекты

  • поверхность горы;
  • поверхность пустыни;
  • песчаный пляж;
  • снежный покров;
  • и др.

Заключение

Сегодня мы рассмотрели теоретическую часть темы «Текстуры в Unity 3D», к практическим моментам мы перейдем в следующих статьях. Нужно понять, что применение текстур позволяет достаточно быстро и незатратно добавить реалистичность готовым 3D-моделям. Это значит, что нужно обязательно научиться их использовать в собственных работах.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *