From 1b70a87d27709d8ed7027a81edbcc4b55bf7f2ba Mon Sep 17 00:00:00 2001 From: gaozl Date: Tue, 27 Jun 2023 14:26:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0=E5=A4=A9=E7=A9=BA?= =?UTF-8?q?=E7=9B=92=E3=80=81=E5=8C=BA=E5=9F=9F=E8=B4=B4=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/static/img/map/grassland.jpg | Bin 0 -> 31084 bytes public/static/img/map/grassland2.jpg | Bin 0 -> 8496 bytes public/static/img/map/ground.jpg | Bin 0 -> 2654 bytes public/static/img/map/ground2.jpg | Bin 0 -> 2880 bytes public/static/qm/MainMap_QM.js | 108 ++++++++++++++++++++------- public/static/qm/three.js | 16 +++- 6 files changed, 93 insertions(+), 31 deletions(-) create mode 100644 public/static/img/map/grassland.jpg create mode 100644 public/static/img/map/grassland2.jpg create mode 100644 public/static/img/map/ground.jpg create mode 100644 public/static/img/map/ground2.jpg diff --git a/public/static/img/map/grassland.jpg b/public/static/img/map/grassland.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d1662ab275113b6b7e6cee39bef9bb6306f24c0a GIT binary patch literal 31084 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 O(YTEmxQ9 zC9WmS$eJuylaTFR_)`_lm2+{DZT0D%Ai zbTEMZ55R2z{0|_9VEF+y)Ke0b(E^DFBQBK@gz*4nPC|AfN*P{{a}n0%GOZ9|PF`-rhOO>kOZM z7sju8Yb&jyZKomsl|tTUiTs8hx7EnHEtoxQBsAYC;l$-6+jsKU{~9qi;h zKN_OkKls^UNPWI((J7;Gsm(Mw>r&*W_A~|UO((gnh`A}2Gvae|4IcUFM~ebQwX?1? zn0Var<4k`?G+|_ZrfL--zlN$QXubIr`zu_tngDfqTm&=)H#{hJ{+vp`1>P|ssF)-9I`ijhx&&2lcSw+ibaMe zic|+4y|bnc6Sz+52pb&mrQruDg&d|8@-uiKFa!bcqF9hp%6u3VBV6py5Q2^X;hZwP zi^sYiNsv5WK|fW?@4zc8wD|(4rO=F$fqVNv%+0<%&yCYAc3&HD=D*`8;mn?e#p2|d zBu@EPebLEJ1F3c*N93z^McuD1nYDWh+B)r3tKGU-%%9=hVzyImBkBvf^5?Dv zF<>RW`cFL{FEm+D1){pcF1G%`tY#`x-m2;|wr9GQOm27SqXg)}7E4eeQ(|Q*Pth?o zpRX``AUU3%B@hy{4|LX1oE=7-6CzJE3Bd+mmOR^H*J$@*C#Bg&f{_>V>)6eonZ0F` z<>TP&U5Uu+COk?a3Fqwu=VAlNgoiZE6r^XQ@jL&!svkt|EYknVm|E?)#OK^BX0L1R z=*FLpsPhgy9-D~~@K_@qMOe+zo@iq|1}`g~B|ARrRgWfKMd54%CH?D1t|ul`z&l9- z^c6arp2Cw8bn0<}bPWy3UJtesJIYrVLs5s(ES$CSe4 z{bU~O1Hxwvl;TX>F^|$M{X*qkS*oF#w|$qYPS_7;SC@S9%{zS=*<*4g#Ktb^t&(4L zI1@%S?BHX{#ivQ5Jh!yw87&h?XJuD(*9(r_j@4lHYZp)o10g=*WEe zHj=8DITsCLGjBp(X4j1(S3WQc-MJ!A`bDZoSa~Rx>UHwE3!7~9Ws$vJsl>_G%}+0| z3ke#R#m&%;#w)(#_(F9%y=pnuz?V)oiCGeE)zuVN7hCG#viI!H?@m-692hWSA-0}# z4Z0+H+46l3RaAjf40T@_{=kZ`2#KVBB+Gw?7TN?hFYl z43h?YG~^&kynID_@h6c27kF0VlgW2YbYdnT5g!N*~0f%Cg)6sv(imB@6w3Mqqh<-NXvyCE8c>jE1iYjDVri))J(A z7DCJu4pjDNf?;NZUxyrNoTBA#Cx6noN+*h^`epZse1oF_yk?9N)M1^i)izvza`CbE z>8TyG4peUINR|l8;{b&o;Hl8{c)Y(#;KJ(Igq!4ZTBfL>Ax9f_jxDf{T{Ie&g)3~T zON*m97OeTT*_~p(*e#jGh!sQ+ZCfsn6{ASBk%SoXY;m`uJ9I5*Y=h;s@5G1O}tYb#hSLMLFA3UrIa*oQH~^c+<$SN z_==+0N3E^Ty-!x(7CimX zbk6bFnU9M6BBd=@4OrbJ?7%&=)~3$ThK|b%ecdL?)zgKl%*5GcE4cet_e7F_V_s^` zpU1JkQ$vlsTrVKZ);bch6Hemsvzs1QtczOw&ds=J{9gRL%y*7&*GnJDft2_!f^)*PBDEM@}-+a^^jHa{Kx@VJi zYkv8|T7N~ilCcb(CT(`?18n&#@`DHmui=l}Eb3i3qgL;i{iNSW9~7w+0yr$tgYNnd zKnO5O8P1ErL0qMj0{?FDAdmszXHjDlJi z(Dsm)KeE_w;AY0_j%?>9{L=uHkhY4 o%JqC@O?RBf{Bz?T2DcMvF*hZmsJHsMtA}W+1YyewXRy!s7bI9>asU7T literal 0 HcmV?d00001 diff --git a/public/static/img/map/ground2.jpg b/public/static/img/map/ground2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..05faaf2581c930cfe6924aaec24550cfbd95a1f7 GIT binary patch literal 2880 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 B.x && + A.y < B.y + B.height && + A.y + A.height > B.y + ); } this.changeParkToString = function (area) { let areaArr = []; @@ -1217,7 +1237,7 @@ MainMap_QM = function (callBack, options) { const uniforms = { "topColor": { value: new THREE.Color( 0x3385ff ) }, "bottomColor": { value: new THREE.Color( 0xffffff ) }, - "offset": { value: 0 }, + "offset": { value: 100 }, "exponent": { value: 0.6 } }; const skyGeo = new THREE.SphereGeometry( this.util.options.maxDis*2, 16, 16 ); @@ -1796,10 +1816,7 @@ MainMap_QM.prototype = { if (fIndex >= Map_QM.util.allMap[bIndex].buildArr.length) { if (bIndex == Map_QM.util.allMap.length - 1) { clearInterval(intTimer); - this.controls.minPan = new THREE.Vector3(this.w / -10, 0, this.h / -10); - this.controls.maxPan = new THREE.Vector3(this.w / 10, 0, this.h / 10); let pathData = Map_QM.util.allMap[parseInt(Map_QM.util.deviceObj.build)].buildArr[parseInt(Map_QM.util.deviceObj.floor)].mapData.path; - if (Map_QM.util.deviceObj.xaxis) { Map_QM.mapArr[parseInt(Map_QM.util.deviceObj.build)][parseInt(Map_QM.util.deviceObj.floor)].setStartSite(Map_QM.util.deviceObj.xaxis, Map_QM.util.deviceObj.yaxis, parseInt(Map_QM.util.shopHeight)); } else { @@ -1919,7 +1936,7 @@ MainMap_QM.prototype = { if (this.util.initModelArr && this.util.initModelArr.length > 0) { this.buildObj.visible = false; } - Map_QM.controls.saveState(); + this.controls.saveState(); this.changeBuild(this.util.deviceObj.build, this.util.deviceObj.floor); this.controls.target.set(this.util.guiOptions.targatX, this.util.guiOptions.targatY, this.util.guiOptions.targatZ); //初始化方向为第一人称方向 @@ -1934,6 +1951,11 @@ MainMap_QM.prototype = { // this.camera.aspect = this.w / this.h; // this.camera.updateProjectionMatrix(); // } + let boundBox = new THREE.Box3(); + boundBox.setFromObject(this.sceneGap); + console.log(boundBox,this.w / 10,this.h / 10); + this.controls.minPan = boundBox.min; + this.controls.maxPan = boundBox.max; this.startRender(); setTimeout(() => { Map_QM.controls.addEventListener('change', this.controlsChock, false); //控制器变化 @@ -4973,6 +4995,7 @@ MainMap_QM.prototype = { TweenMax.killAll(true); Map_QM.util.timeObj.pathTime = setTimeout(() => { clearTimeout(Map_QM.util.timeObj.pathTime); + Map_QM.controls.reset(); if (Map_QM.util.overObj && Map_QM.forShopArr[0]) { Map_QM.util.pathStateObj.isPathPlay = true; Map_QM.clearFloor(); @@ -5001,6 +5024,7 @@ MainMap_QM.prototype = { TweenMax.killAll(true); Map_QM.util.timeObj.pathTime = setTimeout(() => { clearTimeout(Map_QM.util.timeObj.pathTime); + Map_QM.controls.reset(); if (Map_QM.util.overObj) { Map_QM.clearFloor(); Map_QM.onFindPathModel(Map_QM.util.pathStateObj.ftPath); @@ -5032,6 +5056,7 @@ MainMap_QM.prototype = { TweenMax.killAll(true); Map_QM.util.timeObj.pathTime = setTimeout(() => { clearTimeout(Map_QM.util.timeObj.pathTime); + Map_QM.controls.reset(); if (Map_QM.util.overObj) { Map_QM.clearFloor(); Map_QM.onFindPathModel(Map_QM.util.pathStateObj.dtPath); @@ -5063,6 +5088,7 @@ MainMap_QM.prototype = { TweenMax.killAll(true); Map_QM.util.timeObj.pathTime = setTimeout(() => { clearTimeout(Map_QM.util.timeObj.pathTime); + Map_QM.controls.reset(); if (Map_QM.util.overObj) { Map_QM.clearFloor(); Map_QM.onFindPathModel(Map_QM.util.pathStateObj.graphPath); @@ -6133,24 +6159,48 @@ MyModel_QM.prototype.MyPlaneShape = function (areaArr, howllowArr, opObj, entity } let scanGeometry, meshMaterial; scanGeometry = new THREE.ShapeGeometry(shape, 8); - for (let e = 0; e < Map_QM.util.meshMaterialArr.length; e++) { - let color2 = new THREE.Color(entityColor); - if (Map_QM.util.meshMaterialArr[e].color.equals(color2) && Map_QM.util.meshMaterialArr[e].opacity == alphaModle) { - meshMaterial = Map_QM.util.meshMaterialArr[e]; + Map_QM.util.assignUVs(scanGeometry); + if(opObj.map){ + for (let e = 0; e < Map_QM.util.meshMaterialArr.length; e++) { + if (Map_QM.util.meshMaterialArr[e].userData.map == opObj.map) { + meshMaterial = Map_QM.util.meshMaterialArr[e]; + } + } + if (!meshMaterial) { + let texture = new THREE.TextureLoader().load(Map_QM.util.beforPath + "static/img/map/" + opObj.map + ".jpg"); + texture.wrapT = THREE.RepeatWrapping; + texture.repeat.y = -1; + meshMaterial = new THREE.MeshPhongMaterial({ //MeshStandardMaterial MeshPhongMaterial olor: entityColor, + color: entityColor, + map: texture, + transparent: true, + opacity: alphaModle, + side: THREE.DoubleSide, + depthTest: true + }); + meshMaterial.userData.map = opObj.map; + Map_QM.util.meshMaterialArr.push(meshMaterial); + } + }else{ + for (let e = 0; e < Map_QM.util.meshMaterialArr.length; e++) { + let color2 = new THREE.Color(entityColor); + if (Map_QM.util.meshMaterialArr[e].color.equals(color2) && Map_QM.util.meshMaterialArr[e].opacity == alphaModle) { + meshMaterial = Map_QM.util.meshMaterialArr[e]; + } + } + if (!meshMaterial) { + meshMaterial = new THREE.MeshPhongMaterial({ + color: entityColor, + transparent: true, + opacity: alphaModle, + + depthTest: true + }); + Map_QM.util.meshMaterialArr.push(meshMaterial); + } + if (opObj.angleY || opObj.angleZ) { + Map_QM.util.rotateYZ(scanGeometry, opObj.angleY * Math.PI / 180, opObj.angleZ * Math.PI / 180); } - } - if (!meshMaterial) { - meshMaterial = new THREE.MeshPhongMaterial({ - color: entityColor, - transparent: true, - opacity: alphaModle, - - depthTest: true - }); - Map_QM.util.meshMaterialArr.push(meshMaterial); - } - if (opObj.angleY || opObj.angleZ) { - Map_QM.util.rotateYZ(scanGeometry, opObj.angleY * Math.PI / 180, opObj.angleZ * Math.PI / 180); } // 创建模型 let mesh = new THREE.Mesh(scanGeometry, meshMaterial); @@ -6272,7 +6322,7 @@ Facilities_QM = function () { map: spriteMap, depthTest: true, transparent: true, - alphaTest: 0.9 + alphaTest: 0.7 }); spriteMaterial.name = obj.facCode; Map_QM.util.spriteMaterialArr.push(spriteMaterial); diff --git a/public/static/qm/three.js b/public/static/qm/three.js index c0362d5..ffbf176 100644 --- a/public/static/qm/three.js +++ b/public/static/qm/three.js @@ -31604,7 +31604,6 @@ THREE.CSS2DRenderer = function () { var _width, _height; var _widthHalf, _heightHalf; var perc_H = "-50%"; //自定义横向和纵向移动百分比 - var perc_V = "-100%"; var vector = new THREE.Vector3(); var viewMatrix = new THREE.Matrix4(); var viewProjectionMatrix = new THREE.Matrix4(); @@ -36015,7 +36014,20 @@ THREE.OrbitControls = function(object, domElement) { } else if (event.deltaY > 0) { dollyIn(getZoomScale()); } - + + // let mX = (event.clientX / scope.domElement.clientWidth) * 2 - 1; + // let mY = -(event.clientY / scope.domElement.clientHeight) * 2 + 1; + // let vector = new THREE.Vector3(mX, mY, 0); + // vector.unproject(scope.object); + // vector.sub(scope.object.position).setLength(15); + // if (event.deltaY < 0) { + // scope.object.position.add(vector); + // scope.target.add(vector); + // }else { + // scope.object.position.sub(vector); + // scope.target.sub(vector); + // } + scope.update(); }