Чому вдвічі дорожче зробити шумову функцію, яку можна викласти плиткою?


13

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

Цей FAQ щодо математики шуму Perlin дає формулу:

Floop(x,y,z)=(tz)F(x,y,z)+zF(x,y,zt)t

зробити функцію шуму петля в напрямку z . Він також згадує , що розширення цього, щоб петлі в 2 -х вимірах буде приймати 4 оцінки F і до петлі в 3 -х вимірах буде приймати 8 оцінок F .FzFF

Я розумію, що це дає безперешкодне з'єднання між плитками, яке є не тільки безперервним, але постійно диференційованим, але я інтуїтивно сподіваюсь, що так буде, якщо функцію шуму просто оцінюють один раз, коли точки сітки зменшуються за модулем необхідного розміру плитки. Якщо функція шуму коли-небудь базується на безпосередньо оточуючих точках сітки (4 для 2D шуму, 8 для 3D-шуму), то, безумовно, лише використання крайніх лівих точок сітки, коли точка для обчислення проходить через правий край плитки, дасть таку ж якість шуму, що і між будь-якими іншими точками сітки?

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

Відповіді:


19

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

Шум Перліна Змішаний шум Перліна

Зліва чути шум Перліна. Праворуч - два екземпляри шуму Перліна, складеного та змішаного зліва направо.

Різниця є дещо тонкою, але ви можете бачити, що друге зображення має нижчий контраст у вертикальній колонці, що йде по середині. Ось де це 50% суміш між двома різними екземплярами функції шуму. Така суміш не схожа на оригінальну шумову функцію: вона просто схожа на каламутний безлад.

ОК, так що це не зовсім , що погано , просто дивлячись на сирої шум ... але якщо ви після цього робити якісь - або нелінійні перетворення на зображення, контраст неоднорідний може викликати проблеми. Наприклад, ось такі зображення, порогове значення яких становить 60%. (Наприклад, подумайте про створення островів в океані.)

Поріг шуму Перліна Поріг змішав шум Перліна

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

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

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


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