ワタタク
今回の記事の目的はProcessingの「spotLight()
関数」を理解し、自分なりに使ってみること。
目次
【Processing】spotLight()関数について
spotLight()関数について
spotLight()
は「スポットライト」という意味- 特定の場所を明るく照らすライトのこと
spotLight()
関数は、Processingで特定の場所を強調して明るくするために使う- 絵の中で特定の部分を目立たせたいときなど
【Processing】spotLight()関数の主な書き方
以下のように書きます。
spotLight(v1, v2, v3, x, y, z, nx, ny, nz, angle, concentration);
- v1, v2, v3: スポットライトの色を決める。
v1
は赤、v2
は緑、v3
は青の成分です。- vはvalue(値)の略
- x, y, z: スポットライトの位置を決める
x
は横の位置、y
は縦の位置、z
は奥行きの位置
- nx, ny, nz: スポットライトが向かう方向を決めます
nx
は横の向き、ny
は縦の向き、nz
は奥行きの向きn
は「normal(法線)」の略- ポットライトが向かう方向を示すベクトルの成分で、それぞれ横方向、縦方向、奥行き方向を表しています。これらの値を使って、スポットライトの向きを設定
- angle: スポットライトの広がり具合を決める。値が大きいほど広がる
- concentration: スポットライトの集中度を決める。値が大きいほど集中する
【Processing】spotLight()関数の使い方【コード】
void setup() {
size(400, 400, P3D); // 3Dモードでキャンバスを設定
noStroke(); // 球体の輪郭線を消す
}
void draw() {
background(0); // 背景を黒に設定
// スポットライトを設定
spotLight(0, 0, 255, 200, 200, 200, 0, 0, -1, PI/4, 50);
// 球体を描く
translate(width/2, height/2, 0); // 球体を画面の中央に移動
sphere(100); // 半径100の球体を描く
}
【Processing】spotLight()関数はどんな表現で使えそうか
球体などの3D表現を、部分的に明るくしたい場合に使う。
【Processing】spotLight()関数を使ってみた感想
他の光を当てる構文よりも、数値と光の当たり方がイメージしやすい。
それでは今日もレッツワクワクコーディング。