2022-01-22 (土)
体調はマシになったけど,起きる気力が無くて夕方まで寝ていた.
* WebRTC + WebXR なリモートデスクトップ環境
Goで書かれたWebRTC Signaling ServerのOpenAyame/ayameとOculus QuestのWebXRで遊ぶ日.
いままで,VNCをWebSocketでプロキシしてJavaScriptでCanvasにレンダリングしてWebGLのテクスチャにコピーするみたいな面倒なことやってたけど,WebRTCだとVideo Textureにそのまま流し込めるし,ホスト側もブラウザでページ開くだけで良くなった.
あと,ChromeのScreen Capture APIはウインドウ単位でのキャプチャができるので,スクリーン全体+個別のウインドウを共有すると,HMDの解像度が足りない問題を軽減できるのも良さそう.Windows側のウインドウがそのままVR環境に出てるのが不思議な感じなのと,マウスカーソルどこあるか混乱するけど…….
Ayameは簡単に起動できて,JavaScriptのAPIにMediaStreamを渡せば動くので,スクリーンを共有したりするのが一瞬で書けて良い.
publicなシグナリングサーバがAyame Laboに用意されているのでサーバ立てなくても試せそう.
ただ,サーバはOSSとして公開されてるけど,mainパッケージに実装されているのでライブラリとしては使いにくい.代わりを探したら,https://github.com/castaneai/ayu を見つけたけど,こっちはRedisにかなり依存しているので他のKVSで動かしにくそう.