トップページに、Processingについて書いた記事を、辞書のように見つけやすくしてみました

【Processing】ambientLight()関数の使い方【3Dで全体的な明るさを設定する】

【Processing】ambientLight()関数の使い方【3Dで全体的な明るさを設定する】
  • URLをコピーしました!
ワタタク

今回の記事の目的はProcessingの「ambientLight()関数」を理解し、自分なりに使ってみること。

記事内のProcessingのバージョンは4.3。

目次

【Processing】ambientLight()関数について

ambientLight()関数について
  • ambientLight()は「環境光」という意味
  • ambientLight()は、3Dシーンで全体的な明るさを設定するための関数。
    • この光は特定の方向から来るのではなく、全体に均等に広がります。

【Processing】ambientLight()関数の書き方【構文】

ambientLight()関数の書き方【構文】
  • ambientLight(Rの数値, Gの数値, Bの数値);
    • RGBカラーモードの場合、それぞれ0~255の数値
    • HSBカラーモードなら、HSBの数値で設定
  • ambientLight(Rの数値, Gの数値, Bの数値, xの光源位置, yの光源の位置, zの光源の位置)
  • noStroke();を書いた方がambientLight(Rの数値, Gの数値, Bの数値);の効果を感じやすい

【Processing】ambientLight()関数の使い方【コード】

ambientLight(Rの数値, Gの数値, Bの数値)でコードを書く

赤い光の当たった球体

void setup() {
  size(400, 400, P3D);
  noStroke();
}

void draw() {
  background(0);
  translate(width/2, height/2, 0);
  ambientLight(255, 0, 0); // 赤色の環境光を設定
  sphere(100); // 球体を描く
}

緑が強めな環境光に赤と青の光を当てる【コードの解説あり】

void setup() {
  size(400, 400, P3D);
  noStroke();
}

void draw() {
  background(30); // ダークグレーの背景
  translate(width/2, height/2, 0);
  ambientLight(50, 250, 50); // 緑が強めな環境光を設定
  directionalLight(255, 0, 0, 1, 0, -1); // 赤い方向光を追加
  directionalLight(0, 0, 255, -1, 0, -1); // 青い方向光を追加
  sphere(100); // 球体を描く
}
  • 9行目 ambientLight(50, 250, 50);
    • 全体に少し赤色と青色が混ざった、とても強い緑色の光を広げることを意味
  • 10行目 directionalLight(255, 0, 0, 1, 0, -1)
    • 赤い方向光を追加するためのもの
      • 255, 0, 0 は光の色を表します
      • 赤色(R=255, G=0, B=0)を設定
    • 1, 0, -1 は光の方向を表す
      • X軸方向に1、Y軸方向に0、Z軸方向に-1の方向から光が来るように設定
  • 11行目 directionalLight(0, 0, 255, -1, 0, -1)
    • 青い方向光を追加するためのもの
      • 0, 0, 255 は光の色を表す
      • 青色(R=0, G=0, B=255)を設定
    • -1, 0, -1 は光の方向を表す
      • X軸方向に-1、Y軸方向に0、Z軸方向に-1の方向から光が来るように設定

【Processing】ambientLight()関数はどんな表現で使えそうか

3Dの表現で、色をコントロールしたいときに使う。

【Processing】ambientLight()関数を使ってみた感想

光の当たる方向のイメージがわきにくい。

何度も作品をつくって光の当たる方向の感覚を掴んでいくかんじか。

ambientLight(Rの数値, Gの数値, Bの数値, xの光源位置, yの光源の位置, zの光源の位置)の構文はx y zをちょっといじってみたけど、変化が分かりづらかったので保留問題とする。

ワタタク

それでは今日もレッツワクワクコーディング。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次