gpt4 book ai didi

json - ThreeJS - 未定义的 JSONLoader "Cannot read property ' 制服

转载 作者:行者123 更新时间:2023-12-05 00:29:21 25 4
gpt4 key购买 nike

我正在尝试从 Blender 导出一个带有纹理的对象。导出的 JSON 如下所示:

 {

"metadata" :
{
"formatVersion" : 3.1,
"generatedBy" : "Blender 2.66 Exporter",
"vertices" : 8,
"faces" : 6,
"normals" : 8,
"colors" : 0,
"uvs" : [],
"materials" : 1,
"morphTargets" : 0,
"bones" : 0
},

"scale" : 1.000000,

"materials" : [ {
"DbgColor" : 15658734,
"DbgIndex" : 0,
"DbgName" : "Material",
"blending" : "NormalBlending",
"colorAmbient" : [0.6400000190734865, 0.6400000190734865, 0.6400000190734865],
"colorDiffuse" : [0.6400000190734865, 0.6400000190734865, 0.6400000190734865],
"colorSpecular" : [0.0, 0.0, 0.0],
"depthTest" : true,
"depthWrite" : true,
"mapDiffuse" : "unicorn.jpg",
"mapDiffuseWrap" : ["repeat", "repeat"],
"shading" : "Lambert",
"specularCoef" : 50,
"transparency" : 1.0,
"transparent" : false,
"vertexColors" : false
}],

"vertices" : [1,-1,-1,1,-1,1,-1,-1,1,-0.999999,-1,-1,1,1,-0.999999,0.999999,1,1,-1,1,0.999999,-1,1,-1],

"morphTargets" : [],

"normals" : [0.577349,-0.577349,-0.577349,0.577349,-0.577349,0.577349,-0.577349,-0.577349,0.577349,-0.577349,-0.577349,-0.577349,0.577349,0.577349,-0.577349,-0.577349,0.577349,-0.577349,-0.577349,0.577349,0.577349,0.577349,0.577349,0.577349],

"colors" : [],

"uvs" : [],

"faces" : [35,0,1,2,3,0,0,1,2,3,35,4,7,6,5,0,4,5,6,7,35,0,4,5,1,0,0,4,7,1,35,1,5,6,2,0,1,7,6,2,35,2,6,7,3,0,2,6,5,3,35,4,0,3,7,0,4,0,3,5],

"bones" : [],

"skinIndices" : [],

"skinWeights" : [],

"animation" : {}


}

我的 Json 加载器:
 var object;
var loader = new THREE.JSONLoader();

loader.load( "models/texturecube.js", function(geometry, materials) {
var material = new THREE.MeshFaceMaterial(materials);
object = new THREE.Mesh(geometry, materials); // throws

object.scale.set(1, 1, 1);
scene.add(object)

});

加载程序抛出“无法读取未定义的属性‘制服’”异常。我看到其他人必须修改导出的 JSON 才能使其正常工作。有谁知道“制服”属性的用途是什么?我应该在我的 JSON 中定义这个吗?

谢谢!

最佳答案

您的 material未使用变量。做这个:

object = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( materials ) );

此外,如果您希望能够应用纹理,您的几何体将需要 UV。

编辑:有一个新模式。如果您有一个 Material 数组,您现在可以将 Material 数组直接传递给 Mesh构造函数像这样:
object = new THREE.Mesh( geometry, materials );

三.js r.87

关于json - ThreeJS - 未定义的 JSONLoader "Cannot read property ' 制服,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17395532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com