我目前在項目中使用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