簡體   English   中英

將紋理應用於threejs對象

[英]Applying texture to threejs object

我在將紋理應用於導出的對象時遇到麻煩。 我的代碼如下所示:

var loader = new THREE.ObjectLoader();
var texture = THREE.ImageUtils.loadTexture('models/mountain/mountain.png');

loader.load("models/mountain/mountain.json", function (obj) {

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

  scene.add( mesh );
});

只是將obj添加到場景中就可以了,但是當我必須設置網格和紋理時,會出現錯誤。 正確的語法應該是什么?

您的問題可能是ObjectLoader返回的“ obj”實際上只是一個Object3D。 包含實際幾何圖形和材料的對象是此“ obj”的子級。

因此,要更改材料,您需要:

for(var i = 0; i < obj.children.length; i++)
{
    obj.children[i].material = new THREE.PhongMaterial...
}

另外,請查看MTL加載程序。 如示例所示,OBJ / MTL加載器是使用帶紋理的OBJ的常用方法: http ://threejs.org/examples/#webgl_loader_obj_mtl

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM