1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Blender, 1001 мелочь

Автор: thenonsense · 29 дек 2025 · ·
Продолжение разбора приёмов работы с пакетом трёхмерной графики Blender версии 2.79. На этот раз речь пойдёт о материалах в Cycles и о том, как отрендерить итоговую картинку.
  1. [​IMG]

    Приёмы работы с Blender версии 2.79, продолжение. На этот раз затронуты материалы. Для понимания более базовых принципов и инструментов рекомендуется обратится к предыдущей статье.

    Материалы

    Для того, чтобы назначать объекту материал и редактировать его свойства, понадобится найти на панели Properies (находится слева, ниже окошка Outliner'а, в котором отображается список объектов на сцене) вкладку Material (обозначена розовым шариком).

    [​IMG]

    Когда объект выделен в сцене (или выбран в списке Outliner'a), то на вкладке Material будут видны параметры материала текущего объекта. Если объект не может иметь материалов (камера, лампа и так далее), то и подобной вкладки у него не появляется.

    По умолчанию у добавляемых в сцену примитивов материалы отсутствуют (если выбран рендер Cycles) и в окне вкладки материалов пусто. Чтобы добавить простейший материал нужно нажать в том окне кнопку + New и на объекте появится материал с шейдером Diffuse.Сам объект визуально почти не изменится, оставаясь всё таким же белым, зато теперь можно менять его цвет и насыщенность, щёлкнув по параметру Color.

    [​IMG]

    Добавление нового материала

    [​IMG]
    На панели Properties находим вкладку Material

    [​IMG]
    Жмём кнопку "+ New"

    [​IMG]
    Теперь на объекте появился стандартный материал Diffuse (если появилось что-то другое, то убедитесь, что на самой верхней панели выбран рендер Cycles Render)

    [​IMG]
    Нажав на белый прямоугольник можно выставить другой оттенок и уровень яркости цвета

    [​IMG]
    Для того, чтобы видеть сцену с полноценным просчётом материалов и света, нудно включить режим Rendered (для того чтобы нормально двигать и редактировать объекты нужно будет вернуться обратно в режим Solid)

    Щелкая по параметру Surface можно выбрать другой шейдер, вместо Diffuse BSDF. К часто используемым относятся, например, Emission (материал излучает свет), Glass BSDF (стеклянные и прозрачные поверхности) и Glossy BSDF (глянцевые - бликующие и зеркальные поверхности).

    [​IMG]

    Также имеется комплексный шейдер, в котором собрано сразу очень много параметров (блики, свет, подповерхностное рассеивание и так далее) - Principled BSDF (основной шейдер в более поздних версиях Blender, где появился рендер Eevee). По умолчанию его материал выглядит как Diffuse с небольшой примесью Glossy.

    Из прочих шейдеров можно отметить Anisotropic BSDF (такой же зеркально-бликующий как и Glossy, но с возможностью сильнее искажать отражение), Transparent BSDF (регулирующий степень прозрачности объекта) Subsurface Scattering (придающий поверхности более восковой или органический вид) и Velvet (создающий вычурный эффект бархатистой ткани).

    Для того, чтобы более разнообразно управлять шейдерами материала и комбинировать из них что-то посложнее - открываем специальный Node Editor. Проще всего использовать для этого нижнее окно, где по умолчанию открыта временная линия (Timeline).

    [​IMG]
    Меняем нижнее окно на редактор узлов

    Открыв в нижнем окне Node Editor мы увидим материал текущего объекта в более развёрнутом состоянии - в виде связанных узлов. Например, для Diffuse там отобразится шейдер Diffuse, соединённый с узлом Material Output. Кстати, узлы могут появиться слишком мелкими и для увеличения изображения в этом окне пользуемся всё теми же кнопками, что и обычно (колесико мышки или Numpad + и Numpad -).

    Принцип здесь такой, что цепочку узлов можно усложнять, но в итоге она приходит в финальный узел Material Output (чаще всего на основной его канал Surface), чтобы наконец отобразиться на объекте. Если же к Material Output ничего не присоединено, то объект просто будет отрисован совершенно чёрным.

    [​IMG]
    Щелкаем на самый левый значок в нижней панели окна и выбираем Node Editor

    [​IMG]
    Теперь нижнее окно показывает редактор узлов и в самом низу выводится панель с его инструментами. Теперь мы видим узлы материала более наглядно - узел Diffuse подключен к выводящему узлу Material Output

    [​IMG]
    Щёлкнем на параметр Color узла Diffuse, чтобы поменять его цвет

    [​IMG]
    Если разорвать соединение узлов, то Materail Output не получает информации и выводит в качестве материала черноту

    Добавление новых узлов и шейдеров

    [​IMG]
    Изменим стандартный Diffuse материал в окне Node Editor. Добавим туда светящийся шейдер: Add - Shader - Emission

    [​IMG]
    Узел появился в окне, но пока к выводу подключен старый шейдер Diffuse

    [​IMG]
    Подключаем вместо него новый шейдер

    [​IMG]
    У шейдера Emission можно регулировать силу света в параметре на самом узле или сбоку, на вкладке Material (пока в материале не слишком много узлов, тогда сбоку найти нужный параметр проблематично). Например, сейчас сила света установлена в 20, вместо 1.

    [​IMG]
    Цвет узла также можно выставлять как на нём, так и в окне сбоку
    Стоит освоить один из ключевых приёмов - смешивание шейдеров. Новые шейдеры добавляются через пункт Add на нижней панельке окошка Node Editor (Add - Shader - выбрать нужный из списка). Далее, чтобы смешать два шейдера вместе нужно добавить особый узел, Mix Shader, и затем присоединить их выходы к нему (находится в том же списке Add - Shader). По умолчанию смешивание двух компонентов происходит в пропорции 1 к 1, но двигая ползунок можно регулировать степень влияния каждого компонента.

    [​IMG]
    Смешение двух диффузных шейдеров (белого и красного). Образец результирующего материала всегда можно видеть справа (не только на сцене), если раскрыть графу Preview

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

    Смешивание шейдеров

    [​IMG]
    В Node Editor открыт стандартный Diffuse материал. Добавим сюда шейдер смешивания Add - Shader - Mix Shader

    [​IMG]
    Теперь добавим шейдер стекла Add - Shader - Glass BSDF

    [​IMG]
    Разместим Diffuse и Glass левее Mix Shader

    [​IMG]
    Теперь подключим выходы BSDF к двум входам Shader у Mix Shader, а его собственный выход к параметру Surface у финального правого узла

    [​IMG]
    Изменим цвет Diffuse, чтобы нагляднее заметить смешивание

    [​IMG]
    Переведём ползунок у параметра Fac в крайнее левое положение. Теперь в материале преобладает Diffuse

    [​IMG]
    Передвинем ползунок в крайнее правое положение. Теперь материал стал полностью стеклянным.

    Если хочется более интересного смешения, можно подключать к MixFactor, например, текстуры. Для простоты, в узлах NodeEditor уже содержится несколько предустановленных текстур, например, процедурные Musgrave Texture, Voronoi Texture и Wave Texture для достаточно наглядных хаотических либо упорядоченных узоров. Если подключить такую текстуру к параметру Color узла Diffuse, то можно увидеть, что объект заполнен тёмными и светлыми областями. Если же эта текстура подключена к параметру Fac узла Mix Shader, то в тёмных областях будет преобладать один из компонентов смешивания, а в белых другой.

    Кстати, параметр каждого узла справа может быть подключен в разное количество мест одновременно. Например, текстура через параметр Color может быть подключена сразу и к цветам нескольких узлов, или, например, в то же время и к параметру Fac.

    Ещё один полезный вариант - использовать в качестве фактора смешивания узел Freshnel (формула для упрощённого расчёта эффекта Френеля). При таком смешивании на тех частях объекта, на которые мы смотрим под углом, будет более выражен один из компонентов, а на тех, куда мы смотрим более прямо - другой компонент Наиболее частое использование - более реалистично выглядящая поверхность воды или стекла, когда по Френелю смешиваются шейдеры Glass (прозрачность при прямом взгляде) и Glossy (зеркальность и непрозрачность при взгляде под углом).

    [​IMG]
    Френель в качестве фактора смешивания


    Если материал должен просто накладывать на объект произвольное изображение, тогда нужно добавить узел ImageTexture, в котором есть диалог загрузки пользовательского изображения. Далее присоединить его к параметру Color, того же стандартного узла Diffuse (или Principled). Пока изображение не выбрано материал будет фиолетового цвета. Когда мы укажем текстуру, то... скорее всего изображение всё ещё не будет наложено на объект. Происходит это по причине того, что у материала в данном случае нет информации о том, как следует разместить текстуру по поверхности объекта.

    Добавление текстуры к шейдеру

    [​IMG]
    Узел Image Texture добавлен, но не выбрано изображение. Чтобы его подключить нужно нажать на кнопку Open и указать файл с картинкой в появившемся диалоге

    [​IMG]
    Теперь изображение указано, но по прежнему ничего не видно, так как нет развёртки

    [​IMG]
    Если добавить авторазвёртку (появилась строчка справа в UV Maps), то станет видно как накладывается изображение

    Для того, чтобы изображение наложилось хотя бы как-нибудь, при отсутствии нормальной развёртки, можно воспользоваться парой простых методов: создать автоматическую текстурную развёртку для объекта или добавить в материал ещё один узел, который будет задавать принципы проецирования текстуры на объект.

    В первом способе нужно просто зайти на вкладку Data текущего выделенного объекта и нажать на плюсик слева в окошке графы UVMaps. После чего сгенерируется автоматическая развёртка и в это окошко добавится строчка UVMap (предустановленное имя для каждой новой авторазвёртки ). Теперь на объекте появится изображение, хотя и будет наложено, скорее всего, с различными растяжками и прочими дефектами.

    Упрощённое добавление авторазвёртки:
    [​IMG]
    Выделяем нужный объект, и на панели Properties находим вкладку Data. Нажимаем плюсик в графе UV Map. Если после этого объект будет как-то редактироваться, то желательно после редактирования удалить ему старую авторазвёртку и добавить новую.

    Узел Texture Coordinate

    Другой способ - добавим узел Texture Coordinate и подключим исходящий параметр Generated к входящему параметру Vector, на левой стороне узла Image Texture. После чего переключим метод проецирования с плоского (Flat) на объёмный - нужно нажать на третью кнопку в узле Image Texture (Flat) и выставить там другой вариант (Box либо Sphere).

    [​IMG]
    Добавим Texture Coordinate, выбрав его в меню Add - Input

    [​IMG]
    Подключим выход Generate ко входу Vector нашей текстуры - теперь появилось изображение

    [​IMG]
    Изменим способ проецирования Flat на Box...

    [​IMG]
    вот что получилось

    [​IMG]
    Попробуем другой метод, Sphere - теперь результат стал получше

    Узел Mapping

    Что в первом, что во втором случае пригодится узел Mapping для изменения размера. Этот и прочие преобразующие/конвертирующие узлы следует подключать в правильные места, например, Mapping подключенный между Texture Coordinate и Image Texture будет вмешиваться в передаваемый вектор (в том числе регулировать размер текстуры), а если его поместить уже после Image Texture к линии Color, то он будет регулировать уже цвет (а не размер, поворот и смещение текстуры).

    [​IMG]
    Добавляется через Add - Vector

    [​IMG]
    Поначалу ничего не меняется, но зато теперь можно управлять параметрами размера смещения и поворота

    [​IMG]
    Например, здесь было добавлено вращение по Y на -150 и размеры уменьшены с 1 до 0,1. Если переключаться по верхним кнопкам узла (Texture, Point, Vector, Normal), то при одних и тех же прочих выставленных значениях изображение будет накладываться несколько иным образом.

    [​IMG]
    А вот что получилось бы, если передвинуть узел Mapping так, чтобы он следовал уже после Image Texture, вмешиваясь в её цвет. В данном случае установлен поворот на 90 по Z.

    Эффект псевдорельефа

    Для придания материалу эффекта микрорельефа любые текстуры можно подключать к параметру Displacement финального узла Material Output.

    [​IMG]
    Имеем зелёный Diffuse материал

    [​IMG]
    Добавляем, например, Voronoi Texture

    [​IMG]
    И подключаем её ко входу Displacement

    Пара слов про покраску моделей вручную

    Для того чтобы красить по модели, нужно добавить ей развёртку и создать материал с текстурой (как описано выше в "Добавлении текстуры к шейдеру"). Скорее всего нам нужно пустое изображение для покраски - Blender может сам его создать, для этого переключим нижнее окно где открыт Node Editor на UV/Image Editor. Здесь нужно кликнуть на кнопке + New внизу (или по кнопке с + если какие-то текстуры уже есть и выбраны сейчас) и сохранить текстуру под любым именем. Теперь эта текстура будет доступна для выбора внутри текстурных узлов в материале.

    [​IMG]

    Теперь можно выделить модель и в отображающем её окне нажать на надпись внизу - Object Mode - где выбрать другой режим: Texture Paint. Если развёртка и материал не назначены, и в материале отсутствует текстура - Blender напишет предупреждение. Если же требования выполнены - курсор мыши станет рисовать по модели, при зажатии кнопки. А слева в окошках появятся настройки рисования - тип кисти, цвета, сила мазка, величина рисующей области, степень прозрачности, режим рисования и так далее.

    Изменения на модели видны в реальном времени в редакторе во всех режимах отображения, кроме Rendered. Чтобы увидеть изменения на Rendered (и на итоговых рендерах сцены) надо вернуться в окошко UV/Image Editor, найти текстуру по которой мы рисуем и сохранить её (выбрав слева внизу опцию Image и далее Save as Image или Save Image).

    Можно красить не только по самой модели, но и по изображению, открытому в UV/Image Editor. Для этого надо щелкнуть внизу этого окна на строчке View и выбрать там другой режим - Paint. Тогда можно будет рисовать по самому изображению тоже. При этом будут видны островки развёртки, полупрозрачно наложенные поверх текстуры.

    [​IMG]

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

Последние отзывы

  1. GreenEyesMan
    "Спасибо."
    5/5, 5 из 5, оставлен 29 дек 2025
    Все очеьн интересно и вполне понятно.
    thenonsense нравится это.
    1. thenonsense
      На здоровье :)

Комментарии

  1. thenonsense
    Про рендер картинки всё-таки уже потом, отдельно, чтобы не перегружать статью.
  2. Kseraks
    Хорошо! Довольно сюррно этот костяной мотоцикл и наездник выглядят.
      thenonsense нравится это.
    1. thenonsense
      Bonepunk :)
      Да это давний рендер уже (кстати, там мотоцикл по задумке полу-антигравитационный и работает на такой особенности - колесо всего одно и когда есть контакт с землёй, то прочая конструкция ничего не весит ), но хорошо иллюстрирует то, что речь про разные материалы.
    2. Kokka
      Лично мне вообще не понятно, каким образом он поворачивает, этот мотоцикл? Особенно учитывая, что он ничего не весит и ничем задней частью на поверхность не упирается.
    3. thenonsense
      Такая технология - полу-антигравитация - колесо притягивается к поверхности тела с гигантской массой, при этом его положение в пространстве поляризовано, а меняя силу поляризирующих компонентов колесу можно придавать вращение в ту или иную сторону, за счёт чего осуществляются повороты. Сопряжение колеса с супер-массой (собственно, вся планета, по которой колесо едет) компенсирует гравитационное воздействие этой огромной массы на прочую конструкцию, то есть по сути весом обладает только само колесо. Причём этот "вес" специфический - колесо не заваливается ни в какие стороны, притягиваясь строго вдоль своей вертикальной оси - по нормали к земной поверхности, и прочая конструкция вслед за ним тоже сохраняет горизонтальное положение в пространстве.
  3. GreenEyesMan
    Хм...
    Сразу несколько вопросов:
    1. Где взять дополнительные кисти для рисование по текстуре? И как подключить их?
    2. Можно ли, как в Сабстенсе рисовать одним материалом по поверхности другого, создавая комбинированные текстуры из различных шейдеров?
    3. Как нормально сделать свою собственную базу с материалами? У меня сохранено куча различнвх нодовых инструкций, но каждый раз нужно все эти ноды настраивать. Очень неудобно и тратит уйму времени. Вот бы был бы доступный плагин для создания собственной офлайн базы материалов. Да еще что бы, не рушился каждый раз при обновлении Блендера.
    4. Как лучше всего сохранять готовые текстуры в Блендере? Там тоже какой-то мутороый полцесс был, когда я последний раз пытался в трехмерку.
      thenonsense нравится это.
    1. Просмотреть предыдущие ответы...
    2. thenonsense
      Что приведёт нас к ситуации, когда какой-нибудь игродел будущего "вайб-проектирует" игру и ему надо подвинуть камень на локации на метр правее, а натравливание на задачу всех возможных нейросеток днями напролёт - проблему не решает. В итоге будет сидеть вникать в азы, таки потратив наконец-то время на нормальное обучение, пока в голове не сформируется представление, как это всё вообще в игре устроено и что где надо запускать, чтобы проделать это всё вручную.
      Попутно он увидит, что нейросети городили свою реализацию совершенно неоптимизированно, набрасывая всё как попало в общий котёл - мол "железо и так как-нибудь схавает".
      Нейросети - просто инструмент, завязанный на статистике и вероятностях. Чтобы её использовать эффективно, оценить результат её работы и правильно применить его - так и так человеку требуется некоторый уровень компетенции в вопросе.
      GreenEyesMan нравится это.
    3. id0
    4. id0
      >>>Попутно он увидит, что нейросети городили свою реализацию совершенно неоптимизированно, набрасывая всё как попало в общий котёл - мол "железо и так как-нибудь схавает".

      Для этого даже нейросети не нужны, современные "геймдизайнеры" так и делают безо всяких нейросетей, а потом все удивляются, почему всё так тормозит, хотя выглядит как говно.
      GreenEyesMan нравится это.
Чтобы оставить комментарий просто зарегистрируйтесь и станьте участником!
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление