【问题标题】:Wood texture on merge mesh geometry合并网格几何上的木材纹理
【发布时间】:2017-04-13 18:11:55
【问题描述】:

我想将几个几何图形合并在一起,然后应用纹理使其看起来像一块真正的木头。

有可能吗?这是我得到的结果:

这是我尝试过的:

var texture = new THREE.TextureLoader().load( 'Escaliers 3D/1-3-2-5-Bois.jpg' );
var mesh = [], no = 0;
var meshes = [];
var geometry = new THREE.CubeGeometry( 2, 10, 1 );
mesh[no] = new THREE.Mesh( geometry );
meshes.push(mesh[no]);
no++;

geometry = new THREE.CylinderGeometry( 0.5, 0.5, 10, 32 );
mesh[no] = new THREE.Mesh( geometry );
mesh[no].position.set( 1, 0, 0 );
mesh[no].rotation.x = 0;
mesh[no].rotation.y = Math.PI/2;
mesh[no].rotation.z = 0;
meshes.push(mesh[no]);
no++;

geometry = new THREE.CubeGeometry( 5, 10, 1 );
mesh[no] = new THREE.Mesh( geometry );
mesh[no].position.set( -3.5, 0, 0 );
meshes.push(mesh[no]);
no++;
geometry = mergeMeshes(meshes);

var material = new THREE.MeshBasicMaterial( { map: texture } );
mesh = new THREE.Mesh( geometry, material );

scene.add( mesh );

function mergeMeshes (meshes) {
    var combined = new THREE.Geometry();
    for (var i = 0; i < meshes.length; i++) {
        meshes[i].updateMatrix();
        combined.merge(meshes[i].geometry, meshes[i].matrix);
    }
    return combined;
}

谢谢。

【问题讨论】:

  • 如果我理解正确,图像代表您从上述代码中得到的结果,对吧?
  • 可以,但需要像实木楼梯一样统一。
  • 像真正的木楼梯一样统一。你是什么意思?您想要一个对象中的所有网格?
  • 是的,一个对象。无需重新启动纹理图像。
  • 发布你所有的代码,顺便说一下我不知道mergeMeshes 做了什么。创建一个complete verifiable example,我很难理解你所说的重新启动纹理图像是什么意思。据我所知,您没有正确使用TextureLoader

标签: merge three.js mesh texture-mapping


【解决方案1】:

合并用于创建这个的两个网格就是答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 2013-07-21
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多