Javascript Three.js使用JSON从blender导入对象
我使用Blender插件导出JSON文件,但由于某些原因,我无法导出对象的纹理 JSON文件的materials部分如下所示:Javascript Three.js使用JSON从blender导入对象,javascript,json,three.js,blender,Javascript,Json,Three.js,Blender,我使用Blender插件导出JSON文件,但由于某些原因,我无法导出对象的纹理 JSON文件的materials部分如下所示: "materials" : [ { "DbgColor" : 15658734, "DbgIndex" : 0, "DbgName" : "new", "blending" : "NormalBlending", "colorAmbient" : [0.6400000190734865, 0.640000019073486
"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
}
我按照这个创建对象。(不是我想做的,但这样我们就有了相同的起点)我发现:使用blender在几何体上映射纹理,使用各种网格-UV-方法,导出器生成的.json文件将存储有关UV映射的信息。UV贴图当然与您选择的纹理图像有关 JSON文件支持很多加载器不支持的东西,比如动画、相机和灯光设备等。加载器不支持的一个特性正是我想要的。在JSON文件的规范中,似乎可以为纹理添加图像文件的名称。但无论是出口商还是加载者都无法用它做些什么
编辑:这个拉取请求表明他们正在处理它,也许下一个版本的three.js可以工作材质中没有定义纹理贴图。看看JSON格式的定义,是的,我知道了。我的问题是为什么blender插件没有导出纹理贴图。似乎执行展开(mesh-UV unwrap-Unvrap)是至关重要的,因为它创建了UV坐标,并允许导出器将它们保存在.json文件中