VRエンジン作成日記

ひたすらVRエンジンを作っていきます

ローカルサーバでデバッグできる環境を構築

ローカルサーバでデバッグできる環境を構築した。WebサーバはExpressをnpmでインストールした。今までElectronのみで実行確認していたけど、ローカルWebサーバからHTMLを送信する構成にすることで、Firefox等でも実行確認が取れるようになる。なぜ動的なWebコンテンツでもないのにWebサーバを準備するかというと、ローカルファイルのHTMLを直接ブラウザで開くと、クロスドメイン関連の警告が出るケースがありそうだと考えたから。ローカルファイルを直接実行する場合とWebサーバから実行する場合ではブラウザのセキュリティの設定が変わる。Webサーバから実行した方がセキュリティに関連する問題を気にしなくて済むようになる。

NodeMain.tsの中に設定用の変数を作っておいた。この値を変更することでElectronで実行するのかExpressで実行するのか選ぶことができる。

また、昨日gl.deleteBuffer()を実行したあとで警告表示が出る問題を放置していたけど、修正できた。gl.enableVertexAttribArray()、gl.disableVertexAttribArray()のところが昨日の問題を引き起こす原因になっていた。詳しくは次のページで解説されている。

qiita.com

enableVertexAttribArray() で有効にする値はシェーダの切り替え、VBOの切り替えとは関係なく動作するようだ。どのコンテキストが関連しているのか想像しにくいので、はまってしまう人が多そうだ。今のところ速度より安全側に振ってコードを書いているので、後ほどパフォーマンスの改善をしたほうが良さそう。

・関連するコミット

add localhost debug env · hikipuro/tea.js@8028138 · GitHub