javascript - Three.js:在全景图的地板上添加图像

标签 javascript three.js panoramas

我正在使用此代码 Panorama我想在这张全景图的地板上添加图像。有人可以指导我如何做到这一点吗?图像非常小(256x256)

最佳答案

为了在地板上添加图像,您应该创建一个 PlaneGeometry、一个 MeshBasicMaterial,然后将它们应用到 Mesh,然后更改位置和旋转轴。

示例:

var geometry = new THREE.PlaneGeometry( 1, 1 );
var material = new THREE.MeshBasicMaterial( { map : texture, opacity : 1, side : THREE.DoubleSide, transparent : true } );
var sprite = new THREE.Mesh( geometry, material );

其中纹理是您要插入的图像,通过纹理加载器添加。

然后你必须通过position.set函数设置 Sprite 的位置。

将 Sprite 设置为北:

sprite.position.set(0,-360,0);

将 Sprite 设置为南边:

sprite.position.set(0,360,0);

最后一步是将 Sprite 旋转 90 度以便可见,否则它将呈现如下 |并不是 [] 。所以我们必须做一个rotateOnAxis:

sprite.rotateOnAxis(  new THREE.Vector3( 1, 0, 0 ), THREE.Math.degToRad(90) );

如果图像太小,您可以使用:

sprite.scale.set( scaleValue, scaleValue, scaleValue );

其中scaleValue是大于0的值。

关于javascript - Three.js:在全景图的地板上添加图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30802209/

相关文章:

javascript - 正则表达式/JavaScript : Split string to separate lines by max characters per line with looking n chars backwards for a possible whitespace?

javascript - 如何在 3D Canvas 中捕获图像以及 Logo 和文本?

unity3d - Unity- Photosphere Photo Viewer for Google Cardboard

iphone - 全景热点实现

javascript - 两个板共享相同的 slider (jsxGraph),可能吗?

javascript - 如何通过不同的 View / Controller 在特定元素上设置 ng-show?

javascript - 如何防止JavaScript中异步init方法的并行执行?

javascript - 在 Three.js 中加载 DAE

javascript - 在 three.js 中创建具有矩形底面的锥形几何体?

algorithm - Android 4.3/4.4 上 Google PhotoSphere 背后的算法