Рисование: как рисовать текстуры для сайтов, игр и моделей, Blender. Рисование текстур для Unity 3D . Уроки GIMP 2 Часть

Собственно начну с того, что мне любезно предоставили бесплатную лицензию для TexturePacker. Программа упаковывает текстурки в атлас, и позволяет экспортировать в нужном формате. И ниже я расскажу вам, какую роль она сыграла в проекте. Для подготовки текстур к атласам текстуры были уменьшены на 2 пикселя, ради бордюров. Например 256px оригинального фрейма 1px + 254px + 1px. Опции которые я использовал :

  • Data Format : JSON (Array)
  • Texture Format : TGA (RGBA8888)
  • Size constraints : POT (Power of 2)
  • Scale : 1 (для PC), 0.5 (тест)
  • Algorithm : MaxRects
  • Multipack : TRUE
  • Allow rotation : TRUE
  • Detect identical srites : TRUE
  • Extrude : 1
  • Clean transparent pixels : FALSE

Получились вот такие атласы. image Как потом выяснилось, 1 пикселя мало для выдавливания защитных бордюров по краям фреймов. И вообще тут подошла бы другая функция. Подробности [тут]. Теперь [ложка дегтя в бочке мёда] Я очень благодарен за предоставленную блоггерскую лицензию, но есть несколько пунктов если не перечеркивающие все преимущества халявы, то здорово портящие всё впечатление . И я их сейчас перечислю:

  • отсутствие возможности ручного перетаскивания спрайтов между атласами. Нет возможности менять положение фреймов и т.д. а было бы очень удобно
  • отсутствие возможности адекватно дробить атласы. Допустим у нас получается 5 атласов 1024х1024 и один 512×512, логично было бы скомпоновать их в набор 2048х2048, 1024х1024 и аппендикс 512х512. Получили бы максимальный выигрыш в drawCall/memory
  • нет возможности группировать спрайты “по папкам”. Если добавлена smart folder с некоторым количеством подпапок всё их содержимое перемешается.
  • нет возможности залочить положение спрайтов в атласах (или весь атлас), если нужно внести изменения только в одном (например добавить спрайт) – придется делать реимпорт всего проекта (атласа) в фреймворк.
  • нет возможности исключить файл/папку из атласа при использовании smart folder. Собственно весь “smart” заключается в рекурсивном обходе папок и автообновлении.
  • нет ни отображения % заполненности атласа, ни % свободного места
  • нельзя начать нумерацию атласов с произвольной цифры, только 0 или 1
  • баги! В некоторых проектах тулл падает. Собственно атлас он создает, но вот описание к нему.. приходилось переносить руками из gui, или пользоваться консольной версией. Какой-то конфликт с родительским QT. (Собственно надо отдать должное, на письма отвечают весьма оперативно!)
  • Не хватает функции ручной разметки тайлов для готового атласа (функция здорово помогла бы при портировании).

В принципе пользоваться и так. Хотя.. чего таить, продукт за свои деньги очень качественный, я думаю купить после того как истечет год блоггерской лицензии. Некоторые модели содержат до 45! различных текстур, при том что используют всего 1-2 материала (всетаки шейдера.. немного тавтологии). Внедрение атласов позволило ощутимо снизить количество Draw Call : cpu реже дергает видеокарту, gpu отрисовывает картинку за меньшее количество проходов. Побочным эффектом является overhead по видеопамяти, когда при худшем сценарии у нас в памяти несколько атласов, в которых на потенциально видимой сцене используется только по одному фрейму.

Текстуры на объекте Terrain рисуются во вкладке Paint Terrain, в котором надо выбрать режим Paint Texture.

Затем надо нажать на кнопку Edit Terrain Layers… и в выпадающем списке выбрать Create Layer…, где можно выбрать материал (текстуру), которой можно рисовать по объекту Terrain.

Если материалов нет, их можно импортировать через Asset Store.

Изменить размер текстуры можно через параметр Size.

