Використання 3D камери в Processing

Працюючи в 3D, ви можете переміщати і вертіти обєкти в просторі або добитися того ж візуального ефекту за допомогою камери У цьому прикладі ми створимо невелику композицію і пограємо з функцією camera ()

Як це робиться

Як звичайно, починаємо з установки вікна OpenGL розміром 640 x 480 пікселів Потім нам буде потрібно оголосити дві речові змінні, x і z і присвоїти їм значиться у функції setup () За допомогою цих змінних і камери ми зробимо анімацію

import processingopengl*

float x float z

void setup()

{

size( 640, 480, OPENGL )

x = 0

z = 0

noStroke()

}

Далі ми створимо невелику тривимірну композицію Це буде поверхня з кубом, лежачим в центрі Я використовував функцію fill () перед кожною вершиною, тому кожен кут пофарбований у свій колір Це, можливо, найпростіший спосіб зробити градієнт в Processing

background( 255 ) lights()

beginShape() fill( 255, 0, 0 )

vertex( 0, height, 0)

fill( 255, 255, 0 )

vertex( 0, height, -1000 ) fill(

0, 255, 0 )

vertex( width, height, -1000 ) fill( 0, 0, 255 )

vertex( width, height, 0 ) endShape(CLOSE)

fill( 255 ) pushMatrix()

translate( width/2, height-50, -500 ) box( 100 )

popMatrix()

Коли ви запустите скетч, ви побачите сцену з ракурсу, встановленого за замовчуванням Далі ми змінимо місце розташування камери так, щоб вона оберталася навколо обєкта, збільшувала і зменшувала його Наберіть цей фрагмент коду після функції lights ()

x = cos( radians( frameCount ) ) * 1000 z = sin( radians( frameCount ) ) * 1000

camera( x, 0, z, width/2, height-50, -500, 0, 1, 0 )

Коли ви запустите скетч, ви побачите сцену з позиції камери, заданої функцією camera () І нехай вас не бентежить анімація Камера переміщається з кожним кадром Обєкти ж не рухаються

Як це працює

У функції camera () може бути до девяти параметрів Використовуйте функцію camera () без параметрів для встановлення камери Processing за замовчуванням Для розміщення камери в іншій точці тривимірного простору вам потрібно ввести девять параметрів Перші три параметри це координати x, y і z Обєктива камери Наступний блок з трьох параметрів це координати x, y і z центру екрана У нашому прикладі камера направлена ​​на куб Останні три параметри знаходяться в діапазоні від -10 до 10 як правило, ми використовуємо -10, 00 або 10 Я вказав тут (0, 1, 0) що є найпоширенішим варіантом Якщо ви поміняєте його на (0, -1, 0), камера буде повертатися на 180 градусів навколо осі Y і ви побачите композицію перевернутою

Поекспериментуйте з цими величинами і подивіться на результати

Додатково

Найчастіше функція camera () складна для розробки та налагодження Для спрощення управнена камерою пропоную спробувати бібліотеку PeasyCam від Джонатана Файнберга Вона доступна за адресою http://mrfeinbergcom/peasycam/ Альтернативний варіант – бібліотека Obsessive Camera Direction (OCD) від Крістіана Лінна Дамкьера скачати її можна тут: http://gdsstudioscom/processing/libraries/ocd/

Джерело: Ян Вантомм, Processing 2: креативне програмування, переклад з англійської Олександри Мішутіної, Published by Packt Publishing Ltd, 2012, BIRMINGHAM – MUMBAI

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*