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)
が設定される。