「instantNeRFで遊ぶ Advent Calendar 2022」の25日目・最終日です。
今日はinstantNeRFのカメラをゲームパッドで操作する方法について検討しました。
業務外の個人的な検討活動です。
警告
環境や入力内容によっては現在使用できている状況が壊れることがあります。
あなたの責任と判断で試してください。私は責任を取りません。
テストデータ
sketchfabのNefertiti statueを使用させていただきました。ありがとうございます。
PCとの接続確認
予めWindowsとゲームパッドの接続を確認しておきました。
imgui_impl_glfw.cpp
testbed.cuを読んでいたら呼び出し先のimgui_impl_glfw.cppにgamepadという単語を見つけました。
imgui.cpp
- ImGuiIO()
Settingsというコメントを見つけたので、試しにゲームパッドが有効になりそうなenumを割り当て直したところ、ゲームパッドの操作が有効になりました。
imgui.h
試しにImGuiNavInputのマッピングを追加してみました。
mapping.h
使うゲームパッドのマッピングがなかったので"glfw mapping"をネットで検索して見つけたMappingを追加しました。
testbed.cu
L3とR3にビューのリセット、LStickとRStickに視点の移動を設定しました。ドローンのコントローラのmode2を真似ました。
testbed.exe
ビルドしなおして実行した様子です。
理屈はよく分かりませんが動きました。
最後に
本当にたくさんの仕組みが仕掛けてあり楽しめました。
もっときれいに再生するための撮影方法や、ネットワークの具体的な実装、複数のネットワークの合成などの編集など、まだまだ検討しきれていないです。
Unityへの実装も興味深いです。
そしてnerfStudioも検討してみたいです。
新年も取り組みたいことが満載です。