2015-07-22 103 views
1

我想使用three.js引擎將紋理應用到planeGeometry。 我應該看到一個足球場,我實際上看到黑色。three.js使用紋理貼圖從JPG圖像即將黑色

如果我用color:0x80ff80取代map:texture參數,我得到一個純綠色的字段,證明幾何體在正確的位置。

該頁面包含一個出現在任何腳本之前的文件。我可以顯示該圖像,證明圖像沒有問題。

這些文件由http服務器在本地提供。

下面是我用來構建材質和PlaneGeometry的代碼。任何想法讚賞。謝謝。

function buildField(fieldLength, fieldWidth, scene) { 
    var image = document.getElementById("fieldTexture"); 
    var texture = new THREE.Texture(image); 
    texture.minFilter = THREE.LinearFilter; 
    var geometry = new THREE.PlaneGeometry(fieldLength, fieldWidth, 5, 5); 
    var material = new THREE.MeshBasicMaterial({map:texture, side:THREE.DoubleSide}); 
    var field = new THREE.Mesh(geometry, material); 
    field.rotation.x = -Math.PI/2; 
    scene.add(field); 
} 

回答

2

試試這個,自己three.js所方法通常更好地工作...:

texture = THREE.ImageUtils.loadTexture('field.png'); 
    material = new THREE.MeshBasicMaterial({map: texture}); 
    var field = new THREE.Mesh(geometry, material); 
1

THREE.ImageUtils已經過時。 (source
使用THREE.TextureLoader()。load('field.png')改爲