В результате объект Terrain будет выглядеть примерно как на картинке ниже.

Обновлено: 01 ноября 2020 | История изменений

Ландшафт

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

Ландшафт

Ландшафт лучше создать как отдельную 3D-модель, например, в Blender или в любой другой программе по работе с трехмерной графикой. Но для наших целей хватит Unity. Игровой движок содержит в себе встроенный функционал, который называется Terrain и позволяет создавать горы, ямы, добавлять деревья и траву. Terrain — трехмерный игровой объект и создать его можно в том же меню, что и примитивные объекты.

Terrain очень большой игровой объект

Чтобы редактировать Terrain, выбери его и найди в окне Инспектор следующие настройки.

Raise / Lower Terrain

Этот инструмент позволяет рисовать горы и углубления (с нажатой клавишей Shift). Если на ландшафте не создаются углубления — подними ландшафт с помощью инструмента Paint Height, о котором рассказывается далее.

Paint Height

Этот инструмент позволяет поднять ландшафт до заданной высоты. Кнопка Flatten поднимает весь ландшафт на заданную высоту (параметр Height).

Smooth Height

С помощью этого инструмента можно сгладить неровности ландшафта.

Вот, что получилось у нас:

Нужный нам ракурс (слева) и Вид сверху (справа)

Paint Texture

Пришло время добавить красок. С помощью этой кисти можно наложить текстуры на ландшафт. Для этого сначала добавь нужные текстуры в окне Инспектор Edit Texture → Add Texture. Добавляй сразу все, которые собираешься использовать, так удобнее будет работать. Текстуры, которые используем мы, можно ⬇скачать тут.

Вот, что получилось у нас:

Промежуточный результат

Paint Details

С помощью этой кисти можно добавить траву и камни на ландшафт.

Рассмотрим процесс создания травы. Нажми кнопку Edit Details… → Add Grass Texture. В параметре Detail Texture выбери текстуру травы. С помощью параметров Min Width (минимальная ширина), Max Width (максимальная ширина), Min Height (минимальная высота), Max Height (максимальная высота) можно изменить размер травы. Цвет травы можно изменить в параметрах Healthy Color (цвет свежей травы), Dry Color (цвет сухой травы). Нажми кнопку Add.

Для текстуры травы нужна подобная картинка: Grass.png

Удерживая кнопку Shift можно удалить траву кистью.

Удерживая кнопку Ctrl можно удалить траву определенного типа.

С помощью этой кисти можно добавлять мелкие объекты на ландшафте (камни). Нажми кнопку Edit Details… → Add Detail Mesh. В параметре Details выбери объект. С помощью параметров Min Width (минимальная ширина), Max Width (максимальная ширина), Min Height (минимальная высота), Max Height (максимальная высота) можно изменить размер объекта. Цвет объекта задается в параметрах Healthy Color (основной цвет), Dry Color (вторичный цвет). Render Mode задает режим отображения объекта: Grass — плоский режим, Vertex Lit — трехмерный режим.

Place Trees

Данный инструмент позволяет сажать деревья на ландшафт.

Деревья — это 3D модели, созданные в специальной программе 3D моделирования. В играх чаще всего используются модели деревьев, созданные в программе SpeedTree. Это платная программа. В ассете «Environment» находятся бесплатные деревья, созданные в этой программе. Его можно добавить также, как ты добавлял ассет Characters. Также, Unity поддерживает деревья, созданные в Blender.

Читайте также:  Как огородить газон под окнами

Что получилось у нас (слева) и Скриншот из Witcher 3 (справа)

Нам определенно есть к чему стремиться😂

Теперь можно добавить транспорт! Посмотри 📖инструкцию, чтобы узнать как это сделать.

Присылай администратору сайта скриншоты своей работы с Ландшафтом и мы опубликуем лучшие в сообществе Юниум.

Источник статьи: http://learn.unium.ru/computercourses_unitybase_6/

Unity: работа с Terrain

Предисловие

