e934d436ed21d37a8602ff174696b67a45de1ef5
VR Model Viewer
Interactive 3-D model viewer built with OpenSceneGraph and Assimp.
Designed for inspecting PMX (MikuMikuDance), FBX, OBJ and other model formats.
Dependencies (already installed on Gentoo)
| Library | Gentoo package |
|---|---|
| OpenSceneGraph ≥ 3.6 | dev-games/openscenegraph |
| Assimp ≥ 5.0 | media-libs/assimp |
| CMake ≥ 3.16 | dev-build/cmake |
| GCC / Clang (C++17) | sys-devel/gcc |
Build
# From the project root:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build --parallel $(nproc)
Or inside VSCodium press Ctrl+Shift+B → Configure + Build.
Run
./build/VRModelViewer path/to/model.pmx
# or
./build/VRModelViewer path/to/model.fbx
Controls
| Input | Action |
|---|---|
| LMB drag | Orbit camera |
| MMB drag | Pan |
| Scroll | Zoom (dolly) |
| R | Reset camera to default humanoid view |
| F / Space | Frame whole scene |
| S | Toggle stats overlay (FPS, draw calls) |
| Esc | Quit |
Project structure
vr_model_viewer/
├── CMakeLists.txt
├── include/
│ ├── Application.h # Top-level app / viewer owner
│ ├── ModelLoader.h # Assimp → OSG conversion
│ ├── SceneBuilder.h # Grid, axes, lights helpers
│ └── OrbitManipulator.h # Tweaked orbit camera
├── src/
│ ├── main.cpp
│ ├── Application.cpp
│ ├── ModelLoader.cpp
│ ├── SceneBuilder.cpp
│ └── OrbitManipulator.cpp
└── assets/
└── models/ # drop your .pmx / .fbx files here
Roadmap
- Phase 1 – Basic render pipeline + PMX/FBX loading
- Phase 2 – Model placement & transform gizmos
- Phase 3 – Bone / pose inspector
- Phase 4 – ImGui UI panel
- Phase 5 – VR headset integration (OpenXR)
Description
Languages
C++
96.5%
GLSL
2.5%
CMake
1%