Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Unity3D: как можно создать volumetric dissolve - эффект?

Unity3D: как можно создать volumetric dissolve - эффект?

AlerrПостоялецwww12 авг. 201813:29#0
Привет всем!
В играх часто встречается dissolve - эффект. Это когда часть обьекта пропадает по заданной маске. Этот обьект хорошо подходит для имитации сгорания бумаги и еще каких-то плоских и очень тонких обьектов.

Мне нужно сделать сделать dissolve эффект для толстого обьекта. Это что-то типа смеси dissolve & god rays.
В итоге анимация должна дублироваться, что ли, и заполнять пустоту между 2-я (стенками) полигонами толстого обьекта.

Вопрос в том как такое можно сделать? Может кому-то попадалось что-то подобное?

foxesПостоялецwww12 авг. 201814:34#1
То есть ты хочешь сделать не просто анимацию альфы, но и заполнить просвечивающее пространство между полигонами. Я думаю тут придется мутить что то воксельное скрещенное с bump. Через bump это сделать можно очень дешево если не делать объект прозрачным, а просто переходить от первого "кожного" слоя текстуры ко второму "обугленному" имея при этом соответственно анимированный bump. Но для полного испепеления придется заморочиться возможно используя адаптированный raymarch или обойтись банальным масштабированием mesh объекта на шейдере, по вершинно съеживая объект в местах сгорания. Во втором случае тут тоже можно обойтись дешевым bump.

Вот тут например это просто альфа.

А вот такая идея реализации пожалуй самая дешевая будет, тут просто плоскостью отсекается объект, а обратная сторона полигонов засвечивается, создавая эффект заполненности. Думаю если понадобиться сжечь объект из какой либо точки попадания то заменить плоскость на сферу не будет проблемой.

Правка: 12 авг. 2018 15:43

seamanПостоялецwww12 авг. 201823:04#2
Сильно зависит от скорости анимации и "заполненности" окружения. В пылу сражения никто не заметит "заполненности просвечивающего пространства между полигонами"...
GLoomУчастникwww12 авг. 201823:22#3
Alerr
Геометрические шейдеры есть в Unity?
AlerrПостоялецwww13 авг. 20180:41#4
GLoom
> Геометрические шейдеры есть в Unity?
Это те, которые позволяют полигоны смещать? Если правильно понял, то есть. Можно смещать вершины.
AlerrПостоялецwww13 авг. 20180:46#5
seaman
> Сильно зависит от скорости анимации и "заполненности" окружения. В пылу сражения никто не заметит "заполненности просвечивающего пространства между полигонами"...
В данном случае это хорошо заметят. Игрок находится в камере и у него перед глазами кирпичная стенка должна разобраться по кирпичикам. Dissolve - это только часть эффекта, там еще намешано смещение вертексов ну и прочие мелкие особенности.
GLoomУчастникwww13 авг. 20180:50#6
Alerr
Не смещать а генерировать новые треугольники.
Но даже если бы был то резать на лету геометрию очень тяжело.

Тебе не подайдёт вариант как в Fortine? Делаешь стенку где кирпичи (по одному или группами) привязываются к костям. И анимируешь кости.

AlerrПостоялецwww13 авг. 201810:32#7
GLoom
> Тебе не подайдёт вариант как в Fortine?
Наверно подойдет, попробую реализовать

/ Форум / Программирование игр / Графика

2001—2018 © GameDev.ru — Разработка игр