Привет, народец! Меня всё-таки попросили написать отдельную статью, как работать с Terrain и создать локацию. Предыдущие статьи Вы можете обнаружить по ссылкам:

Terrain

Пойдем мы с вами по протоптанной дорожке, создадим Scene, а в ней GameObject -> 3D Object -> Terrain и выставим значения Terrain Width(Length, Height) 100-100-120. И перед нами появляется серый квадрат!

Отлично, половина работы сделана. Давайте придадим некие очертания нашему квадрату, а именно, создадим горы у краёв Terrain. Для этого переходим в Inspector и находим кисточку Paint Terrain, в ней выбираем графу Raise or Lower Terrain.

После выбираем подходящую кисть, размер(Brush size) и Opacity(силу воздействия). Я выбрал параметры 7 и 10. Начинаем водить нашей кистью по краям Terrain и получаем горы по краям, если Вы всё сделали правильно, у Вас должно получиться что-то подобное.

После я возьму другую кисть (тут уже на ваш выбор), выставлю Opacity на 3 и начну водить ей по ровным поверхностям что бы создать эффект российских ровных дорог =). Получилось вот так.

Мне кажется, я объяснил, как пользоваться кистями. Поигравшись с настройками, вы вполне сможете создать от пустыни до тропиков, всё зависит от фантазии, единственное что еще скажу, если вы ходите сделать возвышенность меньше, то просто зажмите клавишу Shift, от этого будет обратный эффект. Сейчас же не будем на этом зацикливаться и двинемся дальше.

Текстуры

После всех манипуляций у меня появился серый квадрат с непонятными выпуклостями, нужно придать ему немного жизни.И снова тут несколько вариантов:

  1. Нарисовать текстуры самому (если умеем)
  2. Купить готовые в Asset Store
  3. Скачать бесплатный пак стандартных асетов (это мы и сделаем)

Идём в Asset Store и вводим в поисковике standard assets, он сразу же нам выдаст необходимый пак. Скачиваем, интегрируем, радуемся =).

Снова нажимаем на кисточку в Inspector Terrain и выбираем строку Paint Textures. Ниже видим строку Edit Terrain Layers, выбираем Create Layer. В появившемся окне я нахожу текстуру травы(GraceHillAlbedo) применяю и вижу, что моя серая постройка стала зеленой.

Добавляем очередную текстуру, у меня это CliffAlbedoSpecular, её я буду использовать для разрисовки гор, негоже что бы всё было одного цвета. Выбираю кисть, размер, и текстуру гор, начинаю рисовать.

Мне кажется, стало выглядеть немного лучше. Тут вам стоит поиграть с текстурами (добавить больше одной на основание и возвышенность) и придать максимально реалистичную картину, я же не буду заострять на этом внимание, просто добавлю еще по текстуре и всё.

Получился конечно не шедевр, но у меня нет желание тратить на это больше 5 минут =). А теперь, для Зеленых, посадим несколько деревьев! Выбираем Paint Trees рядом с кистью, нажимаем Edit Trees и выбираем Add Tree. Нажимаем на кружочек в поле Tree Prefab и выбираем дерево которое нам понравилось. В паке оказалось всего три дерева, и я решил добавить их все. Поставив первое дерево, я обнаружил что оно слишком уж большое, поэтому перетаскиваем бегунок Tree Height влево до нужного нам размера и начинаем посадку деревьев.

Читайте также:  Самодельные клумбы для цветов своими руками

Партия зеленых может спать спокойно! Проделываем похожую процедуру с травой. Для тех, кто не нашел, куда же добавлять текстуру травы, ищем строчку Details в ней Edit Details -> Add Grass Texture. В строке Detail Texture нажимаем на кружок и добавляем траву, у меня это GrassFrond02AlbedoAlpha. Обратите внимание на две полоски с цветом, они отображают, какой цвет будет у травы в живом и сухом виде, а когда мы добавляем траву в сцену, бегунками можно настроить сколько будет мертвой травы, а сколько живой, это покажет мир более живым. Дальше играем с бегунками Setting и выставляем значение подходящие Вам.

