c26c33fd4c | ||
---|---|---|
examples | ||
src | ||
.gitignore | ||
CMakeLists.txt | ||
LICENSE | ||
README.md |
README.md
LÖVR
LÖVR is a simple framework for creating virtual reality experiences with Lua. For more information, visit the website.
Getting Started
You can download precompiled binaries from the LÖVR website. The LÖVR documentation provides reference for all functionality as well as a series of tutorials and examples. Here are a few short snippets so you can get an idea of what it looks like to use LÖVR:
Hello World
Create a folder called myProject
. In that folder, create a file called main.lua
with the
following in it:
function lovr.draw()
lovr.graphics.print('Hello World!', 0, 0, -1)
end
Finally, start SteamVR and drag the myProject
folder onto lovr.exe
. Put on your headset and you
should see the hello world text at the front of the play area.
Cube
You can draw a spinning cube using
lovr.graphics.cube
:
function lovr.draw()
lovr.graphics.cube('line', 0, 1, 0, .5, lovr.timer.getTime())
end
Audio
Play an ogg file:
function lovr.load()
local sound = lovr.audio.newSource('darudeSandstorm.ogg')
sound:play()
end
Audio is spatialized using HRTFs, and the virtual audio listener is synchronized with the pose of the HMD.
3D Models
LÖVR supports most 3D model file formats:
function lovr.load()
model = lovr.graphics.newModel('teapot.fbx', 'teapot.png')
end
function lovr.draw()
model:draw()
end
For more examples, check out the examples
folder.
Hardware Support
- HTC Vive (full support via OpenVR)
- Oculus Touch (partial support via OpenVR)
- WebVR (partial support, see
emscripten
branch) - Mobile VR (no support currently)
Documentation
See http://bjornbyt.es/lovr/docs for examples and API reference. The documentation is open source and can be found here.
Compiling
You might want to compile LÖVR from source so you can use LÖVR on other operating systems or create a custom build.
Dependencies
- LuaJIT
- GLFW (3.2+)
- OpenGL (Unix) or GLEW (Windows)
- assimp (for
lovr.model
andlovr.graphics.newModel
) - OpenVR (1.0.5, for
lovr.headset
) - PhysicsFS
- OpenAL (1.17+ recommended for HRTF support)
Windows (CMake)
First, install lovr-deps:
cd lovr
git clone --recursive https://github.com/bjornbytes/lovr-deps deps
Next, use CMake to generate the build files:
mkdir build
cd build
cmake ..
This should output a Visual Studio solution, which can be built using Visual Studio. Or you can just build it with CMake:
cmake --build .
The executable will then exist at /path/to/lovr/build/Debug/lovr.exe
. The recommended way to
create and run a game from this point is:
- Create a shortcut to the
lovr.exe
executable somewhere convenient. - Create a folder for your game:
MySuperAwesomeGame
. - Create a
main.lua
file in the folder and put your code in there. - Drag the
MySuperAwesomeGame
folder onto the shortcut tolovr.exe
.
Unix (CMake)
First, clone OpenVR. For this example, we'll clone
openvr
into the same directory that lovr
was cloned into.
git clone --branch v1.0.5 https://github.com/ValveSoftware/openvr.git
Next, install the other dependencies above using your package manager of choice:
brew install assimp glfw3 luajit physfs
On OSX, you'll need to set the DYLD_LIBRARY_PATH
environment variable to be
/path/to/openvr/lib/osx32
.
Next, build using CMake:
mkdir build
cd build
cmake .. -DOPENVR_DIR=../../openvr
cmake --build .
The lovr
executable should exist in lovr/build
now. You can run a game like this:
./lovr /path/to/myGame
You can also copy or symlink LÖVR into a directory on your PATH
environment variable (e.g.
/usr/local/bin
) and run games from anywhere by just typing lovr
.
License
MIT, see LICENSE
for details.