|
@@ -2,7 +2,7 @@
|
|
|
另外 所有"matter"字样已被我删除 原因:删除matterport信息
|
|
|
*/
|
|
|
|
|
|
-let highMapAddColor = false
|
|
|
+let highMapAddColor = 0//true
|
|
|
let momentTourBlackNewType = false
|
|
|
|
|
|
!function() {
|
|
@@ -18167,15 +18167,14 @@ window.Modernizr = function(n, e, t) {
|
|
|
for (var j = 0; j < 8; j++) {
|
|
|
var tile = new THREE.Mesh(geo, new THREE.MeshBasicMaterial({ side: 2 }))
|
|
|
tile.position.set(i - 3.5, j - 3.5, -4)
|
|
|
-
|
|
|
+
|
|
|
if (highMapAddColor) {
|
|
|
- tile.material.opacity = 0.4
|
|
|
- tile.material.transparent = true
|
|
|
- tile.material.depthTest = tile.material.depthWrite = false //防止chunk比cube近从而被遮
|
|
|
+ tile.material.opacity = 0.4
|
|
|
var colorHue = Math.random()
|
|
|
tile.material.color = new THREE.Color().setHSL(colorHue, 0.6, 0.9)
|
|
|
}
|
|
|
-
|
|
|
+ tile.material.transparent = true
|
|
|
+ tile.material.depthTest = tile.material.depthWrite = false //防止chunk比cube近从而被遮
|
|
|
tile.visible = false
|
|
|
tile.tileX = i
|
|
|
tile.tileY = j
|
|
@@ -18298,7 +18297,7 @@ window.Modernizr = function(n, e, t) {
|
|
|
let needRecover = this.highMapCube.visibleTiles.filter(e => !e.material.map)
|
|
|
|
|
|
if (needRecover.length) {
|
|
|
- let maxCount = 2//common.getBestCount({ name: '4kmaxTileRecover', minCount: 0, maxCount: 2, durBound1: 1.5, durBound2: 6, ifLog: false, maxHistory: 2 })
|
|
|
+ let maxCount = 1//common.getBestCount({ name: '4kmaxTileRecover', minCount: 0, maxCount: 2, durBound1: 1.5, durBound2: 6, ifLog: false, maxHistory: 2 })
|
|
|
let count = 0
|
|
|
needRecover.forEach((e, i) => {
|
|
|
//只更新若干个,因为太耗时了, 其余的等下帧更新
|
|
@@ -18308,39 +18307,15 @@ window.Modernizr = function(n, e, t) {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
- /*if(recoverList.length == 0)this.highMapCube.restNeedRecover = []
|
|
|
- else{
|
|
|
- let maxCount = common.getBestCount({name:'4kmaxTileRecover', minCount : 0, maxCount : 2, durBound1 : 1.5, durBound2 : 6, ifLog:false, maxHistory:2 } )
|
|
|
- let count = 0,index = -1
|
|
|
- recoverList.forEach((e,i)=>{ //只更新若干个,因为太耗时了
|
|
|
- if(count>=maxCount)return
|
|
|
- let r = this.recoverTile(e)
|
|
|
- if(r) count ++
|
|
|
- index = i
|
|
|
- })
|
|
|
- this.highMapCube.restNeedRecover = recoverList.slice(index+1) //其余的等下帧更新
|
|
|
-
|
|
|
-
|
|
|
- }*/
|
|
|
- /* performance.mark('updateTiles-end')
|
|
|
- let measure = performance.measure('updateTiles', 'updateTiles-start', 'updateTiles-end')
|
|
|
- console.log('updateTiles', measure.duration.toFixed(3)) */
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
|
- /* n.prototype.updateHighMap = function(tex, cubeFace, tileX, tileY) {
|
|
|
- //console.log('updateHighMap')
|
|
|
- var tile = this.highMapCube.children[cubeFace].children[tileX * 8 + tileY]
|
|
|
- tile.material.map = tex
|
|
|
- if (highMapAddColor) {
|
|
|
- tile.material.opacity = 1
|
|
|
- tile.material.transparent = false
|
|
|
- }
|
|
|
- tile.visible = true
|
|
|
- tile.material.needsUpdate = true //发现每次开始放大但还未放大到4k时也会把之前加载过的4k加载
|
|
|
- } */
|
|
|
-
|
|
|
-
|
|
|
+ n.prototype.getHighImage = function(image, cubeFace, tileX, tileY){
|
|
|
+ this.gotSomeHighImg = true; //标记,需要马上updateTiles
|
|
|
+ let tile = this.highMapCube.children[cubeFace].children[tileX * 8 + tileY]
|
|
|
+ tile.image = image //先记录下来
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
@@ -18355,24 +18330,24 @@ window.Modernizr = function(n, e, t) {
|
|
|
}
|
|
|
|
|
|
//简易创建贴图
|
|
|
- /* var tex = this.$app.core.get('SceneRenderer').initSizedTexture2D(512, THREE.ClampToEdgeWrapping)
|
|
|
+ var tex = player.sceneRenderer.initSizedTexture2D(512, THREE.ClampToEdgeWrapping)
|
|
|
//var loaded = this.$app.core.get('Player').model.isHighMapLoaded(tile.cubeFace, tile.tileX, tile.tileY)
|
|
|
- this.$app.core.get('SceneRenderer').uploadTexture2D(image, tex, 0, 0, 512, 512) //只替换tex对应的img,不新建
|
|
|
- */
|
|
|
+ player.sceneRenderer.uploadTexture2D(image, tex, 0, 0, 512, 512) //只替换tex对应的img,不新建
|
|
|
+
|
|
|
|
|
|
- var tex = new THREE.Texture()
|
|
|
+ /* var tex = new THREE.Texture()
|
|
|
tex.image = image
|
|
|
tex.flipY = false
|
|
|
tex.wrapS = tex.wrapT = THREE.ClampToEdgeWrapping
|
|
|
tex.generateMipmaps = false
|
|
|
tex.minFilter = THREE.LinearFilter
|
|
|
- tex.needsUpdate = true
|
|
|
+ tex.needsUpdate = true */
|
|
|
|
|
|
tile.material.map = tex
|
|
|
|
|
|
if (highMapAddColor) {
|
|
|
tile.material.opacity = 1
|
|
|
- tile.material.transparent = false
|
|
|
+ //tile.material.transparent = false
|
|
|
}
|
|
|
tile.visible = true
|
|
|
tile.material.needsUpdate = true //发现每次开始放大但还未放大到4k时也会把之前加载过的4k加载
|
|
@@ -18397,26 +18372,23 @@ window.Modernizr = function(n, e, t) {
|
|
|
|
|
|
let map = tile.material.map
|
|
|
if (map) {
|
|
|
- map.dispose() //这句其实无效。本来可以使用three自带的deallocateTexture(texture),但因为创建的方式不是普通的new Texture,所以并没有onTextureDispose的侦听,故要自己写
|
|
|
+ /* map.dispose()
|
|
|
map.loaded = !1
|
|
|
- map.version = 0
|
|
|
-
|
|
|
- //这两句才是真正释放贴图资源的 ,类似app.sceneRenderer.deallocateCubeTexture(tile.material.map)
|
|
|
- var h = player.sceneRenderer.renderer.properties.get(map)
|
|
|
+ map.version = 0 */
|
|
|
+
|
|
|
+ var h = player.sceneRenderer.renderer.properties.get(map)
|
|
|
player.sceneRenderer.renderer.getContext().deleteTexture(h.__webglTexture)
|
|
|
|
|
|
tile.material.map = null
|
|
|
|
|
|
if (highMapAddColor) {
|
|
|
- tile.material.opacity = 0.4
|
|
|
- tile.material.transparent = true
|
|
|
- }
|
|
|
-
|
|
|
+ tile.material.opacity = 0.4
|
|
|
+ }
|
|
|
tile.material.needsUpdate = true
|
|
|
tile.visible = false
|
|
|
|
|
|
//this.highMapCube.texLoadedCount --
|
|
|
- //console.log('resetTile'/* , tile.cubeFace, tile.tileX, tile.tileY */)
|
|
|
+ //console.log('resetTile' , tile.cubeFace, tile.tileX, tile.tileY )
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -19409,7 +19381,13 @@ window.Modernizr = function(n, e, t) {
|
|
|
n.prototype.setZoomed = function(e) {
|
|
|
this.zoomed = e,
|
|
|
this.updateSkyboxForZoomLevel()
|
|
|
- e ? this.model.showHighMap() : this.model.hideHighMap() //add
|
|
|
+ if(e){ //add
|
|
|
+ if(player.qualityManager.getNavZoomClass() != '1k' ){
|
|
|
+ this.model.showHighMap()
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ this.model.hideHighMap()
|
|
|
+ }
|
|
|
}
|
|
|
,
|
|
|
n.prototype.ensureSkyboxReadyForRender = function() {
|
|
@@ -24280,7 +24258,7 @@ window.Modernizr = function(n, e, t) {
|
|
|
if (!this.panoRenderer.zoomPanoRenderingDisabled && this.mode === u.PANORAMA && this.currentPano) {
|
|
|
let navTileClass = this.qualityManager.getNavZoomClass()
|
|
|
let tileClass = this.qualityManager.getMaxZoomClass()
|
|
|
- let levelThreshold1 = navTileClass == '1k' ? 1.3 : 1.8 , levelThreshold2 = 2 //levelThreshold2不能比zoom.max大也就是不能超过2,否则zoom.max将无法提升到3
|
|
|
+ let levelThreshold1 = navTileClass == '1k' ? 1.1 : 1.5 , levelThreshold2 = 1.7 //levelThreshold2不能比zoom.max大也就是不能超过2,否则zoom.max将无法提升到3
|
|
|
|
|
|
var t = this.zoomLevel > levelThreshold1
|
|
|
, i = this.flying && this.nextPano && this.nextPano !== this.currentPano
|
|
@@ -24322,7 +24300,12 @@ window.Modernizr = function(n, e, t) {
|
|
|
var change = (zoomedFlag)=>{
|
|
|
this.qualityManager.updateMaximums()//更新maxZoomPanoSize
|
|
|
this.panoRenderer.setupZoomRenderTarget() //更新renderTarget
|
|
|
- //this.currentPano.setZoomed(t);//更新uniforms贴图
|
|
|
+ if(this.qualityManager.zoomLevelResolution == '4k'){
|
|
|
+ this.model.showHighMap()
|
|
|
+ }else{
|
|
|
+ this.model.hideHighMap()
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
this.qualityManager.zoomLevelResolution = this.zoomLevel >= levelThreshold2 ? '4k' : this.zoomLevel > levelThreshold1? '2k' : '1k'
|
|
|
|
|
@@ -28036,6 +28019,10 @@ window.Modernizr = function(n, e, t) {
|
|
|
var e = {}
|
|
|
, t = (new h.Vector4,
|
|
|
d.tiling.overlayStyle);
|
|
|
+
|
|
|
+ //var failHistory = {};
|
|
|
+
|
|
|
+
|
|
|
return function(i, n) {
|
|
|
var r = i.panoId
|
|
|
, o = i.image
|
|
@@ -28056,6 +28043,7 @@ window.Modernizr = function(n, e, t) {
|
|
|
, y = v.size;
|
|
|
if (this.isPanoZoomed(r) && (A = this.zoomRenderTarget,
|
|
|
y = A.width), //this.qualityManager.getMaxZoomPanoSize()),
|
|
|
+
|
|
|
this.isRenderTargetDescriptorValid(v) || (p = !1,
|
|
|
g = !1),
|
|
|
n || (this.anyUploaded(i.node) && (p = !1,
|
|
@@ -28063,26 +28051,29 @@ window.Modernizr = function(n, e, t) {
|
|
|
this.isTileUploaded(i) && (p = !1,
|
|
|
g = !1)),
|
|
|
p) {
|
|
|
+
|
|
|
+ /* if(failHistory[''+r+s+l]){
|
|
|
+ console.log('uploadTile retry', r, s, l)
|
|
|
+ }
|
|
|
+
|
|
|
+ console.log('uploadTile 成功', r, s, l)
|
|
|
+ */
|
|
|
+
|
|
|
var C = u * a
|
|
|
, I = d * a
|
|
|
, E = a / s * y
|
|
|
, b = C / s * y
|
|
|
, w = I / s * y;
|
|
|
- e[a] || (e[a] = this.sceneRenderer.initSizedTexture2D(a, h.ClampToEdgeWrapping));
|
|
|
- //var _ = e[a];
|
|
|
- if(s > this.qualityManager.maxRenderTargetSize ){ //4096 改
|
|
|
- var _ = this.sceneRenderer.initSizedTexture2D(a, THREE.ClampToEdgeWrapping);
|
|
|
- //var loaded = player.model.isHighMapLoaded(i.cubeFace, u,d)
|
|
|
- }else{
|
|
|
- var _ = e[a]
|
|
|
- }
|
|
|
-
|
|
|
- this.sceneRenderer.uploadTexture2D(o, _, 0, 0, a, a)
|
|
|
+
|
|
|
if (s > this.qualityManager.maxRenderTargetSize) {
|
|
|
|
|
|
- /* loaded || */ player.model.updateHighMap(o, i.cubeFace, u, d)
|
|
|
+ player.model.getHighImage(o, i.cubeFace, u, d)
|
|
|
|
|
|
}else{
|
|
|
+ e[a] || (e[a] = this.sceneRenderer.initSizedTexture2D(a, h.ClampToEdgeWrapping));
|
|
|
+ var _ = e[a]
|
|
|
+ this.sceneRenderer.uploadTexture2D(o, _, 0, 0, a, a)
|
|
|
+
|
|
|
if ( 1 === t || 2 === t) {
|
|
|
var T = 1 === t ? this.overlayTilesBasic : this.overlayTilesEnhanced;
|
|
|
this.sceneRenderer.renderToCubeMap(_, A, a, a, 0, 0, a, a, b, w, E, E, i.cubeFace),
|
|
@@ -28095,8 +28086,12 @@ window.Modernizr = function(n, e, t) {
|
|
|
m.uploadCount === c && this.emit(f.PanoRenderComplete, r, s, c),
|
|
|
this.setUploaded(i, !0),
|
|
|
this.addCoverageForNode(i.node)
|
|
|
- } else
|
|
|
+ } else{
|
|
|
this.setUploaded(i, !1);
|
|
|
+ //console.log('uploadTile 失败', r, s, l)
|
|
|
+ //failHistory[''+r+s+l] = true;
|
|
|
+
|
|
|
+ }
|
|
|
return i.uploadAttempted || (m.uploadAttempts++,
|
|
|
this.emit(f.TileUploadAttempted, r, s, l, c)),
|
|
|
i.uploadAttempted = !0,
|