Наша местность всё живее и живее! Но всё еще чего-то не хватает. Точно! Нам не хватает неба, давайте добавим небо! Иду в ассет стор, в поисковике вбиваю Sky Free и первое что мне выдает это Sky5x, скачиваю и добавляю в проект. Далее нажимаем на Window -> Rendering ->Lighting Setting, находим строчку Skybox Material нажимаем на кружок и выбираем понравившееся Вам небо, я выбрал небо с облаками.

Получилось довольно неплохо для проекта, собранного на скорую руку.

Если посмотреть на игровую сторону, то мы имеем покачивающиеся деревья и траву на ветру. Не поленитесь потратить достаточно времени, на создание локации и она Вам будет приносить только удовольствие.

Заключение

Создание локации — довольно сложный и очень трудозатратное удовольствие, вам нужно сразу понимать что вы будете создавать, чтобы в дальнейшем не пришлось всё делать заново. А в данной статье я рассказал основы, как пользовать кистями для изменения Terrain. Надеюсь, вам это было полезно. А мы с вами встретимся уже в следующей статье по созданию игры, используя только интернет!

Источник статьи: http://www.ixbt.com/live/games/unity-rabota-s-terrain.html

Смешивание текстур ландшафта

В данной статье я расскажу об алгоритме смешивания текстур, который позволяет привести внешний вид ландшафта ближе к естественному. Этот алгоритм легко может быть использован как в шейдерах 3D игр, так и в 2D играх.

Статья рассчитана на начинающих разработчиков игр.

Один из наиболее распространенных способов текстурирования ландшафта заключается в смешивании текстур нескольких слоев. Эти слои накладываются друг на друга, формируя тем самым внешний вид ландшафта. При этом каждый слой дополнительно имеет карту прозрачности, которая определяет степень присутствия текстуры на ландшафте. Она измеряется в процентах. Естественно, что в каждой точке ландшафта сумма степеней прозрачности по всем слоям составляет сто процентов, так как ландшафт не может быть прозрачным. В отличие от текстур тайлов, карта прозрачности растягивается целиком на весь ландшафт и поэтому имеет довольно низкий уровень детализации.

Читайте также:  Сколько отступить от межи при строительстве теплицы

Теперь перейдем к самому интересному — алгоритмам смешивания текстур. Для простоты и наглядности наш ландшафт будет состоять из песка переходящего в крупные булыжники.

Самый простой способ смешивания — перемножить цвет текстуры и прозрачность, а результаты просуммировать.

Именно такая техника используется в Unity 3D в стандартном редакторе ландшафта. В глаза сразу бросается плавный, но неестественный переход. Камни выглядят равномерно испачканными песком, а ведь так не бывает в реальности. Песок не прилипает к камням, наоборот, он осыпается и заполняет щели между ними, оставляя верхушки камней более чистыми.

Давайте попробуем смоделировать эту ситуацию в самом обыкновенном Excel с его таблицами и графиками. Так как мы хотим, чтобы песок «проваливался» между булыжниками, для каждой текстуры нам понадобится карта ее глубины. В данном примере я сгенерировал ее из самой текстуры в оттенках серого и поместил в альфа-канал.

Первым делом рассмотрим упрощенную модель карты глубин песка и камней.

Синей линией условно обозначена карта высот песка, а красной — булыжников. Можно заметить, что верхушки булыжников выступают над уровнем песка. Учитывая этот факт, попробуем выводить пиксели той текстуры, которая находится выше.

Отлично! Верхушки камней остаются чистыми, тогда как песок кажется осыпавшимся в щели между ними. Но мы еще не учли степени прозрачности слоев. Для этого мы просто сложим карту высот с картой прозрачности.

За счет суммирования менее прозрачная текстура будет находиться выше, чем обычно.

