Ver código fonte

兼容角度为空的情况&修复look的字体问题

zjs_project 1 ano atrás
pai
commit
eb3538ed51

+ 10 - 0
src/App.vue

@@ -61,6 +61,16 @@
 					alert('监测到E1004错误' + error);
 				}
 			}, true)
+			window.addEventListener('beforeunload', function(event) {
+				// 检查内存使用情况
+				if (performance.memory.usedJSHeapSize >= performance.memory.jsHeapSizeLimit) {
+					// 内存不足,执行重新加载页面的逻辑
+					event.preventDefault();
+					// window.location.reload();
+					alert("**内存不足,页面重新载入**")
+				}
+			});
+
 			// window.onerror = function(message,source,line,column,error) {
 			// };
 		},

+ 1 - 1
src/pages/webgl_rxdz_customize/webgl_rxdz_customize.scss

@@ -255,7 +255,7 @@ page {
 	// top:0rem;
 	height: calc(100% - 930rem);
 	top:930rem;
-	height: 100%;
+	width: 100%;
 	opacity: 0.85;
 	position: absolute;
 	left: 0;

+ 1 - 0
src/pages/webgl_rxdz_look/webgl_rxdz_look.scss

@@ -48,6 +48,7 @@ canvas {
 	background: rgba(0, 0, 0, 0.4);
 	overflow: hidden;
 	z-index: 11;
+	font-size: 28rem;
 }
 .floor-item{
 	height: 60rem;

+ 8 - 4
src/pages/webgl_rxdz_look/webgl_rxdz_look.vue

@@ -73,6 +73,7 @@
 				floorId:null,
 				curData:null,	//上一个页面传来的数据
 				curSpaceObj:null,	//当前应该定位到的空间
+				isIOS:false,
             }
         },
 		computed: {
@@ -112,6 +113,7 @@
             this.spaceId = this.$route.query.spaceId?this.$route.query.spaceId:'';
             this.id = this.$route.query.id?this.$route.query.id:'';
 			console.warn("***mounted-webgl_rxdz_look****",this.id,this.$route.query)
+			this.isIOS = !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
 			if(this.id){
 				this.getIdData()
 			}else{
@@ -166,8 +168,8 @@
                 light.shadow.camera.top  = 100; // default
                 light.shadow.camera.bottom  = -100; // default
                 
-                light.shadow.mapSize.width = 8192; // default
-                light.shadow.mapSize.height = 8192; // default
+                light.shadow.mapSize.width = 1024; // default
+                light.shadow.mapSize.height = 1024; // default
                 // light.shadow.camera.near = 0.1; // default
                 // light.shadow.camera.far = 500; // default
                 
@@ -180,8 +182,10 @@
 					canvas:canvas3d, 
 					alpha: true,
 				});
-				renderer.shadowMap.enabled = true;//产生阴影
-				renderer.shadowMap.type = THREE.PCFSoftShadowMap; // 阴影属性
+				// if(!that.isIOS){
+					renderer.shadowMap.enabled = true;//产生阴影
+					renderer.shadowMap.type = THREE.PCFSoftShadowMap; // 阴影属性
+				// }
                 renderer.outputEncoding = THREE.sRGBEncoding;
                 renderer.outputColorSpace = THREE.SRGBColorSpace;
                 // renderer.toneMappingExposure = 0.1;//色调映射的曝光级别。默认是1

+ 15 - 6
src/pages/webgl_rxdz_roam/webgl_rxdz_roam.vue

@@ -83,8 +83,8 @@
 				actors:[],
 				showDownView:true,//默认显示下载按钮
 				currentActor:null,
-				isIos:false,	//是否ios手机。默认不是
 				circleGroup:null,
+				isIOS:false,
 				// aiImagesList:[
 				// 	// "https://dm.static.elab-plus.com/miniProgram/plus_IM01.png",
 				// 	// "https://dm.static.elab-plus.com/miniProgram/plus_IM02.png",
