arusu0629のブログ

Swift初心者エンジニア

WebGLについて⑬

【前回】 arusu0629.hatenablog.com

複数モデルのレンダリング

複数のモデルをレンダリングする際に新しくVBOを用意する必要はなく、元々使用していたVBOを再利用する

複数のモデルを違う位置にレンダリングするので、操作するのはモデル変換行列。ビュー変換行列とプロジェクション変換行列はどちらのモデルに対しても同じものを適用する

前回までのjavascriptからの変更点を抜粋

  • tmpMatrixにビュー, プロジェクション座標変換行列を掛け合わせたものを保持しておくm.multiply(tmpMatrix, mMatrix, mvpMatrix);
    →どちらのモデルに対しても同じものを使うので再利用する
  • 1つ目のモデル, 2つ目のモデルそれぞれのモデル座標変換行列を用意する
    →1つ目のモデルは(1.5, 0, 0)の位置で2つ目のモデルは反対側の(-1.5, 0, 0)の位置
    ※ この時の注意点として2つ目のモデル座標変換行列を用意するときにm.identity(mMatrix)としている点である。これは初期化処理に当たり、1つ目のモデルのモデル座標変換行列をリセットしている