three.js:shapegeometry上的纹理

时间:2013-05-30 10:25:24

标签: three.js

我正在使用three.js,我有一个平面形状。这个形状应该有一个纹理。下面你可以看到我如何尝试这个。问题是,纹理仅在形状的两个边缘处以两个条纹显示。如果我为texture.repeat采用更高的值,这条纹变得更薄。 我知道这里有一个相关的主题Three.JS Is it possible to render a texture on shapeGeometry?,但我无法理解这对我有什么帮助。

    //Draw Floorshape
    var points_floor = [];

    points_floor.push(new THREE.Vector2(edges[edges.length-1][edges[3].length-1][0], edges[edges.length-1][edges[3].length-1][1]));
    for (var i = 0; i < edges.length; i++) {
        for (var j = 0; j < edges[i].length; j++) {
            points_floor.push(new THREE.Vector2(edges[i][j][0], edges[i][j][1]));
        }
    }

    var shape_floor = new THREE.Shape(points_floor);

    var floorGeometry = new THREE.ShapeGeometry(shape_floor);
    var texture = new THREE.ImageUtils.loadTexture("./img/tileable_wood_texture_by_ftIsis_Stock.jpg");
    texture.repeat.set(0.1, 0.1);
    texture.wrapS = texture.wrapT = THREE.RepeatWrapping;

    var materialFloor = new THREE.MeshBasicMaterial({
        map : texture,
        side : THREE.DoubleSide
    });

    var floor = new THREE.Mesh(floorGeometry, materialFloor);
    floor.overdraw = true;

0 个答案:

没有答案