Beschreibung |
3D telepresence enables participants at different locations to meet and collaborate in a shared virtual environment using realistic representations of themselves. We presented the first immersive group-to-group telepresence system in 2013. Since then, many fundamental technologies have been continuously improved; in particular, real-time 3D capturing and reconstruction of user representations. Such avatar representations are referred to as 3D video avatars or volumetric avatars in the literature.
Our server infrastructure for creating such volumetric avatars from colour and depth image streams implements state-of-the art 3D reconstruction techniques and supports the latest generation of Kinect colour and depth sensors for 3D capturing. In early 2020 we decided to use Unity as our virtual reality (VR) framework, to move closer to widespread adoption of our vision of social VR and 3D telepresence. In order to create VR applications in Unity, the capabability to stream compact avatar representations from remote locations to Unity clients for rendering is, of course, fundamental.
In this project, we will focus on the design and implementation of a C++ plugin for Unity that receives volumetric avatar streams from our existing capture server and subsequently renders avatars‘ geometry and texture natively in Vulkan. Since the transfer of such rich 3D data over the internet still remains a bottleneck, we will also investigate how to efficiently compress the avatar streams using existing libraries and different data reduction approaches, such as level-of-detail reconstruction, as well as geometry and image compression.
At the beginning of this project, we will study related research and learn to use our existing infrastructure and technologies. On this basis, we will define our requirements, before designing and structuring our tasks to achieve our goal with an efficient implementation.
In case students are not equipped with recent hardware, we are able to provide workstations, head-mounted displays (HMDs), and pre-recorded Kinect streams for students to work with during the project. Meetings, presentations, and general communication will be held online. You will learn about and work on the following topics in your project team:
- Real-time rendering of avatar streams using state-of-the-art features of established graphics APIs with a focus on Vulkan & shader languages (Vulkan GLSL / GLSL)
- Native Render-Plugin Development in Unity
- Distributed multi-user virtual reality applications
- Design and implementation of a low-level rendering plugin for Unity clients that receives avatar streams over the internet from remote 3D reconstruction servers
- Design and implementation of one-to-many communication channels based on an existing network library (ZMQ)
- Compression techniques for geometry and texture streams, e.g. dimensionality reduction through principal component analysis
- Last, but certainly not least: Being a reliable team member in a complex software project
|
Literatur |
- [1] Beck, S., Kunert, A., Kulik, A., Froehlich B. Immersive Group-to-Group Telepresence (Best Paper Award) In IEEE Transactions on Visualization and Computer Graphics, 19(4):616-625, March 2013 (Proceedings of IEEE Virtual Reality 2013, Orlando, Florida).
- [2] Kreskowski, A., Beck, S., Froehlich, B. Output-Sensitive Avatar Representations for Immersive Telepresence In IEEE Transactions on Visualization and Computer Graphics, November 2020. DOI: 10.1109/TVCG.2020.3037360
- [3] Beck, S. Immersive Telepresence Systems and Technologies, PhD thesis, Bauhaus-Universität Weimar, 2019, [OPUS]
- [4] Tang, D., Dou, M., Lincoln, P., Davidson, P., Guo, K., Taylor, J., Fanello, S., Keskin, C., Kowdle, A., Bouaziz, S., Izadi, S., Tagliasacchi, A. Real-time compression and streaming of 4D performances In ACM Transactions on Graphics, December 2018. DOI: https://doi.org/10.1145/3272127.3275096
|
Voraussetzungen |
As well as willingness to work in a team, and enthusiasm for learning about and developing rendering and compression techniques on cutting edge hardware, you should have the following competencies:
• Solid C++ skills, both conceptual and practical • Basic analysis and linear algebra skills • Previous experiences in computer graphics helpful • e.g. having worked with Vulkan, OpenGL or DirectX
If you are in doubt as to whether you fulfil the requirements, or if you have any further questions regarding the project, we are happy to have a discussion with you during the project fair on 6th of April. You can find us in our BigBlueButton room at the fair for the entire time between 5pm and 7pm. |
Leistungsnachweis |
The final assessment of your work will be conducted based on the project contributions of every team member, including:
• Active participation in the project during and in between weekly meetings • Design, implementation and evaluation of a C++ Unity plugin for rendering avatars streamed from 3D reconstruction servers • Intermediate talks • Intermediate and final project presentations • Documentation in form of a short paper
|