Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Processing:Примеры/Визуализация шума в 3D

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


Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

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


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


Описание[1]

Этот скетч-пример создает простую анимированную текстуру при помощи 3D-шума. Третий параметр (ось Z) отвечает за время.

Пример

  1. float increment = 0.01;
  2. // третий аргумент функции noise() – это глобальная переменная,
  3. // значение которой увеличивается с каждым циклом:
  4. float zoff = 0.0;  
  5. // инкрементирование значения «zoff» будет осуществляться не так,
  6. // как инкрементирование значений «xoff» и «yoff»:
  7. float zincrement = 0.02;
  8.  
  9. void setup() {
  10.   size(640, 360);
  11.   frameRate(30);
  12. }
  13.  
  14. void draw() {
  15.  
  16.   // здесь настраивается детализация шума (опционально):
  17.   // noiseDetail(8,0.65f);
  18.  
  19.   loadPixels();
  20.  
  21.   float xoff = 0.0; // инициализируем «xoff» со значением «0»:
  22.  
  23.   // рассчитываем значение шума и генерируем яркость
  24.   // для каждой координаты x,y в 2D-пространстве:
  25.   for (int x = 0; x < width; x++) {
  26.     xoff += increment;   // инкрементируем «xoff»
  27.     float yoff = 0.0;    // начинаем с «0» значение «yoff»
  28.                          // для каждого значения «xoff»
  29.  
  30.     for (int y = 0; y < height; y++) {
  31.       yoff += increment; // инкрементируем «yoff»
  32.      
  33.       // рассчитываем значение шума и масштабируем его к «255»:
  34.       float bright = noise(xoff,yoff,zoff)*255;
  35.  
  36.       // в качестве альтернативы попробуйте эту строчку:
  37.       //float bright = random(0,255);
  38.      
  39.       // задаем монохромный цвет для каждого пикселя на экране:
  40.       pixels[x+y*width] = color(bright,bright,bright);
  41.     }
  42.   }
  43.   updatePixels();
  44.  
  45.   zoff += zincrement; // инкрементируем «zoff»
  46.  
  47.  
  48. }

См.также

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

  1. processing.org - Noise3D