使用 JSONLoader 在 threejs 上导入 3d 对象
Import a 3d object on threejs with JSONLoader
我正在尝试在我的 threejs 项目中使用 jsonloader 使用 Maya 制作的非常简单的 3dobject,但我遇到了一些问题。
ojbect 由一些不同的 material (Lambert 和 Phong)和不同的颜色组成。
要创建 .json 文件,我使用 Maya 创建一个 .obj,然后使用 Blender 制作 .json,一切看起来都很好,但是当我尝试导入它加载 HIS material 时,我可以'甚至加载模型,相反,如果我在加载时使用随机 material,我能够正确加载模型。
var loader = new THREE.JSONLoader();
loader.load("http://localhost:8000/object/planev2.json", function
(mygeo,mymat){
var mat = mymat[0];
mymesh = new THREE.Mesh(mygeo,mat);
mymesh.scale.set(50,50,50);
scene.add( mymesh );
});
TL:TR - 是否可以直接从 .json 加载由不同 material 制作的对象?
试试下面的代码:
var material = new THREE.MeshPhongMaterial( {
color: 0xdddddd,
specular: 0x222222,
shininess: 35,
map: THREE.ImageUtils.loadTexture( "tex/map1.jpg" ),
specularMap: THREE.ImageUtils.loadTexture( "tex/map2.jpg" ),
normalMap: THREE.ImageUtils.loadTexture( "tex/map3.jpg" ),
normalScale: new THREE.Vector2( 1, 1 ),
morphTargets: true
} );
loader = new THREE.JSONLoader( );
loader.load( "mesh.json", function( geometry ) {
mesh = new THREE.Mesh( geometry, material );
mesh.name = "male";
scene.add(mesh);
});
loader.onLoadComplete = function () {
console.log("Loading is complete!");
}
我正在尝试在我的 threejs 项目中使用 jsonloader 使用 Maya 制作的非常简单的 3dobject,但我遇到了一些问题。 ojbect 由一些不同的 material (Lambert 和 Phong)和不同的颜色组成。 要创建 .json 文件,我使用 Maya 创建一个 .obj,然后使用 Blender 制作 .json,一切看起来都很好,但是当我尝试导入它加载 HIS material 时,我可以'甚至加载模型,相反,如果我在加载时使用随机 material,我能够正确加载模型。
var loader = new THREE.JSONLoader();
loader.load("http://localhost:8000/object/planev2.json", function
(mygeo,mymat){
var mat = mymat[0];
mymesh = new THREE.Mesh(mygeo,mat);
mymesh.scale.set(50,50,50);
scene.add( mymesh );
});
TL:TR - 是否可以直接从 .json 加载由不同 material 制作的对象?
试试下面的代码:
var material = new THREE.MeshPhongMaterial( {
color: 0xdddddd,
specular: 0x222222,
shininess: 35,
map: THREE.ImageUtils.loadTexture( "tex/map1.jpg" ),
specularMap: THREE.ImageUtils.loadTexture( "tex/map2.jpg" ),
normalMap: THREE.ImageUtils.loadTexture( "tex/map3.jpg" ),
normalScale: new THREE.Vector2( 1, 1 ),
morphTargets: true
} );
loader = new THREE.JSONLoader( );
loader.load( "mesh.json", function( geometry ) {
mesh = new THREE.Mesh( geometry, material );
mesh.name = "male";
scene.add(mesh);
});
loader.onLoadComplete = function () {
console.log("Loading is complete!");
}