(источник: bonnefil.com )
Я хочу, чтобы этот великолепный образец был в моей игре. Пока я разобрался ...
- Нарисуйте одну сторону, затем сделайте это дважды влево и вправо.
- Как мне сделать этот шаблон на одной стороне? хмм ...
- Мне нужна помощь.
Мне нужно некоторое понимание написания шейдеров для этого.
Если вы считаете, что задача не подходит для шейдеров, дайте мне знать, надеюсь, с альтернативным решением!
Однако я не вижу никакого возможного подхода к достижению этого без GPU. (если вы не предлагаете хранить кучу готовых картинок Rorscach Pic)
shaders
post-processing
Синий жук
источник
источник
Ответы:
Чтобы получить этот подлинный чернильный вид, вам лучше всего собрать библиотеку изображений чернильных пятен, полос и капель.
Затем вы можете случайным образом выбрать какое-то количество из них, чтобы расположить и случайно повернуть половину изображения. (С уклоном к краю шва, так что середина теста Роршаха является самой плотной. Вы могли бы использовать систему частиц для этого рассеяния)
Отобразите это в текстуру с режимом обтекания, установленным в зеркало, и теперь у вас есть симметричное чернильное пятно, которое вы можете отображать без каких-либо пользовательских шейдеров.
Вот пример результата, который вы можете получить, делая это следующим образом:
Если вам не нужны эти характерные чернильные формы, вы также можете сделать это с помощью шейдера, который порождает два шаблона шума, прокручивающихся друг за другом. Это приобретает симметричную неправильную форму, которая, если хотите, может непрерывно меняться со временем, но она не будет выглядеть совсем как чернила.
Это метод, который dnk drone.vs.drones предлагает в другом ответе, и он может дать результаты, подобные этому:
Изменить: вот разбивка того, как работает подход на основе шума ...
Сначала мы начнем с небольшого шума. Шум 1 / f , часто называемый турбулентностью, работает довольно хорошо. Вы можете добавить шум текстуры в текстуру, а затем суммировать один или несколько сэмплов из нее, изменяя их смещения / повороты, чтобы варьировать формы, которые вы получаете.
Если мы определим порог напрямую, мы получим изображение, подобное изображенному справа. Формы примерно правильные, но для того, чтобы выглядеть как тест Роршаха, он должен быть плотнее, ближе к середине и тонким к краям.
Мы можем сделать эту работу, добавив градиент сверху (контраст здесь преувеличен для ясности)
Тогда порог это, принимая
(sum - blackLevel) * contrast
(Вот
blackLevel
параметр, который контролирует, насколько пятнистый результат по сравнению с пятнами - более высокие значения означают более чистый черный цвет - иcontrast
контролирует, насколько резкими являются края)Зеркальное отображение этого изображения даст вам пример Роршаха выше.
источник
Вы можете попробовать перлин шум (используя правильный черно-белый градиент), а затем применить правое / левое отражение
источник