2014-10-29 42 views
0

我使用Blender插件導出JSON文件,但出於某種原因,我無法導出我的對象的紋理。Three.js使用JSON從攪拌器導入對象

JSON文件的材料部分的樣子:

"materials" : [ { 
    "DbgColor" : 15658734, 
    "DbgIndex" : 0, 
    "DbgName" : "new", 
    "blending" : "NormalBlending", 
    "colorAmbient" : [0.6400000190734865, 0.6400000190734865, 0.6400000190734865], 
    "colorDiffuse" : [0.6400000190734865, 0.6400000190734865, 0.6400000190734865], 
    "colorEmissive" : [0.1, 0.1, 0.1], 
    "colorSpecular" : [0.5, 0.5, 0.5], 
    "depthTest" : true, 
    "depthWrite" : true, 
    "shading" : "Lambert", 
    "specularCoef" : 50, 
    "transparency" : 1.0, 
    "transparent" : false, 
    "vertexColors" : false 
}], 

和JavaScript的部分是:

var loader = new THREE.JSONLoader();   

loader.load("./try.js", function(geometry,materials) { 
    material = new THREE.MeshFaceMaterial(materials); 
    object = new THREE.Mesh(geometry,material); 
    object.scale.set(0.5,0.5,0.5); 
    object.position.x=0; 
    object.position.y=0; 
    object.position.z=0; 
}); 

loader.onLoadComplete=function(){ //render 
} 

我跟着這個https://www.youtube.com/watch?v=cUkNOF8eORA來創建對象。 (不是我會做什麼,但以這種方式我們有相同的起點)

+0

有你的材料中沒有定義紋理貼圖。看看在JSON格式定義在https://github.com/mrdoob/three.js/wiki – gaitat 2014-10-29 17:30:09

+0

是的,我明白了。我的問題是爲什麼攪拌機插件沒有導出紋理貼圖 – BiA 2014-10-29 17:31:40

+0

看來,解開包裝(mesh-UV unwrap - Unvrap)是至關重要的,因爲它創建了UV座標並允許導出器將它們保存在.json文件中 – BiA 2014-10-31 09:11:39

回答

0

我發現的是:你用攪拌器在你的幾何體上繪製紋理,使用各種mesh-UV-方法和.json導出器生成的文件將存儲有關UV映射的信息。該UV貼圖當然與您選擇的紋理圖像有關。

JSON文件支持很多加載程序(還?)不支持的東西,例如動畫,相機和燈光屬性等。加載程序不支持的功能之一就是我在找什麼。看起來,在JSON文件的規範中,您可以添加紋理的圖像文件的名稱。但是出口商和裝載者都無法用它做任何事情。

編輯:此https://github.com/mrdoob/three.js/pull/5502拉動請求表明,他們正在研究它,也許three.js所的下一個版本將工作