【问题标题】:A-frame render lop and view refreshA 帧渲染 lop 和视图刷新
【发布时间】:2018-12-29 21:55:54
【问题描述】:

我正在尝试使用汽车的 .obj 模型在 A 框架中创建第一人称视图。

摄像头已定位在靠近驾驶座的位置,javascript 中有一个定时间隔,通过三角计算移动摄像头位置并相应地移动摄像头。

这是我面临的两个问题

1) 你如何使它更流畅? A-frame 中的渲染循环是否有一个可以在 javascript 中访问的钩子?我似乎找不到它的文档。

2)当我在手机(Android 9)上以VR模式查看上述页面时,创建的动画突然停止,在全屏模式下效果很好。

html的代码在这里https://raw.githubusercontent.com/CuriosityGym/VRWithAframe/master/templates/class3-models.html

示例可以在这里访问http://cgaframe.herokuapp.com/class3

谢谢!

【问题讨论】:

    标签: render aframe virtual-reality


    【解决方案1】:

    您有一个 setInterval 每 100 毫秒触发一次,以 10 fps 的速度为汽车设置动画。这就是它不光滑的原因。创建一个组件,使用tick方法animate

    此外,您不应直接为相机设置动画,因为它的位置会被 VR 模式下的头显姿势所覆盖。设置和动画camera rig

    【讨论】:

    • 谢谢!会尝试您的建议。
    • 我按照您的建议创建了修改,但是在手机上处于 VR 模式时场景不会刷新。我借用了相机的倾斜度并将其应用于钻机。应该是这样吗?
    • 请注意,您的代码正在旋转并将其应用于位置。访问和修改 object3D 而不是使用 setAttribute。例如:this.el.object3D.position.x 不要旋转用户头部,这不会是一个很好的体验。尤其是在 VR 中。
    • 我使用极坐标从相机指向的角度确定笛卡尔坐标。然后我使用这些笛卡尔坐标线性移动相机。尚未映射操纵杆来控制线性运动的幅度。我不认为我在修改用户头部的角度。
    猜你喜欢
    • 2014-11-13
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 2021-04-06
    相关资源
    最近更新 更多