remoterenderedvr

Prototype for conducting experiments with remote rendering for VR.

https://github.com/kelkka/remoterenderedvr

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: ieee.org, acm.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.4%) to scientific vocabulary

Keywords

experiment remote rendering science vr
Last synced: 6 months ago · JSON representation

Repository

Prototype for conducting experiments with remote rendering for VR.

Basic Info
  • Host: GitHub
  • Owner: kelkka
  • License: other
  • Language: C++
  • Default Branch: master
  • Homepage:
  • Size: 216 MB
Statistics
  • Stars: 7
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
experiment remote rendering science vr
Created over 5 years ago · Last pushed over 3 years ago
Metadata Files
Readme License Citation

README.md

Remote Rendered VR

This is an experimental prototype remote renderer for VR intended for testing the applicability of remote VR technologies in any network of choice.

I wrote the code for this project on my own with the sole purpose of enabling the testing of hypotheses for various papers during my Ph.D. Therefore, this is not the most beautiful nor well structured code you will come across. I have tried to tidy things up a bit before publishing here, but be aware that this code was not initially intended for anyone else to see.

Requirements

Windows 10
Visual Studio 2015 (Newer might work with some tinkering)
CUDA Toolkit 11.1

Usage

  1. Build the client and server using Visual Studio.
  2. Run Server_release.exe where ever you want and forward the ports if testing across the internet (currently UDP 17112 and TCP 17113).
  3. Set the IP the client should connect to in netConfig_Client.txt (e.g. "string IP 127.0.0.1")
  4. Run the Clientrelease.exe with parameters of interest set in netConfigClient.txt and set server parameters in netConfig_Server.txt (e.g. "double H265 1" enables H265 encoding instead of H264 and so on).
  5. After the test, Client/content/timers1.txt will be created and filled with test data, this file can be viewed for example using Excel, see examples in e.g. Data/LAN.xlsx.

Note that there is no reconnect/restart implemented yet, so a new test requires a restart of both programs. Personally I have just created a batch script that restarts the server on close and run the client manually with various settings depending on the test.

This is the bare minimum to get started, but I will expand this section in the future if there should be some interest in this software.

Publications

This software was developed for and used in the following publications:

Synchronous Remote Rendering for VR, (2021)
https://www.hindawi.com/journals/ijcgt/2021/6676644/

Remapping of Hidden Area Mesh Pixels for Codec Speed-up in Remote VR, (2021)
https://ieeexplore.ieee.org/document/9465408

Bitrate Requirements of Non-Panoramic VR Remote Rendering, (2020)
https://dl.acm.org/doi/10.1145/3394171.3413681

TODO

These are the most obvious limitations I am currently aware of:

MSAA in D3D11 - MSAA is not yet implemented in D3D11, only in OpenGL.
OpenGL World scene - The "World-scene", i.e. cube-map of a mountain-view is only implemented in D3D11 so far, not OpenGL.
D3D11 encoder crash - There is some low level bug in the Nvidia decoder when using D3D11 that can cause random crashes when using D3D11.
D3D11 COM object leaks - Some COM objects are currently leaking in D3D11.
Restarting - Server stops when test is complete and must be restarted manually or e.g. by batch script.
Reconnecting - If the server is not running when the client starts, the connection will fail, so the server must be started first.
Hand controllers - The input data of hand controllers are never sent to the server and rendering of hand controllers is not yet implemented.

Owner

  • Login: kelkka
  • Kind: user

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 12
  • Total Committers: 3
  • Avg Commits per committer: 4.0
  • Development Distribution Score (DDS): 0.417
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Viktor Kelkkanen v****e@b****e 7
David Lindero d****o@e****m 3
kelkka v****n@h****m 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: about 2 years ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels