A re-implementation of VisionSpace with Rust and Bevy
Find a file
2023-04-12 09:18:22 +02:00
.vscode some notes on the progress of PixSpace 2022-07-18 12:20:02 +02:00
src migrate to bevy 0.10.1 2023-04-12 09:18:22 +02:00
.gitignore WiP 2022-11-17 23:19:03 +01:00
Cargo.lock migrate to bevy 0.10.1 2023-04-12 09:18:22 +02:00
Cargo.toml migrate to bevy 0.10.1 2023-04-12 09:18:22 +02:00
LICENSE.md minor update 2022-12-06 15:44:16 +01:00
README.md push broken system to let people eyeball the thread stuff 2023-01-16 19:21:28 +01:00

PixSpace

A model viewer for projective Virtual Reality (VR).

PixSpace is a successor to the VisionSpace software, based on OpenSceneGraph, maintained at the HITLabNZ and the VisionSpaceNG, based on Unity at the Graphics and Interaction Lab.

PixSpace deals / plans to deal with:

  • getting tracking data (position and orientation) from a VRPN server (OptiTrack or other)
  • render composited stereo views allowing for non-linear distortions and overlapping screens
  • loading 3D scene files (whatever bevy supports, ideally with asset reload on change)
  • providing a simple way to extend the system with interactions and custom VR devices
  • allow for RPC access to control scenes and settings

TODO

  • custom projection matrices
  • [~] build a system that updates a cameras frustum (w/ offaxis)
  • [~] VRPN (https://github.com/seichter/vrpn-rs) - sync_client.rs seems to do what we need - issue it is Rust 2018
  • multiple cameras
  • render to texture

Contributions / Notes

Though, I am mostly writing this software on my own, I often ask for help and fortunately FOSS people will be happy to help

@bevy@mastodon.social suggested the following three examples

https://github.com/bevyengine/bevy/blob/main/examples/3d/two_passes.rs https://github.com/bevyengine/bevy/blob/main/examples/3d/split_screen.rs https://github.com/bevyengine/bevy/blob/main/examples/3d/render_to_texture.rs

And ria8651 on bevy #rendering Discord channel explained pointed me towards reversed Z frustum

further

https://thxforthefish.com/posts/reverse_z/ https://vincent-p.github.io/posts/vulkan_perspective_matrix/