三次元日誌(hugo)

Oculus来たー

6月10くらいにぽちってから2週間くらいで到着。いいタイミングに発注したらしい

Oculusことはじめ

oculus sdk downloadあたりで検索すると見つかるのでいただいてくる。 特にログインとかアカウントとかは必要ない。 SDKにはlibSDKとそれを使ったサンプルがvcプロジェクトで入っている。

oculusの組み込みには2段階あって、ひとつは両目向けに違うレンダリングをする作業、 2つめはOculusのジャイロセンサの値を受け取ってカメラの方向を対応させる作業となっている。

ひとつめのステレオレンダリングに関しては、左目用と右目用にオフスクリーンレンダリングして それを表示するときにシェーダーで歪ませるというものになる。 歪ませ方は、 RenderTiny_D3D1X_Device.cppOculus_SDK_Overview.pdfに書いてある。 OpenCVとかのカメラ係数に似ているような気もするが同じものかは確認していない。

ふたつめの方は、LibOVRに任せると簡単でusbのHIDデバイスから値を随時取得して カメラ姿勢に適用するだけ。 LibOVRはこのジャイロの値取得とDXUT的な3Dフレームワークが混合しているので ジャイロの方だけを抽出して最小限にしたい。 あと自分のコードに混ぜて公開していいのかライセンス的によくわからん。

とりあえずglut化してみよう

はじめに軽くTinyRoomをglutに移植しようと思ったらdxutみたいのがくっついていて途中で投げ出したw。 手持ちで、OpenGLシェーダーとかオフスクリーンレンダリングを扱うシステムが無いので そこから作るのが少し時間がかかるので後回しに。

IrrlichtのカメラをOculus化

方向転換して、ベースにlibOVRを合体した。 githubのものはoculusのステレオレンダリングは実装済みなのでgyroを合成する件のみ。 Irrlichtのカメラ行列の制御がよくわからぬが一応表示。

あとでICameraSceneNodeを継承して作り直そう。 mikuさんprprな感じになるにはもう少しかかるな・・・