このページではカメラを設置して、空間の見え方を設定します。
技術的な用語では、透視法射影といいます。
標準のカメラ
標準のカメラはcamera()を使います。
視点と中心点、天地がどの方向か(通常はYが天)、を指定します。
camera(視点X, 視点Y, 視点Z, 中心点X, 中心点Y, 中心点Z, 天地X, 天地Y, 天地Z);

コードは以下の通りになります。いろいろcamera関数の中の値を変えて、試してみましょう。
void setup() {
size(400, 300, P3D);
noFill();
stroke(0);
}
void draw() {
background(255);
pushMatrix();
translate(width/2, height/2, 0); //基準点を画面中央。z軸方向には-100
camera(90.0, -100.0, 300.0, // 視点X, 視点Y, 視点Z
0.0, 0.0, 0.0, // 中心点X, 中心点Y, 中心点Z
0.0, 1.0, 0.0); // 天地X, 天地Y, 天地Z
box(150);
popMatrix();
}
ortho()
パースペクティブ(遠近)がつかない立体になります。

void setup() {
size(400, 300, P3D);
noFill();
stroke(0);
//orthofrustum(左、右、下、上、近い面までの距離、遠い面までの距離);
ortho(0, width, 0, height);
}
void draw() {
background(255);
pushMatrix();
translate(width/2, height/2, 0); //基準点を画面中央。z軸方向には-100
rotateX(radians(-20));
rotateY(radians(-20));
box(150);
popMatrix();
}
frustum()
以下のサンプルのように、パースペクティブが付いた空間になります。

ここでは、frustum()を使います。この関数は、
frustum(左、右、下、上、近い面までの距離、遠い面までの距離)
という形で使います。図解すると以下の通りになります。

OpenGL Programming Guideより引用
http://www.glprogramming.com/red/chapter03.html#name3
void setup() {
size(400, 300, P3D);
noFill();
stroke(0);
float fov = radians(45); //視野角
//perspective(視野角、縦横の比率、近い面までの距離、遠い面までの距離)
perspective(fov, float(width)/float(height), 1.0, 600.0);
}
void draw() {
background(255);
pushMatrix();
translate(width/2, height/2, -100); //基準点を画面中央。z軸方向には-100
rotateX(radians(-20));
box(150);
popMatrix();
}
perspective()
perspective()は、frustum()とほぼ同じ機能と考えていいのですが、視野角(fov)を設定できるのが特徴です。下図ではfovyとなっていますが、processingではfov(x座標の視野角)になります。

OpenGL Programming Guideより引用
http://www.glprogramming.com/red/chapter03.html#name3

void setup() {
size(400, 300, P3D);
noFill();
stroke(0);
float fov = radians(45); //視野角
//perspective(視野角、縦横の比率、近い面までの距離、遠い面までの距離)
perspective(fov, float(width)/float(height), 1.0, 600.0);
}
void draw() {
background(255);
pushMatrix();
translate(width/2, height/2, -100); //基準点を画面中央。z軸方向には-100
rotateX(radians(-20));
box(150);
popMatrix();
}
