Giter VIP home page Giter VIP logo

kinecttovr's Introduction

KinectToVR

KinectToVR is an application for emulating Vive trackers in SteamVR for full-body tracking using a Kinect for Xbox 360, Kinect for Xbox One or PlayStation Move controllers and cameras.

This version of the app (0.9) will be the last based on this repo. Development on 1.0 and onward is happening elsewhere, more on that later.

Authors

AutoCalibration scripts are written by コレヂャン
KinectToVR base is Sharky's
Triping organizes the whole project
The installer's property of Himbeer
Rest is probably written by 公彦赤屋先

License

This project is licensed under the GNU GPL v3 License

Build

You'll need:

  • Visual Studio 2019 (with: C++, v142 tools, ATL)
    or just build tools for same (see GitHub Actions script)
  • Kinect SDK 1.8 & 2.0 installed and visible in PATH
  • Working installation of SteamVR for testing

Follow GitHub Actions script, or:

  • Install vcpkg and its Visual Studio integration
    (cd into somewhere you want it to be)
    git clone https://github.com/Microsoft/vcpkg.git
    cd vcpkg
    ./bootstrap-vcpkg.sh
    ./vcpkg integrate install

  • Install needed libraries (You should choose one linking method for all packages)
    vcpkg install opencv3[world]:x64-windows boost:x64-windows glm:x64-windows curlpp:x64-windows cereal:x64-windows sfml:x64-windows glew:x64-windows
    (Now you may rest a bit, also consider using a drive other than C:, it'll be about 6-7GB without cleaned buildtrees)

  • Clone the latest OpenVR, GLM and Eigen3 into external/:
    git clone https://github.com/ValveSoftware/openvr external/openvr
    git clone https://gitlab.com/libeigen/eigen external/eigen git clone https://github.com/g-truc/glm external/glm

  • Fix min/max error in GLM (unresolved with NOMINMAX for now) sed -i '/#include <limits>/c\#include <limits>\n\n#undef min\n#undef max' external/glm/glm/gtx/component_wise.inl

  • Clone the latest K2APP and setup shortcuts to external deps:
    git clone https://github.com/KinectToVR/k2vr-application external/KTVR
    New-Item -ItemType Junction -Path external/KTVR/external/openvr -Target external/openvr
    New-Item -ItemType Junction -Path external/KTVR/external/eigen -Target external/eigen
    New-Item -ItemType Junction -Path external/KTVR/external/glm -Target external/glm

  • Setup GLog
    git clone https://github.com/google/glog.git external/glog
    git reset --hard f8c8e99fdfb998c2ba96cfb470decccf418f0b30
    cd external/glog
    mkdir vcbuild; cd vcbuild
    cmake -DBUILD_SHARED_LIBS=ON ..
    msbuild glog.vcxproj "/p:Configuration=Release;Platform=x64
    WindowsTargetPlatformVersion=10.0"

  • Setup GFlags
    git clone https://github.com/gflags/gflags.git external/gflags
    git reset --hard 827c769e5fc98e0f2a34c47cef953cc6328abced
    cd external/gflags
    mkdir vcbuild; cd vcbuild
    cmake -DBUILD_SHARED_LIBS=ON ..
    msbuild gflags.vcxproj "/p:Configuration=Release;Platform=x64;WindowsTargetPlatformVersion=10.0"

  • Setup SFGUI
    git clone https://github.com/KimihikoAkayasaki/SFGUI external/SFGUI
    cd external/SFGUI
    mkdir build; cd build
    cmake "-DBUILD_SHARED_LIBS=ON [YOUR VCPKG TOOLCHAIN COMMAND HERE]" ..
    msbuild SFGUI.vcxproj "/p:Configuration=Release;Platform=x64;WindowsTargetPlatformVersion=10.0"

  • Build the K2API & K2APP's OpenVR driver:
    msbuild "/t:KinectToVR_API" "/p:Configuration=Release;Platform=x64;WindowsTargetPlatformVersion=10.0"
    msbuild "/t:Driver_KinectToVR" "/p:Configuration=Release;Platform=x64;WindowsTargetPlatformVersion=10.0"

  • Build the K2EX:
    msbuild "/p:Configuration=Release;Platform=x64;WindowsTargetPlatformVersion=10.0"

Deploy

All needed dlls are automatically copied to the output folder.
Please note that everything from vcpkg is being linked dynamically,
so to avoid errors with the driver, if you've added any additional libraries,
build it alone and copy to the desired folder, including all present dlls inside the output folder.
For now, the folder structure is generated and dlls are copied automatically.
You will find the built driver in external/KTVR/x64/$(Configuration)/driver/
and the built K2EX in x64/$(Configuration). (Release configuration should be used, though)

kinecttovr's People

Contributors

artemismax avatar kimihikoakayasaki avatar lukis101 avatar morristhehorris avatar naelstrof avatar sharkyh20 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kinecttovr's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.