Blenderで作成したモデルをp5.jsで読み込む
Blenderで作成したモデルをp5.jsで読み込む方法です。
Blenderでモデリング
今回、モデリングの詳細は省きます。 下の動画を参考に犬をモデリングしてみました。
blenderで犬をつくってみよう01 初期設定・モデリング - YouTube
Blender側でマテリアルの設定などは必要なく、純粋なモデルを作成するまでで良いです。
こちらが完成したモデルです。

Blenderでobjファイルでエクスポート
Blenderで作成したモデルは、p5.jsで読み込めるobjファイルとして保存します。
保存方法はメニューから
ファイル > エクスポート > Wavefront(.obj)
として名前をつけて保存します。
ここでは"dog.obj"として保存しておきます。

p5.jsでobjファイルを読み込む
p5.jsで先程保存したobjファイルを読み込みます。
loadModel()を使用して読み込みますが、画像などの読み込み同様preload()関数でロードします。
読み込んだモデルはmodel()で描画ができます。
このとき、scale()で適切な大きさに合わせる必要があります。
何もしないと、ものすごく小さいオブジェクトとして配置されてしまいます。
また、光源、マテリアルの設定をしないとのっぺりした描画になって、3Dに見えません。 下のサイトなどを参考に設定を行いました。
今回は、
- 環境光
ambientLight() - 点光源
pointLight() - スペキュラ(鏡面)マテリアル
specularMaterial()
を設定することで、3Dの質感を出しています。
点光源で水色の光を読み込んだモデルに当てて描画しました。 Blenderで作成したモデルをきちんと読み込んで、p5.jsで描画することができました。

以下がソースコードです。
function preload() {
dog = loadModel('dog.obj');
}
function setup() {
createCanvas(w, w, WEBGL);
colorMode(HSB);
noStroke();
noLoop();
}
function draw(){
background(0);
ambientLight(10);
pointLight(200, 100, 100, -w/2, -w/2, w);
specularMaterial(100);
translate(125,-50)
rotateX(-PI/8);
rotateY(PI/4);
rotateZ(PI);
scale(75);
model(dog);
}