Войти
ПрограммированиеФорумОбщее

Unity и Раскраска

#0
(Правка: 18:40) 18:39, 12 июня 2020

Всем привет!
Заинтересовала одна механика:

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Собственно, анализируя ее я пришел к выводу:
1. На самом деле ничего не рисуется, а снизу лежит готовое изображение
2. Посередине лежит текстура, что в горошек, и она стирается, открывая изображение снизу
3. Есть еще верхний слой, который закрывает "стираемый" слой и открывается в нужных местах.

Вот тут я что-то призадумался. Как реализован это верхний слой? Это меш с развернутой тескстурой, в котором отключаются сабмеши в нужных местах?

Или это набор спрайтов, которые отключаются по очереди? Тогда как эти спрайты расставлены? В ручную?

В общем, я сильно туплю касательно верхнего слоя и как он сделан. Если кто поделится стоящей идей - буду благодарен. Или возможно я вообще ошибаюсь касательно этой трехслойной системы?

Короче, буду очень благодарен за пинок в правильном направлении.


#1
(Правка: 19:33) 19:13, 12 июня 2020

Increaser
> это набор спрайтов
Да
> расставлены? В ручную?
Ну да, почему нет. Как игру пишем, так код используем, а как 100 слоев расставить, то как раз руки то и нужны именно для этого.. мдя, ну и логика у вас.
В чем проблема, пройтись по картинке, собрать все возможные цвета, распределить их сразу на слои, а затем сохранить. В процессе игры загружать их или по очереди или сразу все и сортировать z-index.
Или отдать эту роль шейдеру.

Есть нижний слой или соли, который уже не меняется. Это то что мы нарисовали до конца.
Есть текущий слой который мы заполняем, то есть шейдер с маской. Рисуем мы именно маску.

Изначально мы разбиваем картинку на слои, затем рисуем в них что угодно (любой вид кисти, штриховки, цвета). Ну а дальше как описал изначально.

#2
21:40, 12 июня 2020

Increaser

А может для начала попробовать написать автору и разузнать или не отвечает?

#3
(Правка: 13 июня 2020, 5:20) 22:35, 12 июня 2020

Increaser
> Это меш с развернутой тескстурой, в котором отключаются сабмеши в нужных
> местах?
как именно здесь сделано - только автору известно. там может быть и адский изврат.

Но самое простое, эффективное и логичное - сделать через шейдер, маску и рисование в текстуру. Если на пальцах - в материале есть набор текстур, одна из которых - т.н. маска, которая сама по себе не выводится как обычная текстура, а используется для хранения для каждой точки какого-то параметра. Именно в маске эта видимая кисть и рисует (render to texture), а шейдер для каждой точки смотрит на состояние маски и в зависимости от стертости этой точки выводит либо эту же точку из другой текстуры, или рисует в этой точке вообще что угодно на усмотрение автора шейдера.

ПрограммированиеФорумОбщее