在Three.js中没有应用纹理

时间:2016-07-21 12:22:48

标签: javascript three.js texture-mapping

我有一个通过挤出png图像创建的网格。我已经提到了代码http://wizgrav.github.io/three.js/runner/。我在网格上使用了THREE.MeshPhongMaterial。我正在使用纹理贴图,但纹理仅应用于网格的正面和背面,而不是侧面。请参阅下面的附图。

enter image description here

两侧呈现出最黑暗的纹理颜色。

我去了threejs.org/editor并添加了一个简单的立方体,并应用了相同纹理的相同THREE.MeshPhongMaterial材质,并将其应用于立方体的所有侧面。但在我的情况下,纹理不会应用在两侧。

代码:

var texture = THREE.ImageUtils.loadTexture('/Content/texture-green.jpg');
var bumpTexture = THREE.ImageUtils.loadTexture('/Content/texture-green-bump.jpg');
var specularTexture = THREE.ImageUtils.loadTexture('/Content/texture-green-specular.jpg');

var material = new THREE.MeshPhongMaterial({
    map: texture,
    bumpMap: bumpTexture,
    bumpScale: 0.03,
    specularMap: specularTexture
});

var g = new THREE.CanvasGeometry(canvas, { "height": 0.1, "solid": solid, "offset": window.thr, "steps": (steps ? Math.abs(steps) : 5) });
g.center();
mesh = new THREE.Mesh(g, material);
scene.add(mesh);

那么,几何形成的方式是否存在问题(http://wizgrav.github.io/three.js/runner/CanvasGeometry.js)?或者是否有另一种方法可以在网格的两侧添加纹理?

谢谢。

1 个答案:

答案 0 :(得分:1)

我关注this链接,它对我有用。我必须对纹理做一个小的时间才能使它正确。

texture.wrapS = texture.wrapT = THREE.MirroredRepeatWrapping;
texture.offset.set(0.5, 0.5);

希望这也有助于某人。