#xr #vr #ar #default #mobile-devices #render-pipeline

stereokit

在XR的StereoKitC库的绑定之上的高级包装

34个版本 (13个破坏性版本)

0.16.9 2023年6月20日
0.16.7 2023年4月30日
0.15.2 2023年3月2日
0.9.0 2022年11月21日
0.1.0 2022年7月16日

#89 in 图形API


用于 stereokit-locomotion

MIT 许可证

240KB
5.5K SLoC

立体套件

StereoKit-rs 是对StereoKit的底层绑定

https://StereoKit.net

StereoKit 是一个易于使用的混合现实引擎,旨在创建VR、AR和XR体验

Alt Link Alt Link

特性

  • 平台:HoloLens 2、Oculus Quest、Windows Mixed Reality、Oculus Desktop、SteamVR、Varjo、Monado(Linux)以及最终任何支持OpenXR的地方!
  • 混合现实输入(如手和眼)非常容易访问
  • 简单而强大的UI和交互
  • 模型格式:.gltf、.glb、.obj、.stl、ASCII .ply
  • 纹理格式:.jpg、.png、.tga、.bmp、.psd、.gif、.hdr、.pic、.qoi、立方体贴图
  • 灵活的着色器/材质系统,内置PBR
  • 默认性能实例渲染管线
  • 骨骼/皮肤动画
  • 平面屏幕MR模拟器,支持输入仿真,易于开发
  • 几秒钟内构建应用程序到设备,而不是几分钟
  • 运行时资产加载和跨平台文件选择
  • 物理

关于

立体套件优先考虑混合现实应用程序开发,这使我们能够专注于一流混合现实输入系统、默认情况下即使在移动设备上也能快速执行、在设备上快速迭代以及允许用户和开发者从文件系统加载真实资产运行时资产管道等特性。所有这些和更多都封装在一个简洁、文档良好、易于学习和编写的API中。

立体套件可立即使用,但仍处于早期阶段!关注Twitter以获取开发新闻和gifs,或查看此博客以获取更多实质性更新!找不到您项目所需的功能?在问题页面上提出请求,我们将优先为您提供服务!

虽然立体套件主要设计用于从C#使用,但所有核心功能都是用原生代码实现的,同时也为C/C++开发者提供了一个兼容C的头文件!这些绑定就是从这个头文件创建的!

要获取更好的文档和教程,请访问 https://stereokit.net

帮助或贡献

如果您有任何问题,请在官方 StereoKit Discord 服务器上联系!https://discord.com/invite/jtZpfS7nyK

入门指南

要使用 android-setup 模板入门,请使用

cargo生成 MalekiRe/stereokit-template

如果您还没有 cargo generate,请首先运行

cargo安装 cargo-generate

示例

fn basic() {
    let sk = crate::SettingsBuilder::new()
        .app_name("StereoKit Example App")
        .init()
        .unwrap();
    let model = sk.model_create_mesh(crate::Mesh::CUBE, crate::Material::DEFAULT);
    let mut position = glam::Vec3::default();
    let mut redness = 0.0;
    sk.run(|sk| {
        position.x = sk.time_total_f32().sin();
        position.y = sk.time_total_f32().cos();
        redness = sk.time_total_f32().sin() - 0.3;
        sk.model_draw(
            &model,
            glam::Mat4::from_scale_rotation_translation(
                glam::Vec3::new(1.0, 1.0, 1.0),
                glam::Quat::IDENTITY,
                position,
            ),
            crate::Color128::new(redness, 0.1, 0.9, 1.0),
            crate::RenderLayer::default(),
        );
    }, |_| {});
}

依赖项

~27–37MB
~229K SLoC