I LEARN PROBUILDER
Войти Начать курс
6/20

Панели инструментов

Vertex Colors Вершинные цвета

Цвет, который хранится не в текстуре, а прямо в вершинах меша. Он ничего не весит, не требует развёртки и не занимает память под текстуры. Для мобильного VR и VRChat это едва ли не самый недооценённый инструмент ProBuilder.

  • МенюTools ProBuilder Editors Vertex Colors
  • РежимObject, Vertex, Edge, Face — везде
  • Клавишанет

Как это устроено

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

Значит, плотность цвета ограничена плотностью сетки: на кубе из 8 вершин градиента не будет, нужен Subdivide.

Цвет хранится в вершине. Между вершинами видеокарта размазывает его сама.Четыре вершины — четыре цвета — плавный переходМало вершин — нет градиента:Subdivideтеперь есть куда краситьВидно только на шейдере, который читает вершинный цвет.Standard из коробки его игнорирует.В VRChat это бесплатная грязь, подтёки и запекание AO без единой текстуры.

Обязательное условие

Вершинный цвет виден только через шейдер, который его читает. Стандартный Unity Standard его игнорирует — вы покрасите меш и не увидите разницы.

В комплекте ProBuilder идут шейдеры с поддержкой вершинного цвета; в проектах VRChat подойдут многие популярные toon- и standard-шейдеры с галочкой Vertex Color.

Два режима работы

Vertex Color Palette — заливка выделения одним цветом. Быстро и точно.

Vertex Painter — кисть: водите по мешу и подмешиваете цвет с настраиваемым радиусом и силой. Так делают грязь у пола, потемнение в углах, мох на камне.

Разбор внутренних меню

Каждое поле — что задаёт, какие значения принимает и на что влияет.

Vertex Color Palette

Слоты цветов
до 10 цветов
Быстрый набор. Применяются по Alt + Shift + цифра.
Apply
действие
Залить выделение выбранным цветом.
Reset / White
действие
Вернуть белый — то есть «нет окраски». Белый нейтрален для умножения в шейдере.
Палитра-ассет
файл
Набор цветов хранится отдельным ассетом и переключается между проектами.

Vertex Painter

Brush Radius
метры
Радиус кисти в мире. Крупная кисть — общие затемнения, мелкая — детали.
Brush Strength
0–1
Сила подмешивания за один проход.
Brush Falloff
0–1
Мягкость края кисти. 1 — резкое пятно, 0 — плавный ореол.
Color
цвет
Чем красим.

Попробуйте сами

Пять минут в Unity — и инструмент перестанет быть кнопкой с непонятным названием.

  1. Постройте плоскость и примените Subdivide Object два раза — нужна сетка вершин.
  2. Назначьте материал с шейдером, который читает вершинный цвет.
  3. Откройте Vertex Colors, выберите тёмный цвет, выделите нижний ряд вершин и нажмите Apply.
  4. Переключитесь в Vertex Painter и пройдитесь кистью по углам — появилось мягкое затемнение.
  5. Нажмите Reset на всём объекте, чтобы вернуть чистый белый.

Приёмы

  • Ручное «запекание» затенения: тёмный цвет в углах и у пола делает сцену объёмной без единого лайтмапа. Для Quest-миров это чистая победа.
  • Вершинным цветом удобно маркировать зоны для шейдера: например, красный канал — маска мха, зелёный — маска мокрого.
  • Одна текстура + разный вершинный цвет = десяток «разных» материалов при одном draw call.
  • Белый цвет нейтрален: если шейдер умножает текстуру на вершинный цвет, белый ничего не меняет. Поэтому Reset — это всегда безопасно.

Грабли

  • Покрасили — не видно. В 99% случаев виноват шейдер, а не ProBuilder.
  • Мало вершин — нет градиента. Subdivide перед покраской, а не после.
  • Вершинный цвет теряется при экспорте в некоторые форматы. OBJ его не хранит, PLY хранит — учитывайте при Export.
  • Слияние объектов (Merge) сохраняет цвета, но пересечение швов может дать резкий стык, если у соседних вершин разный цвет.

Проверка

Четыре вопроса. Неверный ответ попадёт в банк ошибок и вернётся к вам в разделе «Практика».

1. Почему на кубе не получается плавный градиент?

2. Что нужно, чтобы вершинный цвет стал виден?

3. Что делает Reset в палитре?

4. Зачем нужен параметр Brush Falloff?