Шум Перлина
Perlin noise (Шум Перлина, также иногда Классический шум Перлина) — математический алгоритм по генерированию процедурной текстуры псевдо-случайным методом. Используется в компьютерной графике для увеличения реализма или графической сложности поверхности геометрических объектов. Также может использоваться для генерации эффектов дыма, тумана и т. д.
Шум Перлина — это градиентный шум, состоящий из набора псевдослучайных единичных векторов (направлений градиента), расположенных в определенных точках пространства и интерполированных функцией сглаживания между этими точками. Для генерации шума Перлина в одномерном пространстве необходимо для каждой точки этого пространства вычислить значение шумовой функции, используя направление градиента (или наклон) в указанной точке.
Функция «Perlin noise» проводит генерацию текстур методом генерации псевдослучайных чисел, однако все визуальные детали текстуры имеют одинаковый размер. Это свойство делает шум Перлина легко управляемым; множества масштабированных копий шума Перлина могут быть вставлеными в математические выражения для создания самых разнообразных процедурных текстур.
Алгоритм шума Перлина можно масштабировать в одно-, двух- и трёхмерном виде. Более того, в алгоритм можно ввести четвёртое временно́е измерение, позволяя алгоритму динамически изменять текстуры во времени.
Шум Перлина создан Кеном Перлином в 1983 году и впоследствии был назван в честь своего создателя. Перлин создал алгоритм, работая в Mathematical Applications Group, Inc.. В 1997 году Кен Перлин получил награду Academy Award for Technical Achievement от Американской Академии кинематографических искусств и наук за вклад в создание фильма «Трон» (1982).[1]
Шум Перлина широко используется в двухмерной и трёхмерной компьютерной графике для создания таких визуальных эффектов, как дым, облака, туман, огонь и т. д. Он также очень часто используется как простая текстура, покрывающая геометрическую модель. В отличие от растровых текстур, шум Перлина является процедурной текстурой, и поэтому он не занимает память, но, вместе с тем, исполнение алгоритма требует неких вычислительных ресурсов. Использование шума Перлина очень распространено в демосцене, участники которой используют его в демках.
Примечания
- Kerman, Phillip. Macromedia Flash 8 @work: Projects and Techniques to Get the Job Done. Sams Publishing. 2006.
См. также
- Шум Симплекс
- Шум Вейвлет
- Шум Ворлей
Ссылки
- Англоязычные источники
- Ken Perlin. MAKING NOISE (англ.) (недоступная ссылка). noisemachine.com. Дата обращения: 11 декабря 2009. Архивировано 3 марта 2016 года.
- Simon Green. Chapter 26. Implementing Improved Perlin Noise (англ.) (недоступная ссылка). nVidia GPU Gems 2. Дата обращения: 11 декабря 2009. Архивировано 4 октября 2008 года.
- Icigo Quilez. advanced perlin noise (англ.) (недоступная ссылка). iquilezles.org (2008 год). Дата обращения: 11 декабря 2009. Архивировано 6 августа 2010 года.
- Matt Zucker. The Perlin noise math FAQ (англ.) (февраль 2001 года). Дата обращения: 11 декабря 2009. Архивировано 6 июля 2007 года.
- Хьюго Элиас. Perlin Noise (англ.) (недоступная ссылка). freespace.virgin.net. Дата обращения: 11 декабря 2009. Архивировано 24 июля 2008 года.
- Русскоязычные источники
- Волошин Дмитрий aka WDW. Реализация процедурных текстур методом Шума Перлина (недоступная ссылка) 2. GameDev.ru (18 января 2004 года). Дата обращения: 11 декабря 2009. Архивировано 29 августа 2007 года. В этой работе представлен шум, в котором в узлах сетки задаются сами значения, а не градиенты. Это не шум Перлина.
- Классический шум Перлина (Perlin noise) и Симплекс шум (Simplex noise) (недоступная ссылка). Wonderville Engine Blog (27 августа 2009 года). Дата обращения: 11 декабря 2009. Архивировано 6 февраля 2013 года.
- Шум Перлина (Perlin noise) (недоступная ссылка). Wonderville Engine Blog (23 мая 2009 года). Дата обращения: 11 декабря 2009. Архивировано 31 октября 2011 года.
- shosh. Шум Перлина (недоступная ссылка — история ). Astrocluster (30 сентября 2004 года). Дата обращения: 11 декабря 2009.