nerfstudio-project / viser

Web-based 3D visualization + Python
https://viser.studio/latest
Apache License 2.0
698 stars 42 forks source link

More control keys? #268

Open LaFeuilleMorte opened 3 weeks ago

LaFeuilleMorte commented 3 weeks ago

I write a small client followed overwrite this method: def viewer_render_fn(camera_state: nerfview.CameraState, img_wh: Tuple[int, int]): .... However I can only use WASDQE to move along x,y,z axis, and up down lef right arrow key to rotate along x and z axis. But there's no key for to control camera rotate along Y axis (Yaw angle). By the way, will the viser support more controlling methods like in an FPS game?

brentyi commented 3 weeks ago

Hi, thanks for the issue!

Yeah, this is on our radar. We'd like to improve the camera controls, but it might take some time. @mehdikhfifi has been looking into it and might be able to comment.

If you'd like to maintain a fork in the meantime with your preferred camera controls, here's where the keys are bound: https://github.com/nerfstudio-project/viser/blob/3d30259e29a1b8d4eaa5965dc255d56a20fe2331/src/viser/client/src/CameraControls.tsx#L130-L189

mehdikhfifi commented 2 weeks ago

I write a small client followed overwrite this method: def viewer_render_fn(camera_state: nerfview.CameraState, img_wh: Tuple[int, int]): .... However I can only use WASDQE to move along x,y,z axis, and up down lef right arrow key to rotate along x and z axis. But there's no key for to control camera rotate along Y axis (Yaw angle). By the way, will the viser support more controlling methods like in an FPS game?

I've recently just finished implementing FPS camera controls. Pull from #274 and you should be able to press p(lowercase) and you should be able to switch between orbit controls and first person controls. Let me know if there are any issues.