如何在three.js中将图像映射到部分球体上

时间:2019-05-14 10:03:11

标签: javascript three.js

我用球面砖创建了一个完整的球面,以便当它们都位于FOV内时分别处理它们。

为此,我将等角的全景图分成几个二次图像,以将它们映射到这些图块上。但是不知何故,纹理在每个图块的最高和最低分段行上发生了位移。

带有一些导入的方形图像的示例:

shifted tiles

原始测试图像:

shifted tiles

我怎样才能将纹理正确映射到瓷砖?创建图块的代码如下:

/*
    segment Data:
    x/y are generated by a loop
    maxX/maxY are the maximum values of these loops
*/
sphere = new THREE.SphereGeometry(radius, 4, 4, segmentData.x * 2 * Math.PI / segmentData.maxX, 2 * Math.PI / segmentData.maxX, segmentData.y * Math.PI / segmentData.maxY, Math.PI / segmentData.maxY);
texture = new THREE.TextureLoader().load(tileImagePath);
material = new THREE.MeshBasicMaterial({map: texture});
mesh = new THREE.Mesh(sphere, material);
scene.add(mesh);

我是Three.js的新手,所以也许这是一个非常简单的问题。

希望有人能帮忙吗?

1 个答案:

答案 0 :(得分:1)

事实证明,由于ScieCode,该问题是由版本r103和r104中的错误引起的。

它将在下一发行版中修复:https://github.com/mrdoob/three.js/issues/16454