我正在使用three.js为AR应用程序在使用JSARToolKit检测到的标记上显示3D对象(从Maya导出,maya导出器为3j)。
这一切在localhost上工作正常(我看到纹理),但是当我在线上传它(github)并且我看到预览对象全部显示为没有纹理的黑色(就像我删除光线一样)
// load the model
var loader = new THREE.JSONLoader;
var object;
//var geometry = new THREE.BoxGeometry(1, 1, 1);
loader.load('js/object3d.js', function(geometry, materials){
var material = new THREE.MeshFaceMaterial(materials);
object = new THREE.Mesh(geometry, material);
container.add(object);
});
var ambLight = new THREE.AmbientLight( 0x909090, 2.0 );
container.add( ambLight );
有什么想法吗?
答案 0 :(得分:1)
我不确定这是否是问题,但可能是您的加载程序遇到了一些错误,但由于您没有为加载程序设置错误处理程序,因此您无法收到通知。
JSONLoader
加载方法需要四个参数(url
,onLoad
,onProgress
,onError
),因为您可以看到here in the class on line 40。< / p>
尝试设置错误处理程序(onError
回调方法),看看你得到了什么。例如:
var onload = function(geometry, materials){
var material = new THREE.MeshFaceMaterial(materials);
object = new THREE.Mesh(geometry, material);
container.add(object);
});
var onProgress = function(){
// your optional on progress logic
}
var onError = function(error){
console.log( error );
}
var loader = new THREE.JSONLoader;
loader.load('js/object3d.js', onLoad, onProgress, onError);