拉伸图像纹理以适应Three.js中的网格面

时间:2014-04-10 14:17:42

标签: three.js texture-mapping

我正在尝试在three.js中进行以下操作:

Aim

我在Sketchup中使用一些简单的彩色纹理制作了模型并使用了collader导入器,结果如下所示:

Start

现在我想动态地将一些照片加载到每个不同的平面上,但我最终得到的是:

Error

正如您所看到的,每个图像都被加载但是它们非常小并且在表面的其余部分重复。

这是我加载纹理的方式:( preloadTexture()只是一个简单的预加载器)

for(i in cubeSidesArray)
{
    preloadTexture(modelThumbsArray[i]);

    var newTexture = new THREE.MeshPhongMaterial( { map: THREE.ImageUtils.loadTexture(modelThumbsArray[i]) } );
    cubeSidesArray[i].material = newTexture;
}

如何让纹理填满表面?

谢谢!

编辑 - 我在草图中使用模型并设法让它变得更好,但并不多!

编辑2 - 仍然没有运气,我开始认为从头开始在代码中构建它会更简单

1 个答案:

答案 0 :(得分:0)

选项1:我会建议你做或下一步。

1 - 。进入模型搅拌器
 2 -.Export blender to threejs
 3 - 使用这种充电方法。

AgregarModeloBlender function (geometry, materials) {
      console.log(materials);
      material = new THREE.MeshFaceMaterial( materials );   
      modelo3d_ = new THREE.Mesh( geometry,material );  
      escenario.add(modelo3d_);
      modelo3d_.add(camera);    
      modelo3d_.scale.set(5,5,5);   
      modelo3d_.position.set(-900,25,850);
      modelo3d_.rotation.y=Math.PI;
}

4 - 。随后trabajr独立纹理。 示例:http://all.develoteca.com/builder/

选项2:我建议你做或这样做: 1 - 。创建几何形状(顶点)以修改纹理的每个面。 示例:http://develoteca.com/Panel/

问候。