0
JSONシーンでさまざまな素材を作成し、メッシュにデフォルトの素材を割り当て、ユーザーインターフェース内のさまざまな素材を切り替えるようにしています。JSONシーンから未使用の素材を参照する
JSONを解析した後、すべての素材を未使用の素材でも参照できますか?
JSONシーンでさまざまな素材を作成し、メッシュにデフォルトの素材を割り当て、ユーザーインターフェース内のさまざまな素材を切り替えるようにしています。JSONシーンから未使用の素材を参照する
JSONを解析した後、すべての素材を未使用の素材でも参照できますか?
THREE.ObjectLoader
のコードを調べると、JSON全体を解析するが、シーンオブジェクトへの単一の参照が明示的に返されることがわかります。私はこの問題を実行時にparse
メソッドにパッチを当てることで解決しました。コードはTHREE.ObjectLoader.parse
から取得され、戻り値のみが異なる(Object
を返すが、THREE.Object3D
は返さない)。
function objectLoaderParseOverride(json, onLoad) {
var ret = {};
ret.geometries = this.parseGeometries(json.geometries);
ret.images = this.parseImages(json.images, function() {
if (onLoad !== undefined) onLoad(ret);
});
ret.textures = this.parseTextures(json.textures, ret.images);
ret.materials = this.parseMaterials(json.materials, ret.textures);
ret.object = this.parseObject(json.object, ret.geometries, ret.materials);
if (json.animations) {
ret.object.animations = this.parseAnimations(json.animations);
}
if (json.images === undefined || json.images.length === 0) {
if (onLoad !== undefined) onLoad(ret);
}
return ret;
}
var loader = new THREE.ObjectLoader();
loader.parse = objectLoaderParseOverride;