2015-04-16 35 views
0

我目前使用Three.js,版本71。我首先使用攪拌器創建我的模型,然後將它們導出爲JSON文件。然後我用THREE.JSONLoader使用加載模型到我的場景如下:Three.js - 使用不需要光源的材料加載模型

this.jsonLoader.load(pathToModelFile, function(geometry, materials) { 
    //... 
}); 

的材料列表僅包含THREE.MeshPhongMaterial索引0這種物質似乎需要一個光源(如例如THREE.SpotLight)在我的場景中。否則,我的模型會變黑。

我基本上只是想能夠加載我的模型,不需要使用光源才能看到它們。因此,我有以下問題,並回答他們的任何一個會解決我的問題:

  1. 是否有一些標誌或財產THREE.MeshPhongMaterial我可以改變,將允許沒有被看見我的模型光源?
  2. 如果數字1不可能,有沒有辦法使用THREE.JSONLoader給我一種不需要光源的不同材料?例如,像THREE.MeshBasicMaterial
  3. 有什麼方法可以從攪拌機中導出我的模型,該模型已經具有所需的標誌/屬性集(如果可能)?

這聽起來像我有,這傢伙在下面的鏈接中提到了同樣的問題,但他從來沒有收到答覆:Switch lighting of THREE.MeshPhongMaterial on/off dynamically

回答

0

1不知道,覺得沒有

2是

var jsonLoader = new THREE.JSONLoader(); 
jsonLoader.load(model, addthree1ToScene); 

function addthree1ToScene(geometry, materials) 
    { 


    material = new THREE.MeshBasicMaterial(blahblah); 


    three1 = new THREE.Mesh(geometry, material); 
    scene.add(three1); 
    console.log(three1); 

} 

3是,在攪拌機可以導出前設置網格的材料類型,也可以在導出的文件進行編輯材料變量

編輯: 或者最愚蠢的方式,可以通過討論到這個答案來編輯表示Json文件中的材質。

+0

對於#2,這將從模型中移除紋理。有沒有辦法將THREE.MeshPhongMaterial轉換爲THREE.MeshBasicMaterial或其他?如果沒有,有沒有辦法將我的紋理設置爲THREE.MeshBasicMaterial或其他? –

+0

我覺得不可能轉換材質,只能替換。 你可以絕對地設置JSON文件中的材質,在攪拌機中它是在材質比例部分THREE ... – Martin

+0

是否可以拍攝這些選項的屏幕截圖,並將它們置於答案3的帖子中?不幸的是,我無法在攪拌機中的三個部分中找到這些選項(編輯模型時右下角的那個選項,以及要導出JSON文件時左邊的選項)。 –