我目前在项目中使用threex.webar(https://github.com/jeromeetienne/threex.webar)(带有ArucoJS的Three.js)。现在,我正在尝试基于AR标记进行投影(markerObject3D),但我希望它位于标记旁边,而不是它。Three.js:翻译投影的最佳方法?
以下是我实现了,使用three.js所平移X():
function render() {
translateMarker3D(markerObject3D);
movieMaterial.update();
backgroundTexture.update();
effect.render(scene, camera)
}
function translateMarker3D(marker3D) {
marker3D.translateX(80);
}
的事情是:它还挺工作。它闪烁很多,没有翻译的时候它很棒(所以它在标记旁边闪烁,但当它在它上面时很好)。
我也试图改变aruco返回真实值(threex.jsarucomarker.js):
object3d.position.x = translation[0] + 80;
但它呈现完全一样,忽隐忽现。
所以我的问题是:用Three.js在AR标记旁边进行投影的最佳方式是什么?
编辑:
由于现场演示将是很难成立的,我只是上传到YouTube的一段视频来说明我的观点:https://www.youtube.com/watch?v=SM1dZ29SZRk&feature=youtu.be
但是,你可以看到完整的代码在这里:https://github.com/cned-di-dev/three-ar-proto/blob/master/tests/stereoscopic/index.html
我所缺少的:
- 闪烁对象翻译(它只是“颠簸”有时,当时它的翻译)
- 投影是错误的,有时(在屏幕的边缘时, 对象被翻译由于透视相机,但我不能修复它)
事情知道:我在三维的东西(几何,矩阵等)方面不太好。
你可以添加一个runnable/jsfiddle的例子吗? – approxiblue
当我运行网络摄像头流时,我想我不能放置一个实例(因为网络摄像头流需要localhost/https服务器)。 – enguerranws
如果不是现场演示,演示问题的最小可行示例([mcve])也不错。 – approxiblue