【发布时间】:2020-10-09 16:39:35
【问题描述】:
我正在寻找一种方法,通过 SparkAR Studio 98 中的脚本将跟踪平面上的场景对象朝向相机。 这听起来微不足道,但我很难找到相机的世界位置,然后从中生成一个旋转,我可以将其应用于看着相机的对象。
我让它在跟踪平面层次结构中工作,这样一个对象总是会看着另一个对象,但由于相机位于该层次结构和坐标系之外,它对我没有帮助。
与往常一样,我一直在为 SparkAR API 的反应性特性以及事物分布在多个坐标系中的事实而苦苦挣扎,而且信息在网上很难找到并且很快就过时了。 我的代码如下所示:
const Scene = require('Scene');
const R = require('Reactive');
export const Diagnostics = require('Diagnostics');
(async function () {
Diagnostics.log("Filter activated");
const objectToOrient = await Scene.root.findFirst('object');
const objectParent= await Scene.root.findFirst('objectParent');
const target = await Scene.root.findFirst('target');
const lookAtPt = R.point(
target.worldTransform.x,
target.worldTransform.y,
target.worldTransform.z);
const lookAtTransform = objectParent.transform.lookAt(lookAtPt);
})();
为了向读者说明这个概念,我设置了这个场景:
一旦跟踪底层平面,就会出现“S”。然后它与被跟踪的飞机一起留在原地。 然后它应该始终朝向相机/设备/用户旋转。 谢谢!
【问题讨论】:
-
只是为了确认一下:你也问过这个on their forum吗? (因为如果你需要向别人寻求帮助,总是先在最权威的地方问,即使你在其他地方也问。最好的情况是,你在那里得到答案,然后在这里得到答案,你可以写下来SO回答自己以帮助未来的访问者)
-
谢谢,我会的。我还要感谢您提供的关于 Bezier 曲线的惊人入门,这不是开玩笑,这极大地激励了我在半年前开始攻读 CS 学位,来自汽车表面建模。我喜欢我的课程和对数学的参与,这在很大程度上是因为你的网站很棒。谢谢,迈克!
-
太棒了,很高兴它可以有所作为! =)
标签: javascript reactive-programming augmented-reality spark-ar-studio