Processing:Справочник языка Processing/noiseDetail()

Материал из Онлайн справочника
Перейти к: навигация, поиск

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


noiseDetail() [1]

Обозначение

noiseDetail()

Описание

Регулирует качество и уровень детализации, создаваемый функцией шума Перлина. Подобно гармоникам в физике, шум вычисляется на несколько октав. Более низкие октавы вносят больший вклад в выходной сигнал и как таковые определяют интенсивность шума, тогда как более высокие октавы создают мельчайшие детали в последовательности шума.

По умолчанию шум вычисляется на 4 октавы, причем каждая октава составляет ровно половину своего предшественника, начиная с 50% для первой октавы. Эта сумма спада может быть изменена путем добавления дополнительного параметра функции. Например, коэффициент спада 0,75 означает, что каждая октава теперь будет иметь 75%-ное воздействие (на 25% меньше) предыдущей более низкой октавы. В то время как любое число между 0.0 и 1.0 является допустимым, обратите внимание, что значения, превышающие 0,5, могут привести к тому, что noise() вернет значения, превышающие 1,0.

Изменяя эти параметры, сигнал, создаваемый функцией noise(), может быть адаптирован для удовлетворения особых потребностей и характеристик.

Синтаксис

noiseDetail(lod)
noiseDetail(lod, falloff)

Параметры

lod     - тип int: количество октав, используемых шумом
lod     - тип int: количество октав, используемых шумом
falloff - тип float: коэффициент спада для каждой октавы

Возвращаемое значение

void

Пример

  1.        
  2. float noiseVal;
  3. float noiseScale=0.02;
  4.  
  5. void draw() {
  6.   for (int y = 0; y < height; y++) {
  7.     for (int x = 0; x < width/2; x++) {
  8.       noiseDetail(3,0.5);
  9.       noiseVal = noise((mouseX+x) * noiseScale, (mouseY+y) * noiseScale);
  10.       stroke(noiseVal*255);
  11.       point(x,y);
  12.       noiseDetail(8,0.65);
  13.       noiseVal = noise((mouseX + x + width/2) * noiseScale,
  14.                        (mouseY + y) * noiseScale);
  15.       stroke(noiseVal * 255);
  16.       point(x + width/2, y);
  17.     }
  18.   }
  19. }

См.также

Внешние ссылки

  1. processing.org - noiseDetail()