Files
vr-poser/README.md

72 lines
1.9 KiB
Markdown
Raw Normal View History

2026-03-15 22:03:30 -04:00
# 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
```bash
# 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
```bash
./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
- [x] 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)