LoginSignup
5
5

More than 5 years have passed since last update.

ProcessingのLight関連設定

Last updated at Posted at 2017-11-29

1. directionalLight(v1,v2,v3,nx,ny,nz):平行光源。

一方向のみを平行に均一に照らす。
・v1,v2,v3:色
・nx,ny,nz: 光の方向のベクトル

例:真下から白い光があたっている。

directionalLight(128,128,128,0,-1,0);

2. ambientLight(v1,v2,v3,x,y,z): 環境光。

反射、散乱された間接光。 他のLightと組み合わせて使う。
・v1,v2,v3: 色
・x,y,z: ?

3. pointLight(v1,v2,v3,x,y,z):点光源。

ある点から全方向に対して均一に照らす。白熱電球などをシミュレート。
・v1,v2,v3:色
・x,y,z: 光源の位置

例:球の左前方に赤い点光源がある。

background(0,0,0);
pointLight(100,10,10,50,200,150);
translate(250,200,0);
noStroke();
fill(255,255,255);
sphere(100);

4. spotLight(v1, v2, v3, x, y, z, nx, ny, nz, angle, concentration):スポットライト。

狭い範囲を均一に照らす。(確実に照らされるよう、パラメータ値の計算が必要)
・v1,v2,v3: 色
・x,y,z: 光源の位置
・nx,ny,nz: 光の方向のベクトル
・angle: スポットライトのコーンアングルの角度
・concentration:コーンの中心バイアスを決定する指数

例:球の左上前方から白いスポットライトを当てる。

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

void draw(){
int concentration = 200; // 1 to 10000 
background(0); 
noStroke(); 
spotLight(255,255,255, 150,100,800, 0.1,0.1,-1, PI/16, concentration); 

translate(250,200,0);
noStroke();
fill(255,255,255);
sphere(100);
}

5. lights():デフォルトの環境光設定。

・ambientLight(128,128,128)
・directionalLight(128,128,128,0,0,1)
・lightFalloff(1,0,0)
・lightSpecular(0,0,0)
が設定される。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5