(p5camera).frustum

def setup
  createCanvas(100, 100, WEBGL)
  cam = createCamera
  cam.camera(0, 0, (height/2) / tan(PI/6))
  cam.frustum(-0.1, 0.1, -0.1, 0.1, 0.1, 200)
end

def draw
  background(200)
  orbitControl
  normalMaterial
  rotateY(-0.2)
  rotateX(-0.3)
  push do
    translate(-15, 0, sin(frameCount / 30) * 25)
    box(30)
  end
  push do
    translate(15, 0, sin(frameCount / 30 + PI) * 25)
    box(30)
  end
end

p5.jsリファレンス(参考情報)

[p5.js] (p5.Camera.obj).frustum

概要

カメラに透視投影による視野(視錐台)を設定します。

書式

obj.frustum([left] [, right] [, bottom] [, top] [, near] [, far])

引数

引数名内容備考オプションデフォルト値
left視野(視錐台)の近い平面の左辺の位置-width / 20
right視野(視錐台)の近い平面の右辺の位置width / 20
bottom視野(視錐台)の近い平面の下辺の位置height / 20
top視野(視錐台)の近い平面の上辺の位置-height / 20
near視野(視錐台)の近い平面までの距離0
far視野(視錐台)の遠い平面までの距離max(width, height)

戻値

obj (メソッドを呼び出した p5cameraオブジェクト自身)

備考

・perspectiveメソッドと frustumメソッドはほぼ同じ機能です。
 (指定する引数が異なります)。

・p5.jsのバージョンアップに伴い、以下のようにデフォルト値が変更されています。

引数名内容デフォルト値旧仕様のデフォルト値
left視野(視錐台)の近い平面の左辺の位置-width / 20-width / 2
right視野(視錐台)の近い平面の右辺の位置width / 20width / 2
bottom視野(視錐台)の近い平面の下辺の位置height / 20height / 2
top視野(視錐台)の近い平面の上辺の位置-height / 20-height / 2
near視野(視錐台)の近い平面までの距離0.1 * 8000
far視野(視錐台)の遠い平面までの距離10 * 800max(width, height)

・rbCanvas/p5の v0.5.1までとは 3Dの見え方が若干異なりますので、
 (p5camera).cameraメソッドや (p5camera).perspectiveメソッドの
 デフォルト値変更の情報もあわせて参照して、各パラメータなどを調整してください。

・視野(視錐台)のイメージについては下記のサイトなどを参考にしてください。
  p5.js WebGL入門 5 カメラ
  6. カメラ(processing 3D入門)

関連

frustum
(p5camera).perspective
(p5camera).ortho