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

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


Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Cat poo.png Черновик


Описание[1]

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

Пример

float increment = 0.01;
// третий аргумент функции noise() – это глобальная переменная,
// значение которой увеличивается с каждым циклом:
float zoff = 0.0;  
// инкрементирование значения «zoff» будет осуществляться не так,
// как инкрементирование значений «xoff» и «yoff»:
float zincrement = 0.02; 

void setup() {
  size(640, 360);
  frameRate(30);
}

void draw() {
  
  // здесь настраивается детализация шума (опционально):
  // noiseDetail(8,0.65f);
  
  loadPixels();

  float xoff = 0.0; // инициализируем «xoff» со значением «0»:
  
  // рассчитываем значение шума и генерируем яркость
  // для каждой координаты x,y в 2D-пространстве:
  for (int x = 0; x < width; x++) {
    xoff += increment;   // инкрементируем «xoff»
    float yoff = 0.0;    // начинаем с «0» значение «yoff»
                         // для каждого значения «xoff»

    for (int y = 0; y < height; y++) {
      yoff += increment; // инкрементируем «yoff»
      
      // рассчитываем значение шума и масштабируем его к «255»: 
      float bright = noise(xoff,yoff,zoff)*255;

      // в качестве альтернативы попробуйте эту строчку:
      //float bright = random(0,255);
      
      // задаем монохромный цвет для каждого пикселя на экране:
      pixels[x+y*width] = color(bright,bright,bright); 
    }
  }
  updatePixels();
  
  zoff += zincrement; // инкрементируем «zoff»
  
  
}

См.также

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