Так мы получили более естественный переход от песка к камням. Видно как песчинки начинают заполнять промежутки между булыжниками, постепенно скрывая их за собой. Но так как отрисовка происходит попиксельно, на границе между текстурами стали проступать артефакты. Чтобы как-то их сгладить, мы будем брать не один, а несколько пикселей в глубину и смешивать их.

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

А потом нормализуем его для того, чтобы получить новые степени прозрачности.

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

В заключение я хочу рассказать о том, для чего был разработан этот алгоритм и как мы его используем.

Шейдер разрабатывался для инди-игры Steam Squad в жанре изометрической 2D стратегии. В качестве фреймворка для разработки мы используем Unity 3D. А так как среда разработки Unity чрезвычайно гибка, мы сделали свое расширение — редактор уровней. По большому счету, редактор является упрощенной копией стандартного редактора ландшафтов с элементами взятыми из редактора игры Titan Quest.

При рисовании текстурой по ландшафту происходит пересчет соответствующей ей карты прозрачности. А так как сумма всех степеней прозрачности должна составлять 100%, карты прозрачности всех остальных слоев нормализуются. Как это выглядит в самом редакторе можно посмотреть на коротком видео.

Источник статьи: http://habr.com/ru/post/180743/

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com (подробнее ») 1 августа 2020, 01:25 | Обзор | Компьютерные и мобильные игры
Предисловие

Привет, народец! Меня всё-таки попросили написать отдельную статью, как работать с Terrain и создать локацию. Предыдущие статьи Вы можете обнаружить по ссылкам:

Terrain

Пойдем мы с вами по протоптанной дорожке, создадим Scene, а в ней GameObject -> 3D Object -> Terrain и выставим значения Terrain Width(Length, Height) 100-100-120. И перед нами появляется серый квадрат!

Отлично, половина работы сделана. Давайте придадим некие очертания нашему квадрату, а именно, создадим горы у краёв Terrain. Для этого переходим в Inspector и находим кисточку Paint Terrain, в ней выбираем графу Raise or Lower Terrain.

После выбираем подходящую кисть, размер(Brush size) и Opacity(силу воздействия). Я выбрал параметры 7 и 10. Начинаем водить нашей кистью по краям Terrain и получаем горы по краям, если Вы всё сделали правильно, у Вас должно получиться что-то подобное.

После я возьму другую кисть (тут уже на ваш выбор), выставлю Opacity на 3 и начну водить ей по ровным поверхностям что бы создать эффект российских ровных дорог =). Получилось вот так.

Мне кажется, я объяснил, как пользоваться кистями. Поигравшись с настройками, вы вполне сможете создать от пустыни до тропиков, всё зависит от фантазии, единственное что еще скажу, если вы ходите сделать возвышенность меньше, то просто зажмите клавишу Shift, от этого будет обратный эффект. Сейчас же не будем на этом зацикливаться и двинемся дальше.

 Текстуры

После всех манипуляций у меня появился серый квадрат с непонятными выпуклостями, нужно придать ему немного жизни.И снова тут несколько вариантов:

  1. Нарисовать текстуры самому (если умеем)
  2. Купить готовые в Asset Store
  3. Скачать бесплатный пак стандартных асетов (это мы и сделаем)

Идём в Asset Store и вводим в поисковике standard assets, он сразу же нам выдаст необходимый пак. Скачиваем, интегрируем, радуемся =).

Снова нажимаем на кисточку в Inspector Terrain и выбираем строку Paint Textures. Ниже видим строку Edit Terrain Layers, выбираем Create Layer. В появившемся окне я нахожу текстуру травы(GraceHillAlbedo) применяю и вижу, что моя серая постройка стала зеленой.

Добавляем очередную текстуру, у меня это CliffAlbedoSpecular, её я буду использовать для разрисовки гор, негоже что бы всё было одного цвета. Выбираю кисть, размер, и текстуру гор, начинаю рисовать.

Мне кажется, стало выглядеть немного лучше. Тут вам стоит поиграть с текстурами (добавить больше одной на основание и возвышенность) и придать максимально реалистичную картину, я же не буду заострять на этом внимание, просто добавлю еще по текстуре и всё.

