blender+Three.js 三维数据可视化--模型在IE11下加载

接上一篇,项目测试,在IE11中加载模型不显示,查看console log,是对Uint8Array的解析出了问题,IE11的Uint8Array对象一些方法没有实现,打开FBXLoader.js,修改3391行的getString方法,给Uint8Array对象打个补丁:

getString: function ( size ) {

			var a = new Uint8Array( size );

			for ( var i = 0; i < size; i ++ ) {

				a[ i ] = this.getUint8();

			}
			
			if (!Uint8Array.prototype.indexOf) {
			  Uint8Array.prototype.indexOf = function(searchElement, fromIndex) {			
				var k;			
				if (this == null) {
				  throw new TypeError('"this" is null or not defined');
				}
			
				var o = Object(this);			
				var len = o.length >>> 0;
			
				// 4. If len is 0, return -1.
				if (len === 0) {
				  return -1;
				}
							
				var n = fromIndex | 0;
							
				if (n >= len) {
				  return -1;
				}
							
				while (k < len) {				  
				  if (k in o && o[k] === searchElement) {
					return k;
				  }
				  k++;
				}
				return -1;
			  };
			}
			
			if(!Uint8Array.prototype.slice){
				Uint8Array.prototype.slice = function(){
					return new Uint8Array(this).subarray(this.arguments);
				}
			};
			
			var nullByte = a.indexOf( 0 );
			if ( nullByte >= 0 ) a = a.slice( 0, nullByte );

			return THREE.LoaderUtils.decodeText( a );

		}

判断是否有indexOf和slice方法,没有就加一个。Ctrl+F5刷新,模型加载。

Three.js 0.91.0版本,模型由blender-2.93.6生成,只导出网格(Mesh)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值