Блокировка чорнила Роршаха (також фотографії тесту психології) шейдер


12

введіть тут опис зображення

введіть тут опис зображення введіть тут опис зображення
(джерело: bonnefil.com )

Я хочу, щоб цей чудовий візерунок був у моїй грі. Поки я зрозумів ...

  1. Намалюйте одну сторону, після чого виведіть її двічі ліворуч та праворуч.
  2. Як зробити цю схему на одній стороні? хм ...
  3. Мені потрібна допомога.

Мені потрібно трохи зрозуміти, як писати шейдер для цього.

Якщо ви вважаєте, що це не відповідає шейдеру, тоді повідомте мене, сподіваюся, з альтернативним рішенням!

Однак я не бачу можливого підходу, щоб досягти цього без gpu. (якщо ви не пропонуєте зберегти купу підготовлених фотографій рожевого малюнка)


Який двигун / мову / рамку ви використовуєте?
акалтар

@akaltar Unity Shaderlab
Blue Bug

Відповіді:


15

Щоб придбати справжній чорнильний вигляд, найкраще зібратись, можливо, зібрати бібліотеку зображень чорнильних плям, прожилок та дриблінгу.

Тоді ви можете випадковим чином вибрати деяку їх кількість, щоб розташуватись і обертатись навмання над половиною зображення. (З ухилом до краю шва, щоб середина тесту Роршаха була найгустішою. ​​Можливо, ви зможете використовувати систему частинок для цього розсіювання)

Візьміть це за текстуру з режимом обгортання, встановленим для дзеркала, і тепер у вас є симетрична чорнильна пляма, яку ви можете відображати без будь-яких спеціальних шейдерів.

Ось приклад того, який результат ви можете зробити так:

Inkblot зібраний з бібліотеки бризок зображень

Якщо ви не переймаєтесь цими чорними фігурами підпису, ви також можете зробити це за допомогою шейдера, який порожує два шаблони шуму, що прокручуються повз один одного. Це набуває симетричну неправильну форму, яку можна з часом змінювати, якщо вам подобається, але це не буде схоже на чорнило.

Це метод, який пропонує dnk drone.vs.drones в іншій відповіді, і він може дати результати, подібні до цього:

Порогове значення від шуму

Редагувати: ось розбиття того, як працює підхід на основі шуму ...

Спочатку ми починаємо з деякого шуму. Шум 1 / ф , який часто називають турбулентністю, працює досить добре. Ви можете вписати шум плитки в текстуру, а потім підбити один чи кілька зразків з неї, змінивши їхні зміщення / обертання, щоб змінити форму, яку ви отримаєте.

Турбулентність Порог

Якщо ми будемо гранично обмежувати це значення, ми отримаємо зображення, подібне до зображення праворуч. Форми приблизно правильні, але щоб виглядати як тест Роршаха, він повинен бути найгустішим біля середини і тонким до країв.

Ми можемо зробити цю роботу, додавши градієнт поверх верху (контраст перебільшений тут для наочності)

Маска для країв Маска додала шуму

Потім порогові значення, взявши (sum - blackLevel) * contrast

(Ось blackLevelпараметр, який керує тим, наскільки чітко виражений і проти розмитий результат - більш високі значення означають більш твердий чорний колір - і contrastконтролює, наскільки гострі краї)

Порог

Дзеркальне відображення цього зображення дасть вам приклад Роршаха вище.


Я намагаюся досягти методами безпілотників. Не могли б ви пояснити, як це робиться? Я використовую традиційну функцію шуму перліна, але моя схожа на скоріше набір випадкових крапок.
Синій Буг

@BlueBug, я додав покрокову розбивку вище.
DMGregory

8

Ви можете спробувати шум перліна (використовуючи належний чорно-білий градієнт), а потім застосувати дзеркальне відображення вправо / вліво

введіть тут опис зображення


Це шум перлин? Це виглядає кардинально відрізняється від традиційного шуму перлин. Нічого собі, що насправді "мутною фарбою" виглядає фатально так само, як у фільмі "Вартові".
Синій Буг

2
Все залежить від функції передачі від значення шуму -> значення пікселя. Схоже, тут досить невеликий рівень вікна, що призводить до різкого контрасту між чорним та білим з невеликою кількістю м'яких країв
MistaGiggles

Так, просто зробіть фільтр високих частот десь навколо сірого, потім видуйте максимуми (тобто помножте на велику кількість і скальпуйте верхню частину на 255 або будь-яке значення максимальної пікселі)
Shayne
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.