亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Cesium 3DTiles分層分戶抽屜實(shí)現(xiàn):從節(jié)點(diǎn)遍歷到動(dòng)畫完整指南

Cesium 3DTiles分層分戶抽屜實(shí)現(xiàn):從節(jié)點(diǎn)遍歷到動(dòng)畫完整指南 去年接了個(gè)房產(chǎn)數(shù)字化項(xiàng)目客戶提的需求很簡(jiǎn)單一棟樓的3DTiles模型要能像抽屜一樣點(diǎn)某層就“抽”出來(lái)露出里面的戶型結(jié)構(gòu)。聽起來(lái)不難真正動(dòng)手才發(fā)現(xiàn)Cesium里做分層分戶抽屜牽涉到數(shù)據(jù)組織方式、glTF節(jié)點(diǎn)訪問(wèn)、矩陣變換、動(dòng)畫插值這一整套鏈路任何一個(gè)環(huán)節(jié)沒(méi)想清楚都會(huì)卡殼。這篇文章把我完整的實(shí)現(xiàn)思路、核心代碼、以及調(diào)試中踩過(guò)的坑全部整理出來(lái)給準(zhǔn)備做同類功能的同學(xué)一條可行的捷徑。1. 先想清楚再做兩條技術(shù)路線怎么選1.1 分層分戶抽屜到底在解決什么問(wèn)題先說(shuō)場(chǎng)景。這類功能最常見于房產(chǎn)售樓系統(tǒng)、樓宇招商平臺(tái)、物業(yè)管理后臺(tái)和應(yīng)急疏散演練。整棟樓以Cesium 3DTiles格式加載到三維地球后用戶需要按樓層查看甚至按戶型查看。傳統(tǒng)做法是“切剖”用剖切面把樓體切開但這種方式對(duì)操作要求高普通用戶根本玩不轉(zhuǎn)。抽屜效果把“剖切”變成“抽拉”——樓層從樓體中水平滑出內(nèi)部戶型自然暴露交互直覺(jué)非常清晰。本質(zhì)上是解決三維模型的信息層級(jí)展示問(wèn)題樓棟、樓層、戶三元層級(jí)用戶需要自由下鉆又不能丟失整體空間位置關(guān)系。1.2 方案A模型預(yù)處理拆分把BIM模型Revit、SketchUp、Blender都行按樓層拆分分別導(dǎo)出切片成多個(gè)3DTiles每個(gè)樓層是一個(gè)獨(dú)立的tileset.json。前端維護(hù)一個(gè)樓層數(shù)組點(diǎn)擊樓層時(shí)設(shè)置對(duì)應(yīng)tileset的偏移量實(shí)現(xiàn)抽屜效果。優(yōu)點(diǎn)很突出每個(gè)樓層獨(dú)立加載按需流式加載內(nèi)存占用小可以做精確的樓層權(quán)限控制比如某層只有特定用戶能看修改某層模型只需重新生成該層的3DTiles不用全量重出抽屜動(dòng)畫簡(jiǎn)單只需要改tileset.modelMatrix缺點(diǎn)同樣明顯建模階段就要把樓層拆開如果模型已經(jīng)是一個(gè)整體拆分工作量大樓層之間的“縫”容易在視覺(jué)上接不上后續(xù)新增樓層要重新走一遍生產(chǎn)管線。1.3 方案B單模型加節(jié)點(diǎn)變換模型保持原始完整結(jié)構(gòu)導(dǎo)出一個(gè)3DTiles在前端加載后通過(guò)訪問(wèn)glTF內(nèi)部節(jié)點(diǎn)對(duì)單個(gè)樓層節(jié)點(diǎn)做矩陣變換。Cesium 3DTiles內(nèi)部的b3dm、glTF是有節(jié)點(diǎn)樹結(jié)構(gòu)的BIM模型如果命名規(guī)范樓層和戶型都能按名稱找到。優(yōu)點(diǎn)原始模型不拆避免接縫問(wèn)題和數(shù)據(jù)重復(fù)運(yùn)行時(shí)可動(dòng)態(tài)控制任意粒度的節(jié)點(diǎn)樓層、戶型、墻體都能動(dòng)適合做交互式拆解抽屜只是其中一種動(dòng)畫形式缺點(diǎn)依賴模型內(nèi)部命名規(guī)范命名混亂時(shí)定位節(jié)點(diǎn)非常痛苦前期開發(fā)調(diào)試成本高3DTiles節(jié)點(diǎn)樹不是直觀可見的DOM樹數(shù)據(jù)量大的樓棟一次性加載壓力大我做項(xiàng)目時(shí)最終選了方案B為主、方案A為輔的混合策略樓體整體加載但在建模階段就要求Revit導(dǎo)出的模型按樓層命名了節(jié)點(diǎn)。如果你的項(xiàng)目模型還沒(méi)建強(qiáng)烈建議在建模階段就做節(jié)點(diǎn)命名規(guī)范后面省的時(shí)間遠(yuǎn)大于前期溝通成本。對(duì)比項(xiàng)方案A預(yù)處理拆層方案B單模型節(jié)點(diǎn)變換模型改動(dòng)量大需要按樓層拆模導(dǎo)出小只需規(guī)范命名加載策略每層獨(dú)立流式整棟加載動(dòng)畫控制控制tileset整體位移控制內(nèi)部節(jié)點(diǎn)位移權(quán)限控制天然支持按層加載需要額外邏輯開發(fā)調(diào)試成本低較高適合場(chǎng)景超大體量樓宇、需權(quán)限隔離中等體量、交互拆解為主2. 數(shù)據(jù)側(cè)準(zhǔn)備確保節(jié)點(diǎn)能拿到、能識(shí)別2.1 控制好3DTiles的生產(chǎn)參數(shù)模型導(dǎo)出3DTiles時(shí)有幾個(gè)參數(shù)直接影響你能不能做分層分戶。不要設(shè)置clampToGround: true。一旦貼地放置所有樓層會(huì)被壓扁到地表高度信息丟失分層無(wú)從談起。保留模型原始地理坐標(biāo)和高度生成后檢查tileset的boundingSphere是否覆蓋了樓體的完整高度范圍。不要過(guò)度壓縮幾何。有些轉(zhuǎn)換工具默認(rèn)開Draco壓縮壓縮后節(jié)點(diǎn)層級(jí)和名稱可能丟失。我用的生產(chǎn)鏈路是Revit導(dǎo)出FBX - gltf-pipeline轉(zhuǎn)glTF - 3D Tiles工具切片。FBX轉(zhuǎn)glTF時(shí)保留節(jié)點(diǎn)層級(jí)之后切片到3DTiles時(shí)節(jié)點(diǎn)名仍然能保留。網(wǎng)上很多人在問(wèn)“shp轉(zhuǎn)3dtiles”“fbx轉(zhuǎn)3dtiles”“cesium模型可以直接加載su嗎”——如果你是從GIS數(shù)據(jù)轉(zhuǎn)通常沒(méi)有內(nèi)部節(jié)點(diǎn)概念如果是建筑模型su、fbx、rvt節(jié)點(diǎn)名是保留的。傾斜攝影模型基本沒(méi)有語(yǔ)義化節(jié)點(diǎn)直接放棄方案B先用單體化處理或手工重建簡(jiǎn)化模型。2.2 給樓層和戶型的命名約定這是整個(gè)項(xiàng)目的隱性關(guān)鍵。Demo模型隨便起名無(wú)所謂生產(chǎn)項(xiàng)目必須約定樓層節(jié)點(diǎn)統(tǒng)一前綴floor_1、floor_2、floor_3戶型節(jié)點(diǎn)統(tǒng)一前綴room_1_11層1號(hào)房、room_1_2公共區(qū)域lobby_1代表1層大堂遍歷節(jié)點(diǎn)時(shí)通過(guò)名稱解析比通過(guò)位置計(jì)算穩(wěn)定得多。有一版我在沒(méi)有命名規(guī)范的情況下只能靠節(jié)點(diǎn)包圍盒的高度反推樓層一旦模型有地下層、夾層、設(shè)備層反推邏輯寫到你懷疑人生。2.3 沒(méi)有規(guī)范命名的兜底方案老模型實(shí)在改不了也不是完全沒(méi)救??梢园垂?jié)點(diǎn)包圍盒中心點(diǎn)的Z坐標(biāo)來(lái)分層function getFloorIndexFromNode(node, baseHeight, floorHeight) { const boundingSphere node.boundingVolume?.boundingSphere; if (!boundingSphere) return null; const centerHeight boundingSphere.center.z; const index Math.round((centerHeight - baseHeight) / floorHeight); return index; }baseHeight取樓棟最低點(diǎn)floorHeight取標(biāo)準(zhǔn)層高。注意地下層需要另做映射比如地下室層高4.5米、地上標(biāo)準(zhǔn)層高3米混在一起計(jì)算會(huì)錯(cuò)位。這種方案適合應(yīng)急驗(yàn)證生產(chǎn)環(huán)境我不推薦。3. 抽屜效果的本質(zhì)兩套“移動(dòng)”邏輯3.1 抽屜是純平移不是旋轉(zhuǎn)也不是縮放很多人第一次做拆解動(dòng)畫會(huì)想到旋轉(zhuǎn)展開——像門一樣打開。但抽屜效果的本質(zhì)是純平移把目標(biāo)樓層沿某個(gè)水平方向平移到樓體輪廓外同時(shí)保證平移方向可預(yù)測(cè)、可逆。平移的距離單位是米。Cesium的笛卡爾坐標(biāo)Cartesian3單位是米但注意你操作的是地心坐標(biāo)系下的絕對(duì)坐標(biāo)還是模型局部坐標(biāo)。平移樓層時(shí)正確做法是在模型局部坐標(biāo)系里做偏移再通過(guò)模型矩陣轉(zhuǎn)換到世界坐標(biāo)。3.2 平移作用在哪個(gè)層級(jí)這是容易混淆的地方平移整個(gè)tileset通過(guò)tileset.modelMatrix做但這樣整棟樓一起動(dòng)不是分層分戶平移某個(gè)樓層對(duì)應(yīng)的glTF節(jié)點(diǎn)推薦方案平移戶型子節(jié)點(diǎn)需要拿到樓層節(jié)點(diǎn)下的子節(jié)點(diǎn)逐個(gè)處理在Cesium的3DTiles內(nèi)部每個(gè)tile的content可能是b3dm、pnts等格式。b3dm內(nèi)部包含一個(gè)glTF模型這個(gè)模型的節(jié)點(diǎn)樹才是我們操作的對(duì)象。舊版本Cesium可以通過(guò)tileset._root._content._model._getNodeByName(name)拿節(jié)點(diǎn)不同版本內(nèi)部結(jié)構(gòu)有差異這一點(diǎn)項(xiàng)目里一定要鎖定Cesium版本。3.3 動(dòng)畫插值決定手感抽屜不能“瞬移”要能看到抽拉過(guò)程。Cesium沒(méi)有內(nèi)置補(bǔ)間動(dòng)畫器我采用viewer.clock.onTick監(jiān)聽每一幀根據(jù)時(shí)間差計(jì)算插值系數(shù)再用矩陣運(yùn)算設(shè)置節(jié)點(diǎn)的位移量。插值系數(shù)用簡(jiǎn)單的線性插值就能看但視覺(jué)偏生硬。稍微好一點(diǎn)用緩動(dòng)函數(shù)function easeInOutCubic(t) { return t 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t 2, 3) / 2; }實(shí)測(cè)下來(lái)抽屜動(dòng)畫用easeInOutCubic或easeOutQuad觀眾視覺(jué)感受最舒服拉開的前半段稍快快到位時(shí)剎住很像真實(shí)抽屜的慣性感。4. 可復(fù)現(xiàn)的完整代碼加載3DTiles并實(shí)現(xiàn)分層分戶抽屜4.1 場(chǎng)景初始化和3DTiles加載先初始化Viewer關(guān)閉不相關(guān)的默認(rèn)控件加載tileset時(shí)關(guān)閉clampToGround并把maximumScreenSpaceError調(diào)大減少渲染壓力。const viewer new Cesium.Viewer(cesiumContainer, { animation: false, timeline: false, terrainProvider: Cesium.createWorldTerrainAsync() }); // 背景和光照的調(diào)整讓模型內(nèi)部結(jié)構(gòu)看得更清楚 viewer.scene.globe.baseColor Cesium.Color.fromCssColorString(#2b2b2b); viewer.scene.light new Cesium.DirectionalLight({ direction: new Cesium.Cartesian3(-0.5, -0.5, -1), intensity: 0.8 }); const tileset await Cesium.Cesium3DTileset.fromUrl(/data/building/tileset.json); tileset.maximumScreenSpaceError 16; viewer.scene.primitives.add(tileset); await viewer.zoomTo(tileset, new Cesium.HeadingPitchRange(0, -0.6, 300));這里zoomTo不只是起飛視角它會(huì)讓相機(jī)定位到tileset包圍球適合觀看的位置。注意createWorldTerrainAsync是異步的如果不需要地形可以去掉直接Cesium.Cartesian3.fromDegrees設(shè)置相機(jī)位置。4.2 等3DTiles加載完成再遍歷節(jié)點(diǎn)這是新手最容易踩的坑3DTiles是流式加載的馬上遍歷tileset.root時(shí)內(nèi)部幾何可能還沒(méi)到位。需要等待加載完成。await Cesium.when(tileset.readyPromise, async () { // 確保所有待加載的Tile都渲染完成 const allLoaded () tileset.root.contentReady || tileset.root.contentAvailable; // 簡(jiǎn)單穩(wěn)妥做法均勻延時(shí)輪詢檢查 await waitForTilesLoad(tileset); setupFloorNodes(tileset); });waitForTilesLoad是一個(gè)輪詢函數(shù)檢查tileset._root._content是否存在且content._model已創(chuàng)建。注意_root開頭的方法都是Cesium內(nèi)部API新版本可能變化生產(chǎn)代碼要鎖定版本并包一層Try-Catch。4.3 遍歷glTF節(jié)點(diǎn)收集樓層拿到模型對(duì)象后按命名約定遍歷節(jié)點(diǎn)。我封裝了一個(gè)按名稱前綴匹配節(jié)點(diǎn)的函數(shù)function findNodesByPrefix(model, prefix) { const matched []; model._getNodeNames?.()?.forEach((name) { if (name.startsWith(prefix)) { matched.push({ name, node: model._getNodeByName(name) }); } }); return matched; }有些Cesium版本沒(méi)有_getNodeNames就手動(dòng)遞歸遍歷model._rootNode的childrenfunction traverseGltfNode(node, callback) { if (!node) return; callback(node); const children node._children || node.children; if (children) { children.forEach(child traverseGltfNode(child, callback)); } }遍歷時(shí)注意glTF節(jié)點(diǎn)的訪問(wèn)要用內(nèi)部屬性和3DTiles的tile節(jié)點(diǎn)是兩套體系。收集后保存每個(gè)節(jié)點(diǎn)的初始矩陣抽屜動(dòng)畫結(jié)束后要能恢復(fù)。4.4 核心樓層抽屜動(dòng)畫控制構(gòu)建一個(gè)狀態(tài)機(jī)保存每個(gè)樓層的節(jié)點(diǎn)、初始矩陣、當(dāng)前偏移量、動(dòng)畫狀態(tài)const floorState {}; function setupFloorNodes(tileset) { const model tileset.root.content.model || tileset._root._content._model; if (!model) return; const floorPrefix floor_; const roomPrefix room_; // 遍歷模型節(jié)點(diǎn)找到所有樓層 traverseGltfNode(model._rootNode, (node) { if (node.name node.name.startsWith(floorPrefix)) { floorState[node.name] { node: node, originMatrix: node.matrix.clone(), offsetX: 0, isOpen: false, animation: null }; } }); }有了樓層節(jié)點(diǎn)做抽屜動(dòng)畫就是修改node.matrix。注意不能直接改節(jié)點(diǎn)的position屬性因?yàn)間lTF節(jié)點(diǎn)的position是局部坐標(biāo)而我們需要的是相對(duì)模型的局部平移。正確做法是初始矩陣乘以平移矩陣。function setFloorOffset(floorName, offsetX, offsetY, offsetZ) { const state floorState[floorName]; if (!state) return; const translationMatrix Cesium.Matrix4.fromTranslation( new Cesium.Cartesian3(offsetX, offsetY, offsetZ) ); const newMatrix Cesium.Matrix4.multiply( state.originMatrix, translationMatrix, new Cesium.Matrix4() ); state.node.matrix newMatrix; state.offsetX offsetX; }抽屜效果的位移方向我選擇沿X軸建筑開間方向向外平移。不同的模型在建模軟件里朝向可能不同上線前要確認(rèn)平移方向?qū)τ脩趔w驗(yàn)友好。如果模型不是正北朝向用世界坐標(biāo)偏移會(huì)出現(xiàn)斜向抽拉最好在局部坐標(biāo)系做ENU變換。4.5 抽屜動(dòng)畫插值實(shí)現(xiàn)定義抽屜拉開角度/距離然后用時(shí)間差驅(qū)動(dòng)插值。這里我用viewer.clock.onTick做幀監(jiān)聽function animateFloorDrawer(floorName, targetDistance, duration 1.0) { const state floorState[floorName]; if (!state) return; const startTime Cesium.JulianDate.now(); const startOffset state.offsetX; const targetOffset targetDistance; if (state.animation) { viewer.clock.onTick.removeEventListener(state.animation); } const update (clock) { const currentTime clock.currentTime; const ratio Math.min( Cesium.JulianDate.secondsDifference(currentTime, startTime) / duration, 1.0 ); const eased easeInOutCubic(ratio); const newOffset startOffset (targetOffset - startOffset) * eased; setFloorOffset(floorName, newOffset, 0, 0); if (ratio 1.0) { viewer.clock.onTick.removeEventListener(update); state.animation null; state.isOpen targetOffset ! 0; } }; state.animation update; viewer.clock.onTick.addEventListener(update); }這里有一個(gè)很重要的點(diǎn)Cesium的onTick事件在所有渲染幀都會(huì)觸發(fā)如果多個(gè)樓層同時(shí)動(dòng)畫會(huì)有多個(gè)閉包同時(shí)存在注意清理監(jiān)聽器避免內(nèi)存泄漏。我在state.animation里保存了當(dāng)前動(dòng)畫函數(shù)新動(dòng)畫啟動(dòng)時(shí)先移除舊的。4.6 實(shí)現(xiàn)整棟樓的“全拉出”和“全收回”實(shí)際業(yè)務(wù)中用戶不止是單層抽拉還有“一鍵全部拉開”的需求。做法就是遍歷所有樓層先統(tǒng)一計(jì)算每個(gè)樓層抽屜的展開方向和距離避免層與層重疊然后逐層做動(dòng)畫錯(cuò)開啟動(dòng)時(shí)間形成順序推拉的節(jié)奏function openAllDrawers(distance 30, staggerDelay 120) { const floorNames Object.keys(floorState); floorNames.forEach((name, index) { setTimeout(() { animateFloorDrawer(name, distance, 0.8); }, index * staggerDelay); }); }4.7 點(diǎn)擊樓層實(shí)現(xiàn)交互最簡(jiǎn)單實(shí)用的方式不是直接拾取3DTiles節(jié)點(diǎn)而是給每個(gè)樓層添加一個(gè)透明拾取盒子。因?yàn)?DTiles內(nèi)部的glTF節(jié)點(diǎn)拾取在不同的Cesium版本表現(xiàn)不穩(wěn)定透明盒子方案穩(wěn)定且易于控制還可以加點(diǎn)擊反饋和描邊。function createFloorPickBox(floorName, centerPosition, dimensions) { const entity viewer.entities.add({ name: pick_${floorName}, position: Cesium.Cartesian3.fromDegrees(centerPosition.lng, centerPosition.lat, centerPosition.height), box: { dimensions: new Cesium.Cartesian3(dimensions.x, dimensions.y, dimensions.z), material: Cesium.Color.WHITE.withAlpha(0), outline: false }, properties: { floorName: floorName } }); return entity; } const handler new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas); handler.setInputAction((movement) { const picked viewer.scene.pick(movement.position); if (picked?.id?.properties?.floorName) { const floorName picked.id.properties.floorName.getValue(); toggleFloorDrawer(floorName); } }, Cesium.ScreenSpaceEventType.LEFT_CLICK);toggleFloorDrawer里根據(jù)isOpen狀態(tài)決定是拉出還是收回。點(diǎn)擊盒子所在樓層后如果已經(jīng)展開就收回否則就展開。4.8 相機(jī)跟隨與定位抽屜拉出后相機(jī)要能自動(dòng)聚焦到被拉出的樓層。Cesium提供了viewer.flyTo來(lái)定位到實(shí)體但3DTiles內(nèi)部的節(jié)點(diǎn)沒(méi)有直接對(duì)外的Entity。需要手動(dòng)計(jì)算節(jié)點(diǎn)包圍盒的中心function flyToFloor(floorName, offset 50) { const state floorState[floorName]; if (!state) return; // 節(jié)點(diǎn)本身是glTF節(jié)點(diǎn)拿不到transform后的世界位置 // 用節(jié)點(diǎn)包圍盒中心 當(dāng)前tileset的modelMatrix換算 const tilesetPosition tileset.boundingSphere.center; const worldPosition Cesium.Matrix4.multiplyByPoint( tileset.modelMatrix, tilesetPosition, new Cesium.Cartesian3() ); viewer.camera.flyTo({ destination: Cesium.Cartesian3.fromDegrees( Cesium.Math.toDegrees(worldPosition.longitude), Cesium.Math.toDegrees(worldPosition.latitude), worldPosition.height offset ), orientation: { heading: 0, pitch: Cesium.Math.toRadians(-45), roll: 0 }, duration: 0.8 }); }5. 實(shí)際項(xiàng)目里容易踩的六個(gè)坑5.1 allTilesLoaded永遠(yuǎn)不觸發(fā)很多教程都告訴你tileset.allTilesLoaded事件可以判斷加載完成但這個(gè)事件在相機(jī)視角不斷變化、Tile不斷被替換時(shí)會(huì)反復(fù)觸發(fā)甚至不觸發(fā)。穩(wěn)妥做法是不等這個(gè)事件而是用輪詢檢查tileset.root._content是否存在并已有_model配合一個(gè)超時(shí)上限。我在項(xiàng)目中用了50次輪詢間隔100毫秒5秒內(nèi)還沒(méi)拿到模型就報(bào)錯(cuò)提示。5.2 修改了matrix但不生效或閃跳修改glTF節(jié)點(diǎn)node.matrix在大多數(shù)Cesium版本下一幀生效但如果修改的是_content里尚未加載完成的node操作會(huì)被后續(xù)的tile加載覆蓋。解決辦法確認(rèn)在拿到_model之后再獲取節(jié)點(diǎn)并保存初始矩陣動(dòng)畫期間避免攝像頭大幅視角切換觸發(fā)新的Tile細(xì)化。如果遇到修正了matrix又跳回原位檢查是否修改的是node.transform而不是node.matrix。兩者區(qū)別node.transform是glTF規(guī)范的標(biāo)準(zhǔn)屬性為Matrix4node.matrix是Cesium對(duì)節(jié)點(diǎn)變換的內(nèi)部存儲(chǔ)舊版本Cesium中操作的是node.matrix新版里node.transform更穩(wěn)定。5.3 抽屜拉開后樓層之間穿模這是最影響觀感的問(wèn)題。單純平移只能拉開抽屜但相鄰樓層之間的公共墻、管線還是會(huì)穿幫。兩個(gè)針對(duì)手段平移距離必須大于被拉出樓層的最大輪廓尺寸讓樓層完全脫離樓體輪廓剪裁平面配合在樓體側(cè)面設(shè)置一個(gè)或多個(gè)ClippingPlane把當(dāng)前樓體內(nèi)部被遮擋的部分“切掉”const plane new Cesium.ClippingPlane( new Cesium.Cartesian3(0, 1, 0), // 法線方向 clipDistance );注意ClippingPlane是無(wú)限平面要配準(zhǔn)確的法線和距離否則會(huì)把樓體外部也切了。我實(shí)測(cè)的結(jié)論動(dòng)畫時(shí)長(zhǎng)在0.8秒時(shí)剪裁平面跟隨抽屜距離線性移動(dòng)視覺(jué)上幾乎看不到穿模。5.4 平移距離的米制換算問(wèn)題抽屜拉開距離不能拍腦袋定要根據(jù)模型的實(shí)際寬度算。比如樓體沿X軸方向?qū)挾葹?2米那么拉出至少35米。用tileset.boundingSphere.radius * 2可以粗略估算樓體寬度更精確的做法是獲取樓層節(jié)點(diǎn)的包圍盒尺寸const boundingSphere Cesium.BoundingSphere.fromBoundingSphere( // 部分版本節(jié)點(diǎn)有boundingVolume state.node.boundingVolume?.boundingSphere );如果拿不到node級(jí)包圍盒就用tileset的整體包圍盒乘以縮放系數(shù)。開發(fā)階段在UI上加一個(gè)distance滑動(dòng)條動(dòng)態(tài)調(diào)整是最好的調(diào)參方式。5.5 傾斜攝影模型根本做不了節(jié)點(diǎn)抽屜很多網(wǎng)友搜“cesium傾斜攝影”進(jìn)來(lái)想給傾斜攝影模型做分層分戶。這里必須潑冷水傾斜攝影的3DTiles是密集Mesh沒(méi)有語(yǔ)義化的樓層節(jié)點(diǎn)node名全是隨機(jī)字符串。要做分層分戶只能用單體化工具把傾斜模型按建筑底面切割或者重建簡(jiǎn)模BIM手工建模/自動(dòng)建?;蛘邔?duì)OSGB數(shù)據(jù)進(jìn)行壓平和分類傾斜攝影適合全貌查看、量測(cè)不適合做精細(xì)分層。我把這個(gè)寫在文章里希望做選型時(shí)少走彎路。5.6 Cesium版本差異是最大的隱藏成本1.x階段Cesium迭代非???DTiles內(nèi)部實(shí)現(xiàn)頻繁調(diào)整。項(xiàng)目里用某版本寫好的_root._content._model._getNodeByName過(guò)兩個(gè)季度升級(jí)Cesium后可能完全失效。項(xiàng)目經(jīng)驗(yàn)鎖定Cesium版本升級(jí)做專項(xiàng)回歸。每次升級(jí)先跑節(jié)點(diǎn)遍歷自測(cè)再跑抽屜動(dòng)畫最后檢查相機(jī)拾取。6. 從抽屜到成品我的落地功能清單和建議擴(kuò)展6.1 基礎(chǔ)功能清單最終交付給客戶時(shí)做的分層分戶抽屜功能包含以下模塊模塊實(shí)現(xiàn)方式優(yōu)先級(jí)樓層抽屜點(diǎn)擊樓層水平拉出P0一鍵全展開/全收回全部樓層順序拉出P0樓層定位拉出后相機(jī)跟隨P1戶型高亮拉出后對(duì)應(yīng)戶型變色P1信息面板點(diǎn)擊戶型顯示面積/戶主P1剖切聯(lián)動(dòng)樓層展開時(shí)自動(dòng)剖切遮擋P26.2 結(jié)合單體化做戶型信息聯(lián)動(dòng)傾斜攝影做不了抽屜但是正射場(chǎng)景結(jié)合“單體化”可以做戶型點(diǎn)擊信息聯(lián)動(dòng)。所謂單體化本質(zhì)上是對(duì)3DTiles的Feature增加屬性讓前端通過(guò)Cesium3DTileFeature讀取batchId對(duì)應(yīng)的屬性值然后彈窗顯示。這個(gè)和抽屜效果可以混搭樓體用BIM做抽屜周邊環(huán)境用傾斜攝影做單體化房地產(chǎn)項(xiàng)目經(jīng)常這么組合。6.3 配合動(dòng)態(tài)光照和熱力圖做營(yíng)銷效果抽屜效果做出來(lái)后客戶往往會(huì)追加兩類效果一是動(dòng)態(tài)光照模擬一天內(nèi)太陽(yáng)光移動(dòng)照射到拉出的樓層和戶型售樓處大屏上效果拔群。實(shí)現(xiàn)上用viewer.scene.light的direction隨時(shí)間變化即可注意在太陽(yáng)轉(zhuǎn)至建筑背面時(shí)室內(nèi)光線過(guò)暗需要加環(huán)境光保底。二是熱力圖按樓層/戶型展示認(rèn)購(gòu)率、空置率??梢栽诘孛姣B加一個(gè)熱力圖圖層也可以給已售戶型做顏色覆蓋。數(shù)據(jù)量小時(shí)用Entity的Polygon拾取數(shù)據(jù)量大時(shí)用GeoJSON加載再樣式映射。6.4 鷹眼和聯(lián)動(dòng)定位詳情頁(yè)和總覽頁(yè)之間需要“鷹眼”地圖做定位反饋。Cesium實(shí)現(xiàn)鷹眼最簡(jiǎn)單方式是用一個(gè)右下角的小Cesium.Viewer跟隨主相機(jī)同步視角或者用2D地圖如Leaflet做同步定位。我項(xiàng)目里用的是第二個(gè)Viewer同步的方式代碼量少且可以支持3D聯(lián)動(dòng)視角。6.5 穩(wěn)定性和老舊設(shè)備降級(jí)抽屜動(dòng)畫底層依賴每幀矩陣計(jì)算老舊電腦或?yàn)g覽器如果不支持WebGL 2.0大概率白屏卡頓。建議做能力檢測(cè)const canvas document.createElement(canvas); const gl canvas.getContext(webgl2) || canvas.getContext(webgl); if (!gl) { // 提示用戶升級(jí)瀏覽器或使用支持WebGL的設(shè)備 }同時(shí)把Cesium的scene.debugShowFramesPerSecond暴露給內(nèi)部測(cè)試目標(biāo)設(shè)備上幀率低于25fps時(shí)降低maximumScreenSpaceError并減少同時(shí)展開的樓層數(shù)。我自己在這個(gè)項(xiàng)目里最后沉淀下來(lái)的體會(huì)是分層分戶抽屜談不上高深算法但非??简?yàn)工程串聯(lián)能力。數(shù)據(jù)側(cè)命名規(guī)范能省一半前端時(shí)間模型側(cè)層級(jí)結(jié)構(gòu)決定你能做多細(xì)的節(jié)點(diǎn)控制而前端側(cè)把矩陣變換、動(dòng)畫插值和拾取交互想清楚就成功了大半。如果你正準(zhǔn)備做這個(gè)功能建議先拿一個(gè)命名規(guī)范的測(cè)試模型跑通節(jié)點(diǎn)遍歷和矩陣動(dòng)畫這一小段再鋪開到完整業(yè)務(wù)不要一上來(lái)就調(diào)大模型。記住先把一個(gè)樓層拉出來(lái)再談?wù)麠潣恰?
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
成年女人一区| 蜜臀久久99精品久久久久久成人小说| 99热18| 美国日韩黄片| 激情情色五月天| 婷婷五月天丁香花| 激情四射婷婷四五月天| 岛国艾薇凹凸视频天堂| 国产亚洲99久久精品熟| 97欧美色| 欧美日本不卡| 97色97好| 91久青| 日韩中文字幕视频在线观看| 亚洲另类小说卡通动漫| 亚洲另类天堂| 91在线视频国产网站| 欧美成人国产精品| 色五月天AV| 五月激情影院| 日本3级一区二区免费 | 99啪啪视频| 丰满人妻一区二区三区性色| 酒色综合网| 欧美日韩人妻精品系列一区二区三区| 91色人| 亚洲日韩欧美一区二区| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 亚洲成人妻日韩在线| 日韩欧美视频青青| 日产成人久久| 久9爱经典视频| 四虎免费看黄| 久久久男人的天堂| 蜜臀久久在线视频| 99色婷婷中文字幕乱色| 日本东京热大香蕉a片| 亚洲熟妇丝袜在线观看| 99啪啪| 精品久久久久,69国产成人精| 嗯啊不要在线| 狼人综合婷婷激情四射 | 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 偷拍 欧美 日韩| 久久久一区二区三区四区五区| 吊色| 综合亚洲网| 精品国产乱码久久久久久久| 91中出视频| 超碰在线免费一区二区三区| 青青五月天| 色婷婷日韩精品一区二区三区| 97精品一区| 茄子社区国产精品| 人人操人人肉久久精品| 色欲av一区二区三区蜜芽| 天天爽夜夜爽夜夜爽精| 性久久| 综合 欧美 亚洲 日本| 777琪琪午夜免费A片| 久艾草在线精品视频在线观看| 国产辣妈在线视频福利| 欧美性爱日韩性爱| 欧美最婬乱婬爆婬性视频 | 乱理日韩中文| 亚洲91网站| 中文字幕在线2| 三及片网站| 天天激清| 国产乱人伦AVA麻豆软件.| 首页中文字幕中文字幕免费| 啊啊好多水| 国产丸一视频| 久久乐| 9色在线| 婷婷日韩一区二区三区中文字幕在线| 精彩视频日韩| 欧美性高潮| 啊啊啊啊网站| 色综合久久888| 人妻天天爽夜夜爽爽| 欧美激情片一区二区| 久久超碰av在线| 久热精品在线国产| 久久秀这里有精品| 另类专区加勒比| 亚洲丝袜诱惑| 欧美午夜一区二区三区| 色蜜AV| 亚洲色天堂九9| 操国产逼| 亚洲综合春色| 99最新日韩偷拍视频| 亚洲美女AV无码| 国产精品视频白浆免费| 欧亚不卡| 精品欧美老熟女一二区| 熟女视频久久| 国产97/欧美| 伊人久久综合影院精品久久久| www.久久最新地址| 91女网站| 91少妇人妻| 欧美午夜一区二区三区| 色诱avtt| 韩国一级做a久久久久| www色色com| 粉嫩av一区二区三区四季| 久久成年片色大黄全免费网站| 91成人精品在线播放| 综合国产97| 国产极品馒头逼| 国产精点久久久成人| 成人天天看站长推荐| 五十路熟女人妻一区二区在线观看 | 99∨VTV| 丝袜狠狠草尤物 91| 3PAV乱伦视频| 91色艳| 少妇熟女视频一区二区三区| 黑丝少妇在线观看| 91n欧美| 天天爽人人综合免费7799| 欧美少妇高潮久久91| 国内伊人久久久久久网站视频| 日欧操屄视频| 999国产精品999久久久久久| 午夜精品99久久久久传媒| 亚洲丝袜少妇在线| 夜夜嗨AV一区天天| 国产精品人妻免费精品| 中文字幕制服欧美久久一区| 国产乱伦亚洲| 自拍亚洲综合| 欧美色图天堂在线| 老司机福利青青草| 校园春色欧美色图| 天天色天天干天天爱| 欧美日本天堂| 夜夜操美女| 久久人人爽爽爽人久久久| 午夜爽爽爽| 91大学精品激情戏| 蜜乳视频网站| 无码九九| 人妻嗯啊啊在线播放| 久热这里只有精品9| 99热精品在线在线| 日本一区二区成人在线| 天天综合青苹果| 少妇99成人麻豆| 欧美亚洲第一页| 久久久少妇诱惑精品视频| 国产1769在线| 日韩特级毛片免费观看全集| 日日日骚女人精品| 精品久久在线区一区| 人人 操人人 操人人| 日韩精品9区| 欧美日韩第一页| 天美精品原创av片国产| 伊人精品视频| 色婷婷99| 91精品久久综合熟女| 蜜桃久久一区二区| 久久久久密臀视频| 色综合色| 欧美日韩日产免费网站看| 丰满熟女人妻一区二区三五十一路| 久久99草| 可以免费观看的AV| 亚洲精品成人激情在线| 草草草视频在线免费看| 九九久精品| 天美一二三在线观看Av| 婷婷伊人綜合中文字幕| 美女午夜福利免费视频| 国产偷拍网站| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 亚洲无码一二三区| 神马九九| 国产97av| 韩国毛片一区二区三区| 肉丝无码中文高清| 精品一区二区三区四区女| www.超碰在线| 久草网站免费在线观看| 亚洲熟妇一,二,三期| 精品妇操一区二区三区| 欧美A√综合网 | 激情小说亚洲视频| 欧美在线啊啊啊| 丁香五月偷拍| 国产AV超爽| 日本三级A片网站com| 丝袜足交视频| www亚洲欧美| 欧美性视频二区三区| 草b在线 | 人妻三级在线中文字幕| 91精品网站| 亚州黄站| 精品一级| 麻豆亚洲AV成人无码久久精品| 亚洲性感丝袜诱惑在线观看| 九九九九日本| 久久精品国产精品| 国产AB视频| 欧美视频激情久久久久久| 亚洲日本韩国极品一区二区| 操B久久| 日日天天久久啊啊aaa| 黄页大片在线观看| 欧美中文字幕一区 | 思思视频免费看网站| 欧美中文综合| 日韩欧美亚洲自拍偷拍| 91色图| 啊啊啊好想要| 亚洲精品国语在线播放| 国产一区二区三区视频在线看| 欧美乱伦专区| 黄色电影在线播放综合网站| 免费无码国产精品v片在线观看| 性爱网站一区二区| 乱伦1色页| 手机在线观看不卡无码av| 全球成人中文在线| 国产刺激视频| 色五月天AV| 亚洲污污网站| 日韩欧美麻豆 | 乱伦av麻豆| 欧美强奸一区二区诱惑| 欧美国产日韩清纯唯美| 中文字幕丝袜人妻| 天天插天天操天天摸天天射天天看| 激情四射五月天| 丰满欧美放荡少妇在线| 亚洲日韩精品一区二区| jazzjazz国产精品麻豆| 亚洲va有码在线天堂| 秋霞影音一区二区三区| 九九热精品在线| 97香蕉人人乳| 天天影视综合色| 激情综合网亚洲| 欧美黄色片在线播放| 久久精品国产72国产精品福利| 五月天婷婷基地| 国产又大又粗又长视频在线| 超碰9 7女人| 丝袜足交视频| 免费伦费视频在线观看| 歐美性天天| 51一区二区三区| 97久久网| 亚洲AV无码乱码在线观看性色| 射丝袜高跟鞋99| 加勒比久久av| 91啦人妻| 超碰国产在线| 91无码精品| 亚欧免费| 男人的天堂2018东京热啪啪啪| 久久超碰大香蕉| 久9九综合在线| 黄色大片免费在线| 殴美牲| 日韩成人人妻网站| 丰满人妻无码一区二区三区| 亚洲国产一区二区三区在线 | 超碰在线欧美性爱激情| 91久久婷婷| 91天美传媒在线观看| 三久久久四久久久久| 另类一区| 免费亚洲国产精品久久一区| 老司机福利青青草| 欧美男人一区| 噜噜噜噜天天狠狠| 五月天婷精品激情| 色五月激情AV在线| 亚洲av影音先锋| AV在线资源| 强奸抽插av| 操少妇很爽av| 精品黄色电影| 欧美色图片91| 秋霞怕怕片| 欧亚洲精品有视频| 91精品网站| 91狠狠综合久久| 91色人| 特级丰满少妇一级AAAA爱毛片| 久久精品夜色国产亚洲AV| 91在线视频国产网站| 99re视频在线观看这里只有精品| 久久日韩肥臀| 五月婷婷久久综合| 亚洲一区二区av| 超碰av在线| 蜜臀va69| 九九天堂| 国模私拍一区二区三区神乳| 久久25| 国产精品一区二区a| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 国产suv精品一区二区四区999| 亚洲国产97| 最新欧洲欧美日本激情网站| 九九热三级片| ,国产乱人伦精品一区二区三区| 天天综合中文字幕 91| 日日日日日| 精品人妻一二三| 亚洲欧美九九九| 国产精品爱欲| 日韩成人小视频| 99精品网| 青娱乐福利99| 亚洲系列欧美| www.97在线| 欧美成人A√在线一区二区| 欲香欲色天天天综合和网| 亚洲春色欧美激情自拍| 激情久久日韩精品中文字幕麻豆| 五月激情在线| 先锋激情∨在线视频播放| 日韩不卡网操逼中文字幕日韩| 逼逼逼逼操操操操操操操操操午夜剧场| AV色五月天| 欧美日韩成人在线| 伊人久久综合影院精品久久久| 歐美性天天| 婷婷尹人大香蕉免费| 立川理惠被中出无码| 天天插夜夜爽| 激情五月婷婷| 综合免费无码中文| 日韩大香蕉| 久噜噜| 夜夜操天| 高清无码国产亚洲| 一区二区三区亚洲| 日韩无限资源| 中文无线日韩一区| 欧美第38页| 国产精品视频精品一二| 免费人成在线观看网站品爱网| 久操视频在线| 青青草啪啪网| 国产精品久久久视频| 婷婷影院入口| 久久欲| 天美传媒AV在线播放| 天天内射| 熟妇精品juliaannAV| 五月婷婷综合网| 免费在线黄片视频| 伊人网青青| 三久久久四久久久久| 日本性一区| 欧美三级免费伊人| 性感女人网页在线观看视频| 久久婷色| 91粉嫩萝控精品福利网站_精品影音先锋国 | 色女网日韩| 天天干天天操天天干天天操| 国产亚洲福利第一页丝袜| 天天综合色图| 夜夜高潮夜夜爽夜夜爱爱一区| 日本天天干天天搞一区| 秋霞男人网| 香一区二区三区| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 亚洲色图欧洲| 国产三级片在线观看| 夜夜春夜夜操| 亚洲交换| 国产九九九九九九| 好爽要喷了| 亚洲视频二区 | 麻豆91熟妇人妻中文字幕茄子| 一级黄碟| 怡红院亚洲怡春院av| 9999亚洲电影| 情色五月天网| 亚洲色图第一页| 熟女网站最新| 久久久内射良家| 久久精品电影| 老鸭窝在线视频播放| 91爱欧美| 欧美综合自拍亚洲综合图| 亚洲熟妇综合久久久久久| 欧美aⅴ99久久黑人专区| 性生活无遮挡纯毛片在线看| 天天综合欧美综合| 九一综合网| 亚洲宗合网| 亚洲第一视频 欧美风情 日韩| 国产人人干| 亚洲精品蜜桃久久久| 在线播放欧洲免费av| 日韩欧美麻豆 | 免费一级特黄特色大片在线观看看| 国产AV色黄看到爽| 综合欧美日韩在线观看| 超碰国产在线| 韩国三级三级BD在线| 日本男人插女人的逼黄色| 97干综合网| 男人的天堂99| 欧美福利视频啊啊啊啊| 日韩一区二区高清在线观看的| 亚洲最新a在线观看| 国语对白在线播放视频| 夜夜肏2021| 亚洲第一色页夜| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 亚洲图片 欧美电影| 青青草久草| 蜜乳成人AV| 欧美日本国产日韩激情视频| 天天综合网一91网| 99国产精品自在自在| 自拍大香蕉乱插| 综合久久99| 日日骚 av| 久伊人网78| 搡老熟女免费视频 | 性色avv| 手机av亚洲丝袜美腿日韩第一页二页| 日韩熟女精一区二区三区不卡| 高清国产无码av| 婷婷五月天色色| 亚洲 欧美 另类 综合 偷拍| 密臀国产在线| 欧美一区二区亚洲天堂| 99人妻| 无码国产精品久久久久| av情色影音| 激情小说激情视频| 亚洲国产麻豆一区二区三区| 大香蕉伊在线久草麻豆天堂故事| 91综合天天| 亚洲色图尤物视频| 麻豆婷婷成人一二三| 国际精品久久久| www..com操老师| 日本天天吊| 精品十八在线观看| 国产家庭乱伦网址| 操逼999| 强奸乱伦AV一天堂网| 色婷婷五月综合激情中文字幕| 人人搡人人肉久久精品| 精品无码久久久久久久杏吧| 五月婷婷六月色| 超碰久久精品| 亚洲91在线播放影院| 亚洲 中文 女同| 不卡二三区人妻少妇| 国产综合永久精品日韩鬼片| 久久久久ab| 日韩欧美性吧婷婷乱伦大香蕉| 97在线精品| 在线五区| 国产一级黄色片在线观看| 蜜桃久久久久久久久久久久| 三级日韩一区二区三区| 岛国小电影| 激情综合网激情综合| 国产亚洲人妻综合日韩 久久| 国产97在线播放| 在线强奷到舒服的无码视频| www.av不卡中文字幕| 久久久久久日韩| 97超碰久| 国产无马视频| 999九九九九国产动| 国产精品久久久久久久黄无码 | 欧美激情专区| 大香蕉伊利av| 午夜亚洲WWW湿好大| 欧美专利1区2区3区4区5区免费| 欧美亚洲中文| 大香蕉伊人在线成人AV在线观看 | 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 午夜精品久久久99热蜜桃的功能特点 | 色色丁香| 又大又大又大又粗爽高潮观看| 91在线页| 一区二区精品日韩欧美在线观看 | 95自拍视频在线观看| 神马久久69| 久久肏大逼| 久肏视频字幕| 日韩影片中文字幕一区二区三区| 亚洲在线网站| 久久99草| 开心五月婷婷| 操屄日韩| 99re6国产精品99re| 日本日皮视频逼| 99热一区二区三区四区| 综合亚洲情色| 伊人久久大香大香线蕉中文| 精品视频久久| 国产丰满少妇久久久精品影院| 狠狠色狠狠色狠狠五月| 欧美视频一区二区三区| 日本999精品视频| 亚洲黄色a级片| 欧美 色 亚洲| 好爽免费视频,| 九九九九久久久| 性暴力欧美猛交在线直播| 综合九九| 欧美亚男人的天堂| 9国产超碰| 一区二区三区色综合| 丝袜综合网| 欧美A√综合网| 国产色呦呦| 友优传媒精品在线一区二区| 欧美日本天堂| 激情综合五月丁香| 操操吧亚洲乱伦视频| 9 1超碰九色| 91视频观看网站| 日本一区二区不卡精品| 欧美精品成人一区二区在线观看 | 欧美激情 亚洲色图| julia在线观看久久| 人人射人人操人人摸| 男女无套 免费网站| 性感美女啊啊啊在线| 熟妇人妻一区二区| 91碰碰| 综合欧美激情网| av激情亚洲五月天| 97亚洲精品超碰| 97视频在线观看网站| 欧美综合第一| www.97在线| 亚洲综合另类| 综合自拍| 福利伊人玖玖国产| 国产日韩精品无码去免费专区国产| 亚洲丝袜少妇在线| 91天美免费| 久久中文字幕女同性恋一区| av72网| 国产精品亚洲四五区在线观看| 东京热男人的天堂网| 免费观看啪视频| 秋霞曰韩R级| 蜜臀AV一区二区三区激情综合| 欧美综合区| 免费A V在线播放| 18禁免费视频| 福利视频一区二区微拍| 亚洲人妻在线一区| 少妇人妻太紧太深av| 久久无码一区二区二三区性色| 久久久久亚洲| 日韩视频中文字幕| 乱性AV| 立川理惠被中出无码| 操逼操逼操| 亚洲 暴爽 AV人人爽日日碰| 国产品精品自在在线午夜免费| 视频不卡中文字幕| 熟女乱3伦999| 神马久久久久久伦理片| 在线视频免费播放一区| 午夜福利成人免费视频| 国产亚洲色婷婷久久99精品91| 99久久99久久综合| 超碰人人乐97| 视频在线观看一二三区| 白丝jkav| 欧美黑人日韩少妇色情| 高清视频一区| 亚洲国产综合视频| 日本三级一区二区 在线| 色婷婷激一区二区三区| 亚洲高清在线| 少妇国产不卡| 中文字幕伊人| 欧美天天射| 亚洲天堂在线怕怕视频 | 九九九九欧美| 亚洲高清欧美总合| 欧美呦呦性爱| 最近的最新的中文字幕视频| 欧美日韩色图片| 精品一区二区麻豆| 风间由美日韩欧美久久| 91久久久亚洲| 久久久免费的精品| 日韩精彩免费| 激情文学亚洲| 国产在线综合福利网站| 久久久久久精品免费看A级| 操碰91| 欧美性爱一区二区三区四区| 97美日韩视频| 在线国产福利网址导航| 婷婷香蕉欧美在线一区二区三区| 91爱看| 丁香九月婷婷| 亚洲色图亚洲无码强奸乱伦| 人妻在线臀日韩| 九99久久| 亚洲精品三区在线观看| 草b在线| 超碰人妻97| 图片区小说区| 亚洲性感丝袜诱惑在线观看| 日本东京热久久久电影| 大香蕉伊人色偷偷在线| 97中文综合| 日本操大逼| 91久久18禁| 国产强奸乱伦无码视频| 95人妻爽爽人人做人人澡| 加勒比性爱成人在线| 熟妇的味道HD中文字幕| www.一本大99| 免费无码婬片AAAA片直播色戒| 97色婷婷| 国产精品不卡少妇白| 午夜福利成人免费视频| 中文字幕精品专区搜索结果91| 天天操人人操狠狠插| 影音综合网| 少妇被c 黄 免费观看| 小少妇| 天堂成人网| 伊人午夜福利视频| 国产精品久久久无码AV网站| 国产亚洲日本| 亚洲一欧洲中文字幕在线| 老女人碰碰在线碰碰视频| 日韩中文字幕国产| 久9久9精品| 久久直播国产| 999九九九九国产动| 久久一级无码精品毛片6| 国产欧洲精品亚洲午夜拍精品| 18禁免费视频| 91美女国产在线| 久久婷婷影院| 男人天堂新| oumeisetu综合| 亚州熟女乱伦| 久久亚码| 91操碰| 亚洲精品久久久久毛片A片拉屎 | 成人性爱av| 欧美日韩青操| 综合久久欧美| 精品对白久久不卡| 日日夜夜骚| 久久久久人妻二区精品叶可怜| 人妻人妻天天碰| 亚洲aV性爱| 欧美日韩在线小说| 高跟伊人julia ann| 嗯啊抽插大香蕉网页| 亚欧操逼片在线观看 | 色老汉玖玖爱| 影音先锋少妇| 天天爽入口| 天美传媒av 在线| 天天操人人操狠狠插| 国产中午字一暮区| 久久最新免费视频23| 蜜乳AV.COM| 亚洲国产97在线精品一区| 久久黄色网址| 操高情无码| 男人的天堂com| 亚洲 图片 欧美 色图| 日韩一级特黄av毛片| 久久久久国色αv免费观看| 久久大香蕉手机高清视频| 乱伦av麻豆| 日本天天干天天操一区| 淫乱图区| 加勒比在线视频| 蜜乳AV一区二区三区四| 91综合色噜噜| 伊人久大| 天天影视射综合网| 国产久久一区二区午夜| 日韩视频啪啪| 久草精品国产99| 欧美在线电影| 伊人96在线| 亚熟在线| 欧美黄页在线| 中日高清无码操逼视频| 天天躁日日躁AAAAXXXX国产 | 色婷婷视频| 91亚洲综合| 国产在线激情| 精品欧美日韩在线观看| 91偷拍欧美亚洲| 69精品少妇一区二区三区蜜桃| 92午夜免费福利视频| 中文字幕日韩专区精品系列| 91成人无码| 欧亚 另类 久| 97资源站久久| 亚洲资源网| 日韩一级欧美一级国产一级台湾| 色偷综合| 欧亚日韩三区| 男人天堂站| 丁香五月激情网| 国产精品青草综合久久| 一区二区三区免费岛国片| 日本人妻中文字幕 | 欧美熟妇视频 | 天天看天天日| 另类图片天天影视| 熟妇女伦乱视频| 欧色网址| 丰满人妻一区二区三区四区| 国产精品日日摸天天碰| 亚洲双插| 亚洲图片小说欧洲| 超碰97综合在线| 猛猛干| 熟女精品日韩一区二区三区 | 亚洲激情AV| 天天插天天操| 婷婷色色五月天| 最新欧洲欧美日本激情网站| 五月天婷婷小说| 久久久久久国产精品| 97人人干| 久久啊哟| 欧美色图中文字幕| 中国小夫妻勾搭露脸淫荡对白| 欧美日本天堂| 久久精品日韩专区免费观看| 狠狠操狠狠燥| 久久在肏| 欧美一区二区三区不卡高清视频| 日韩在线地址一| 在线岛| 人妻在线视频| 九月色婷婷| 嗯嗯嗯啊啊啊在线免费观看| 屌妞视频久久久久久久久久久久| 99只有精品| 97久久综合网| 欧美超碰97| 搞中出久久| 亚洲精品日韩国产欧美| 又黄又爽在线观看视频| 亚洲一二三四区机械| 超碰无码五月97| 欧美性高潮在线| 亚洲啪啪综合?v一区综合精品区| 亚洲精品自拍| 亚洲欧美国产成人综合不卡| 久久天堂婷婷网| 超碰在线人妻不卡| 东京热伊久| 中文字幕三四区| 乳欲人妻办公室奶水| 超碰91在线| 欧美亚洲丝袜美女电影| 少妇精品久久久八区九区| 久一区久久蜜桃| 性爱乱伦视频免费| 农村妇女一级二级三级视频| 青久操| 91熟女丨91老女人| 一起草日韩| 蜜臀av在线播放一区二区三区| 99国产精品免费| 日韩三级av片| 亚洲蜜乳av| 丝袜熟女2P| 日本熟妇自慰性高潮一区二区三区| 男女无套 免费网站| www成人啪啪18秘 免费| 久久视网78| 先锋女优在线观看视频| 中文字幕精品日韩中文字幕| 99久久com免费视频′| 蜜臀一二三区| 日韩综合无码色欲vv| 久久精品一区二区三区不卡| 天天爱综合网| 久久久99免费| 九九视品黄色| 天天射天天色成人| 人人爱人人操人人性| 色盈盈影院| 五十路熟女人妻一区二区三区四区五| 秋霞蝌科网日本一区| 亚洲国成人情色好看电影| 777超碰| 国产精品一区二区黄片| 午夜AV污污污| 美女极品一区二区三区| 欧美熟妇操操视频| 在线人成亚洲视频免费观看| 亚洲天堂电影精品一区| 日韩AV噜噜噜一区二区三区四区| 一区二区影院| 蜜臀久久久国产| 国产一区自拍欧美日韩| 熟妇艹鸡八| 26uuu久久| 国产怡红院| 精品九九| 操九九九九九九| 婷婷丁香激情| 欧美亚洲首页| 色五月首页| 78m成人视线| 综合激情婷婷| 啊啊啊好大好深| 天天拍天天操| 97超碰日韩| 一道本久久棕合爱| 国产美女高潮| 日韩99999色| 日本操逼无码| 欧美日韩222| 久久久一区二区三区三州| wwe 天天干.com| 十八禁av无码免费网站APP| 亚洲中文电影| 九九干| 人妻喷水| 五月综合色| 91天天| 欧美72网页| 中文字幕精品一区二区精| 久久国产999| 久操精品网| 日韩欧美加勒比| 夜夜爽妓女| 老子午夜伦不卡影院| 天天摸天天舔天天操| 福利伊人玖玖国产| 一二三区精品视频| 亚洲天堂色图| 久久久久久日韩| 色与欲影视天天看综合网| 九九在线视频| 国产色综合亚洲色综合吹潮| 成熟熟女国产精品一区二区| 欧美熟女操屄| 97超碰中文在线| 久久久久9999妇女| 色婷婷五月综合激情中文字幕| 大香久久| 天操老女人| 五月天激情四射| 亚州熟女乱伦| 欧美日日人人天天| 青青草日本无码| 亚洲色系另类精品国产| 欧美小说区视频区| 特级大荫道BBwBBwBBW| 99性爱在线观看| 欧美色乱| 亚洲电影91| 亚洲天堂综合AV| 成人乱人伦一区二区| 欧美啪啪天堂| 影音综合网| 人妻激情偷乱视三区频一区二区| 97国产精品视频| 屁股久久久久久久久| 熟妇熟女亚洲天堂网| 亚洲五码一区二区三区| 亚洲天堂精品日韩电影| 天堂精品一区| 麻豆天美制片厂网站视频| 99久久久久| 亚洲精品尤物yw在线影院| 东北女人高潮视频| 亚洲精品蜜桃久久久久久久| 久久小视频| 免费强奸av| 久久首页| 日韩性爱小视频| 日韩欧美麻豆 | 亚洲97成人在线观看| 久久中文字幕人妻熟av女蜜柚| 97色欧州| 日韩情色视频| 五月丁香啪啪啪| 性爱精品一区| 国产中文精品一区二区在线观看| 国产精品人妻无码久久久老鸭窝 | 国产精品久久久久无码AV会牛| 精品人妻一区二区三区四区石在线| 东北女人性交| 天天干1区2区在线| 亚洲涩涩| 色九九九综合| 欧美老妇综合网| 午夜精品99久久久久传媒| 色色五月天激情| 全球成人中文在线| 亚洲成人福利电影免费 | 亚洲第一页综合在线| 青青草字幕AV| 中文字幕AV片| 嗯嗯啊啊好疼| 欧美国产一区二区三区麻豆传媒| 97 亚洲 日韩 欧美 在线| 天天干一干| 五月天伊人| 日韩中文欧美| 九九热视频在线观看| www.99色| 长长久久免费视频| 色五月婷婷五月天| 天天日骚逼熟女| 国产精品在线网站| 欧美成人一区二区| 美熟女逼导航AV操逼| 日韩人妻精品| 婷婷探花久久精品一区| 欧美性Fer办公室秘书| 精国久久一区二区三区98| 欧美精品久久| 色香综合天天影视综合 | 三久久久四久久久久| 色悠久| 国产91影院| 欧美人人操人人插| 日逼视频日本| 日本在线播放不卡一区| 日韩性爱高清免费视频| 国产亚洲在线观看| 久久极品一区二区| 日本精品88888888| 日本五十路在线| 久久久草草精品| 久久久91| 国产日韩无码一区二区三区久久区| 夜夜操美女| AA特级绝黄| 欧美色五月| 超碰性爱97| 久久精品电影| 超碰人妻久久| 操操操五月天婷婷丁香影院| 久久久久久日韩| 夜夜草网站| 成年男人的天堂| 超碰欧美在线欧美| 巨乳特殊服务按摩| 青青操网| 啪一啪免费视频| 欧美有码激情视频一区二区三区| 欧美日韩人人精品| 97视频在线视频| 亚州男人天堂| 韩日性爱av| 99热色精品| 无码视频一区二区| 久九九九九九九九热| 免费国产电影一区二区| 午夜精品久久久久久久99蜜桃一| 欧美九9 9 9| 熟女一区二区三区| 久久伊人影院| 天天干人人干天天日97| 国产乱码久久| 色眯眯av| 欧洲在线性爱视频| 色官网在线| 超碰97玖玖爱| 日夜精品| 国产三级多多影院2022国产AA一级毛片无码 | 67194国产| 91丝袜激情在线| 好吊色青靑草| 欧美日韩香蕉| 亚射在线| 五月情色天| 性爱精品一区| 伊人991| 日本一区二区不卡| 中字乱伦AV| 国产久久久久影院老熟女| 秋霞怕怕片| 丁香五月婷婷基地| 啊啊啊在线看| 韩国一级AAA| 自拍盗摄一区| 亚洲天堂2020| 韩国一级婬片A片AAAAA| 午夜福利区| 黄片免费日韩| 偷拍 精品另类 凸凹了四区| 后入式福利| 日本性爱网址| 久久精9| 青娱乐福利99| 97国产精品国| 亚洲日韩电影| 99在线精品视频| 91亚洲黄色网| 成人av动漫在线观看| 九9热伊人| 美女极品一区二区三区| 精品一久久久| 欧美五十路熟| 日本不卡二三区| 国产欧美日本亚洲精品| 高清不卡一二三区视频......| 天天综合中文字幕 91| 亚洲人人操| 国产精品天堂| 精品久久青青草| 白丝AV| 18一区二区三区| 成人国产视频在线观看| 97天天爽| 成人五月天丁香激情综合| 国产欧美日韩女同性恋ww喷水精品 | 日本αv| 91久久午夜无码鲁丝片久久人妻| 亚洲不卡三级手机播放| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 宅男影院久久久,99| 大香蕉在线视频重口味毛片在线| 91一区二区三区蜜桃| 大吊色| 再深点灬舒服灬太大了添视频| 殴洲老熟女| 国产操逼逼网| 亚洲风情综合网| 天天日夜夜| 国产偷拍网站| 在线亚洲精品久久久| 日han少妇无码| 国产综合在线视频网站| 日韩欧美资源| 亚洲av强奸乱伦| 久久久一区二区三区四区五区| 9/A片 | xxx亚洲午夜天堂| 国产黄色影片在线观看| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 日韩性爱毛片操骚逼| 一区二区亚州激情久婷婷欧美| 欧美日韩性爱视屏免费看了| 美女好片色日本| 乱日视频| 韩国成人精品久久久免费看| 久久风骚城市| 久久最新免费视频23| 亚洲激情综合另类男同| 国产中文字幕在线| 久久久久无码| 亚洲最大成人a毛毛片| 欧洲亚洲人妻无码久久三区四区| 日本91白丝| 欧美国产欧美在线观看| 三及片网站| 免费看污网址| 色色五月天婷婷| 欧美A片中文字幕| 欧美最婬乱婬爆婬牲视频| 99热超碰| 手机在线看片免费人成视频| 九九九九热| 岛国不卡超碰护士AV在线播放| 99视频内射三四| 操迟操逼在巾线Fre看| 亚洲欧美清纯| 老女人碰碰在线碰碰视频| 亚洲色五月| ..日韩av毛片精品久久久| 91岛国动作片| 久湿久久| 欧美熟妇人体| 欧美激情综合| 亚欧无码在线| 麻豆国产精品午夜视频| 激情婷婷丁香网| 东京热av男人的天堂| 小少妇| 国产女性无套 免费观看| 综合伊人网12色| 国产精品另类| 国产视频第2页| 久久综合久久综合人久久夜精品| 色综合网1| 成人激情无码在线视频| 丁香色狠狠色综合久久小说| 9九九国产| 亚洲精品不卡一二三区| 人人爱夜夜爱| 91黑丝在线播放| 久久曰曰| 国产树林里野战在线看| 亚洲高清无毛一区二区| 国产福利在线视频网站| 91老女人| v91av| 欧美在线第五页| 欧美综合网1| 国产丰满熟夫69mpp| 色综合中文字幕不卡| 色色色综合网| 久久97| 探花激情视频| 大伊香蕉在线视频免费| 国产精品久久99日日| 在线观看高清AV| 亚洲欧洲自拍图片专区满春格| 91欧美综合| 色五月av| 精品国产乱码久久久久久蜜臀| 殴美色网| 日日骚网站| 深夜视频| 欧美色院| 国产一级高清免费观看| 色妇综合网| 亚洲国产综合图区中文字幕| 亚洲性天堂| 亚州男人天堂| 丝袜美腿av女优在线| 欧美综合91| 午夜舔阴达高潮视频免费看| 日日夜夜精品视频| 亚洲精品国语在线播放| 国产粉嫩蜜臀av一区二区三区| 熟女探花啪啪| 欧美Aⅴ| 日韩av不卡在线看| 中文字幕一区二区韩| 丁香六月东京热| 丁香婷婷啪啪| 国产玖玖| 啊啊啊好湿久久| 一区二区三区无卡视频在线观看| 蜜臀亚洲综合一二三四区| 97视频在线观看网站|