@@ -110,6 +110,7 @@
         mounted(options) {
 			var that = this;
 			console.warn("***webgl_rxdz_roam-options***",this.$route.query)
+			this.isIOS = !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
 			// alert("***mounted-webgl_rxdz_roam***"+this.curHouseObj)
 			let unit = window.screen.width / 750;//单位rpm 对应 px 的值
 			this.canvasHeight = window.screen.height - (600 * unit) + (40 * unit);
@@ -184,8 +185,8 @@
 				light.shadow.camera.top  = 100; // 这个区域内产生阴影
 				light.shadow.camera.bottom  = -100; // 这个区域内产生阴影
 				
-				light.shadow.mapSize.width = 8192; 	// 影响阴影的清晰度
-				light.shadow.mapSize.height = 8192; // 影响阴影的清晰度
+				light.shadow.mapSize.width = 1024; 	// 影响阴影的清晰度
+				light.shadow.mapSize.height = 1024; // 影响阴影的清晰度
 
 				scene.add(light);
 				
@@ -196,8 +197,10 @@
 					antialias:true,
 					preserveDrawingBuffer: true,
 				});
-				// renderer.shadowMap.enabled = true;//产生阴影  IOS 下有阴影会导致渲染下重新执行挂载方法-页面会二次载入,不知原因
-				// renderer.shadowMap.type = THREE.PCFSoftShadowMap; // 阴影属性
+				// if(!that.isIOS){
+					renderer.shadowMap.enabled = true;//产生阴影
+					renderer.shadowMap.type = THREE.PCFSoftShadowMap; // 阴影属性
+				// }
 				renderer.outputEncoding = THREE.sRGBEncoding;
 				renderer.outputColorSpace = THREE.SRGBColorSpace;
 				// renderer.toneMappingExposure = 0.1;//色调映射的曝光级别。默认是1
@@ -823,6 +826,13 @@
                     for (let index = 0; index < spaceList.length; index++) {
                         var element = spaceList[index];
                         // const centerX = JSON.parse(JSON.stringify(element.centerX))
+						if(!element.actors || element.actors.length==0){
+							element.actors = [{
+								actorLocation:element.actorLocation,
+								actorTransform:element.actorTransform,
+								isSelected:true,
+							}]
+						}
 						element.actors.forEach(actor=>{
 							let _actorLoaction = actor.actorLocation.split(',');//x y z
 							let X_C = (parseInt(_actorLoaction[0]) || element.centerY) - element.centerY;//X轴偏移量-UE原因
@@ -838,7 +848,6 @@
 							actor.presentX = Math.abs(_presentX)>1 ? (_presentX>1?1:-1) : _presentX;//观察点跟空间中心原点的距离比例
 							actor.presentY = Math.abs(_presentY)>1 ? (_presentY>1?1:-1) : _presentY;
 						})
-						
 						element.wallMoveValue = "[0,0,0,0]"
                         this.spaceList.push(element);
                         this.wallIds.push(element.wallId);

+ 3 - 1
src/static/layoutModelData.js

@@ -51,7 +51,8 @@ var layoutModel = [
 	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_T_2PeopleBasin02.glb', name: '2人台盆02',modelName: 'BP_T_2PeopleBasin02', type:1},
 	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_flue001.glb', name: '烟道',modelName: 'BP_K_flue002', type:1},
 
-	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_cookerhood2.glb', name: '灶台',modelName: 'BP_K_cookerhood02', type:1},
+	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_cookerhood2.glb', name: '灶台2',modelName: 'BP_K_cookerhood02', type:1},
+	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_cookerhood3.glb', name: '灶台3',modelName: 'BP_K_cookerhood3', type:1},
 	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_icebox_2door001.glb', name: '冰箱',modelName: 'BP_K_icebox_2door002', type:1},
 	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_shuipen01.glb', name: '水盆01',modelName: 'BP_K_shuipen01', type:1},
 	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_shuipen02.glb', name: '水盆02',modelName: 'BP_K_shuipen02', type:1},
@@ -154,6 +155,7 @@ var layoutModel = [
 	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_B_pillow01.glb', name: '枕头',modelName: 'BP_B_pillow01', type:1},
 	
 	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_XSPACE_deng_01.glb', name: '吊顶灯',modelName: 'BP_XSPACE_deng_01', type:2},
+	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_CeilingLamp_01.glb', name: '吊灯01',modelName: 'BP_L_CeilingLamp_01', type:2},
 	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_FloorLamp01.glb', name: '地灯05',modelName: 'BP_L_FloorLamp01', type:2},
 ];