bjornbytes/lovr · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
LÖVR
一个用于快速构建 VR 体验的简单 Lua 框架。
你可以使用 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 刚体物理 - 包括 7 种碰撞体形状、三角网格碰撞体和 6 种关节类型。
- 计算着色器 - 用于高性能 GPU 任务,例如粒子系统。
快速入门
使用 LÖVR 开始制作内容非常容易。 从 https://lovr.org/downloads 获取可执行文件的副本,
然后编写一个 main.lua 脚本并将其拖放到可执行文件上。 以下是一些可供尝试的示例项目:
你好世界
function lovr.draw(pass)
pass:text('Hello World!', 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 .
有关更多信息,请参阅 编译指南。
测试
测试位于 test/lovr 目录中。
你可以使用以下命令从命令行运行所有 LÖVR 测试:
./build/bin/lovr test
要运行单个模块的测试,请将模块名称作为参数传入 (例如,这将运行 data 模块的测试):
./build/bin/lovr test data
Resources
- 文档: 指南、教程、示例和 API 文档。
- 常见问题: 常见问题解答。
- Matrix: LÖVR 社区,用于讨论和支持。
- 每日构建: Windows 的每日构建版本。
- 编译指南: 关于从源码编译 LÖVR 的信息。
- 贡献: 帮助开发的指南 💜
- LÖVE: LÖVR 深受 LÖVE 启发,LÖVE 是一个 2D 游戏框架。
License
MIT,详见 LICENSE。