Получился конечно не шедевр, но у меня нет желание тратить на это больше 5 минут =). А теперь, для Зеленых, посадим несколько деревьев! Выбираем Paint Trees рядом с кистью, нажимаем Edit Trees и выбираем Add Tree. Нажимаем на кружочек в поле Tree Prefab и выбираем дерево которое нам понравилось. В паке оказалось всего три дерева, и я решил добавить их все. Поставив первое дерево, я обнаружил что оно слишком уж большое, поэтому перетаскиваем бегунок Tree Height влево до нужного нам размера и начинаем посадку деревьев.

Партия зеленых может спать спокойно! Проделываем похожую процедуру с травой. Для тех, кто не нашел, куда же добавлять текстуру травы, ищем строчку Details в ней Edit Details -> Add Grass Texture. В строке Detail Texture нажимаем на кружок и добавляем траву, у меня это GrassFrond02AlbedoAlpha. Обратите внимание на две полоски с цветом, они отображают, какой цвет будет у травы в живом и сухом виде, а когда мы добавляем траву в сцену, бегунками можно настроить сколько будет мертвой травы, а сколько живой, это покажет мир более живым. Дальше играем с бегунками Setting и выставляем значение подходящие Вам.

Наша местность всё живее и живее! Но всё еще чего-то не хватает. Точно! Нам не хватает неба, давайте добавим небо! Иду в ассет стор, в поисковике вбиваю Sky Free и первое что мне выдает это Sky5x, скачиваю и добавляю в проект. Далее нажимаем на Window -> Rendering ->Lighting Setting, находим строчку Skybox Material нажимаем на кружок и выбираем понравившееся Вам небо,  я выбрал небо с облаками.

Получилось довольно неплохо для проекта, собранного на скорую руку.

Если посмотреть на игровую сторону, то мы имеем покачивающиеся деревья и траву на ветру. Не поленитесь потратить  достаточно времени, на создание локации и она Вам будет приносить только удовольствие.

Заключение

Создание локации — довольно сложный и очень трудозатратное удовольствие, вам нужно сразу понимать что вы будете создавать, чтобы в дальнейшем не пришлось всё делать заново. А в данной статье я рассказал основы, как пользовать кистями для изменения Terrain. Надеюсь, вам это было полезно. А мы с вами встретимся уже в следующей статье по созданию игры, используя только интернет!

Вопрос задан 2 года 5 месяцев назад Последняя активность 2 года 5 месяцев назад Просмотрен 2k раз

Делаю всё как в видео, и на 10.22 вручную регулируют цвет. Но у меня по каким-то причинам эта функция не активна, как и все остальные.

Не реагирует. image

Как сделать, чтобы реагировала?

Улучшить вопрос 1

2 ответа 2

Текущие По дате публикации Голоса

Выбираем модель и выбираем вкладку Materials. Затем в строке Location выставляем Use External Materials (Legacy). После чего подтверждаем изменение настроек кнопкой Apply.

image

Как я понял, этим действием Unity создаёт отдельную папку и выкидывает туда наши материалы/текстуры из модели.

После этого можно изменить цветовую гамму нашего материала/текстуры по вашему усмотрению.

image

Я перевёл цвет в белый, в следствии чего – модель приобрела свой первоначальный цвет.

Улучшить ответ

  • Нужно извлечь текстуры и материалы вашей модели.

    1 Выбрать вашу модель в окне Project

    1. В окне Inspector перейти на вкладку Materials
    2. Создать папку и извлечь в нее текстуры вашей модели (Extract Textures)
    3. То же самое проделать с материалами модели (Extract Materials)
    4. Выбрать вашу модель в окне сцены и раскрыть его на компоненты
    5. Наслаждаемся результатом.

Источник ответа

Улучшить ответ

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.

default

Оцените статью
Рейтинг автора
4,8
Материал подготовил
Максим Коновалов
Наш эксперт
Написано статей
127
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий