LÖVR
一个简单的Lua框架,用于快速构建VR体验。
你可以使用LÖVR轻松创建VR体验,无需复杂的设置或编程经验。这个框架体积小、速度快、开源,并支持多种不同的平台和设备。
特性
- 跨平台 - 在Windows、macOS、Linux和Android上运行。
- 跨设备 - 支持Vive/Index、Oculus Rift/Quest、Windows MR,并有VR模拟器。
- 对初学者友好 - 只需几行Lua代码就能创建简单的VR场景。
- 快速 - 使用C11编写,用LuaJIT脚本,包括优化的单程立体渲染。
- 资产导入 - 支持3D模型(glTF、OBJ)、骨骼动画、HDR纹理、立方体贴图、字体等。
- 空间化音频 - 使用HRTF自动实现音频空间化。
- 向量库 - 高效的一级3D向量、四元数和矩阵支持。
- 3D刚体物理 - 包括4种碰撞体形状、三角网格碰撞体和4种关节类型。
- 计算着色器 - 用于高性能GPU任务,如粒子效果。
入门
使用LÖVR开始创作非常简单。从https://lovr.org/download下载可执行文件,然后编写一个main.lua
脚本并将其拖到可执行文件上。以下是一些可以尝试的示例项目:
你好,世界
function lovr.draw(pass)
pass:text('你好,世界!', 0, 1.7, -3, .5)
end
旋转立方体
function lovr.draw(pass)
pass:cube(0, 1.7, -1, .5, lovr.timer.getTime())
end
手部追踪
function lovr.draw(pass)
for _, hand in ipairs(lovr.headset.getHands()) do
pass:sphere(vec3(lovr.headset.getPosition(hand)), .1)
end
end
3D模型
function lovr.load()
model = lovr.graphics.newModel('model.gltf')
end
function lovr.draw(pass)
pass:draw(model, x, y, z)
end
更多示例可在文档页面找到。
构建
你可以使用CMake从源代码构建LÖVR。以下是使用命令行的步骤:
mkdir build
cd build
cmake ..
cmake --build .
更多信息请参阅编译指南。
资源
- 文档:指南、教程、示例和API文档。
- 常见问题:常见问题解答。
- Matrix:LÖVR社区讨论和支持。
- 每日构建:Windows版每日构建。
- 编译指南:从源代码编译LÖVR的相关信息。
- 贡献:参与开发的指南 💜
- LÖVE:LÖVR深受LÖVE(一个2D游戏框架)的启发。
贡献者
许可证
MIT,详情请参阅LICENSE
文件。