三.js 三的错误.对象加载器
Three.js Error with THREE.ObjectLoader
我似乎在Three.ObjectLoader上遇到了问题。 我正在以 JSON 格式 4.3 导出场景。 此场景包括几何体、材质和灯光。 场景在三.js编辑器中打开就很好,没有任何错误。
我正在使用 Three.js r70 master在火狐上工作。以下是生成的 json 的链接: https://gist.github.com/fraguada/d86637f7987096b361ea
在我尝试编写的查看器中,我使用以下代码进行加载:
var manager = new THREE.LoadingManager();
manager.onProgress = function ( item, loaded, total ) {
console.log( item, loaded, total );
};
// instantiate a loader
var loader = new THREE.ObjectLoader(manager);
loader.load(
// resource URL coming from other file
Name,
// Function when resource is loaded
function ( result )
{ scene.add( result.scene ); },
// Function called when download progresses
function ( xhr )
{ console.log( (xhr.loaded / xhr.total * 100) + '% loaded' ); },
// Function called when download errors
function ( xhr )
{ console.log( 'An error happened' ); }
);
在控制台中,我看到以下内容:
THREE.WebGLRenderer 70 three.min.js (line 513)
100% loaded content.js (line 117)
THREE.Object3D.add: undefined is not an instance of THREE.Object3D. three.min.js (line 164)
js/Test83.js 1 1 content.js (line 86)
该错误也出现在未缩小的三个中.js在第 7674 行
如果我在 Three.js 编辑器中创建几何体和其他对象并将其导出为场景,也会出现此问题。
问题似乎在这里:scene.add( result.scene );
我假设三个不正确。对象加载器可以使用文件中的 JSON 吗? 在我发布的代码中,如果我删除scene.add( result.scene );
似乎至少加载了文件(数据加载,没有可视化几何图形),因为没有出现错误。 如果我的场景有很多网格,进度会输出到控制台(10% 加载,20% 加载等)。
任何见解将不胜感激。
经过更多的挖掘,我意识到我需要使用THREE。XHRLoader 引入 json,然后使用 THREE。对象加载器来解析结果。 这样的事情应该有效:
var loaderObj = new THREE.ObjectLoader();
var loader = new THREE.XHRLoader();
loader.load( 'js/data.json', function ( text ) {
text = "{ '"scene'" : " + text + " }";
var json = JSON.parse( text );
var scene = loaderObj.parse( json.scene );
},
// Function called when download progresses
function ( xhr )
{ console.log( (xhr.loaded / xhr.total * 100) + '% loaded' ); },
// Function called when download errors
function ( xhr )
{ console.log( 'An error happened' ); } );
这种方法效果很好,并且是通过检查通过 ThreeJS 编辑器发布场景时生成的代码来学习的。
我认为你应该scene.add( result )
去做。
相关文章:
- ThreeJS访问加载的obj模型中的对象
- 如何在JSON中加载对象内部的数组元素
- 在 emberjs 中加载对象的正确方法是什么
- 使用逻辑加载对象
- nodejs require不是全局加载对象
- JavaScript:如何预加载<对象>图像数据?/ JavaScript 的图像与<对象>
- 等待ultil-ajax.html成功加载对象
- 在Phonegap中加载[对象文档]的AJAX成功数据
- 在ThreeJS中未使用JSONLoader加载对象:无法读取属性'可见'的未定义
- 加载对象标记时进行检测
- 在加载对象DOM之前修改对象DOM
- 通过OBJMTLLoader加载对象上的多个材料
- 如何按顺序加载对象数组的图像
- js -材料不加载对象
- 预加载对象+Mtl对象在Three.js
- 如何使用curl.js加载对象
- 使单页网站看起来像无限滚动,并以不同的方式加载对象
- 是否可以使用extendscript从外部illustrator文件加载对象属性
- 相位器框架-保存和加载对象javascript
- 有必要捕获加载对象,组件组件