ITADN
bjornbytes/lovr · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

LÖVR

一个用于快速构建 VR 体验的简单 Lua 框架。

你可以使用 LÖVR 轻松创建 VR 体验,无需太多设置或编程经验。 该框架小巧、快速、开源,并支持多种不同的平台和设备。

Build Version Matrix Discord

主页 | 文档 | 常见问题

特性

  • 跨平台 - 支持 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