日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

基于three.js的校園3D地圖開(kāi)發(fā)實(shí)踐:從坐標(biāo)轉(zhuǎn)換到性能優(yōu)化

基于three.js的校園3D地圖開(kāi)發(fā)實(shí)踐:從坐標(biāo)轉(zhuǎn)換到性能優(yōu)化 簡(jiǎn)介3D可視化技術(shù)正成為智慧校園與數(shù)字孿生場(chǎng)景的重要呈現(xiàn)方式。通過(guò)WebGL渲染引擎three.js開(kāi)發(fā)者可以在瀏覽器中構(gòu)建交互式三維地圖。實(shí)現(xiàn)過(guò)程中經(jīng)緯度坐標(biāo)需經(jīng)局部坐標(biāo)系轉(zhuǎn)換以避免浮點(diǎn)精度引發(fā)的場(chǎng)景抖動(dòng)地形可借助PlaneGeometry與噪聲函數(shù)生成建筑則通過(guò)ExtrudeGeometry拉伸并利用InstancedMesh合并繪制從而大幅降低draw call。該技術(shù)路徑不僅適用于校園也可推廣至園區(qū)、車(chē)間等小范圍場(chǎng)景甚至可與vue2百度的3D實(shí)景地圖模型加載相結(jié)合。掌握這些基礎(chǔ)原理與工程實(shí)踐即可高效完成從數(shù)據(jù)準(zhǔn)備到交互展示的完整流程。1. 項(xiàng)目定位與方案選擇為什么用 three.js 做 3D 地圖前陣子接到一個(gè)校園三維可視化需求要求把整個(gè)校區(qū)的地形、建筑、道路、水系在瀏覽器里做成可交互的 3D 場(chǎng)景。一提到 3D 地圖很多人第一反應(yīng)是 Cesium、Mapbox GL或者 UE5 像素流但綜合考慮項(xiàng)目預(yù)算、部署成本、前端技術(shù)棧之后我最終選擇了 three.js 作為核心渲染引擎。這篇博文就把整個(gè)實(shí)現(xiàn)過(guò)程拆開(kāi)講一講從數(shù)據(jù)準(zhǔn)備到坐標(biāo)轉(zhuǎn)換從地形生成到建筑建模從交互拾取到性能優(yōu)化一條線走完。先說(shuō)說(shuō)為什么是 three.js 而不是其他方案。Cesium 主打全球尺度加載傾斜攝影、地形瓦片確實(shí)強(qiáng)但如果需要的只是一個(gè)園區(qū)、一個(gè)校區(qū)、一個(gè)廠區(qū)這種小范圍場(chǎng)景用 Cesium 就像殺雞用牛刀學(xué)習(xí)成本高、包體體積大、API 抽象層級(jí)也重。Mapbox GL 的地圖底圖渲染很強(qiáng)但它本身是 2.5D 的想在它上面自由做建筑體塊拉伸、做水流動(dòng)畫(huà)、做自定義交互限制比較多。three.js 的好處是足夠底層也足夠靈活場(chǎng)景、網(wǎng)格、材質(zhì)、相機(jī)全部自己掌控做小范圍 3D 地圖再合適不過(guò)。它不叫“地圖引擎”但它能拼裝出你想要的一切地圖效果。這個(gè)方案適合誰(shuí)來(lái)參考如果你正在做智慧校園、智慧園區(qū)、數(shù)字孿生車(chē)間、展廳大屏可視化或者單純想給自己的個(gè)人項(xiàng)目做一個(gè)炫酷的 3D 小地圖這篇文章里的思路和代碼都可以直接復(fù)用。接下來(lái)我會(huì)以一個(gè)校園 3D 地圖項(xiàng)目為案例背景把關(guān)鍵環(huán)節(jié)逐一拆解每一步該怎么做、為什么這么做、坑在哪里都會(huì)講清楚。2. 數(shù)據(jù)準(zhǔn)備與坐標(biāo)系轉(zhuǎn)換地圖數(shù)據(jù)怎么變成 three.js 場(chǎng)景2.1 先搞清楚數(shù)據(jù)從哪來(lái)做 3D 地圖第一步不是寫(xiě)代碼而是搞數(shù)據(jù)。一個(gè)校園地圖需要的數(shù)據(jù)大致分四類(lèi)地形數(shù)據(jù)地塊范圍、高程信息如果沒(méi)有精確 DEM 數(shù)據(jù)可以用噪聲函數(shù)模擬起伏。建筑數(shù)據(jù)建筑輪廓多邊形、建筑高度、樓層數(shù)通常可以從 OpenStreetMap 導(dǎo)出 GeoJSON或者從規(guī)劃圖紙里人工繪制。道路與路網(wǎng)道路中心線或邊線同樣是 GeoJSON 格式。水系與綠地河流、湖泊、池塘的邊界以及綠化區(qū)域范圍。我用的是 OSM 導(dǎo)出的校園 GeoJSON加上自己補(bǔ)充的建筑高度字段。如果你在給一個(gè)具體園區(qū)做項(xiàng)目拿到 CAD 圖紙之后轉(zhuǎn)成 GeoJSON 也是常見(jiàn)路徑。注意OSM 的建筑數(shù)據(jù)常常缺高度需要人工調(diào)研或者按樓層數(shù)估算。我當(dāng)時(shí)是按“每層 3.5 米”乘樓層數(shù)算的誤差在可接受范圍內(nèi)。2.2 經(jīng)緯度坐標(biāo)怎么變成平面坐標(biāo)GeoJSON 里存的是經(jīng)緯度而 three.js 場(chǎng)景是一個(gè)三維笛卡爾坐標(biāo)系X 向右、Y 向上、Z 朝向屏幕外或者用 Z 表示南北方向。所以第一步必須做投影轉(zhuǎn)換。常用的做法是 Web Mercator 投影也就是把經(jīng)緯度轉(zhuǎn)成米制平面坐標(biāo)。不過(guò)實(shí)際項(xiàng)目里不需要引入很重的 GIS 庫(kù)簡(jiǎn)單算一個(gè)局部切平面就夠了function lonLatToMercator(lon, lat) { const x lon * 20037508.34 / 180; let y Math.log(Math.tan((90 lat) * Math.PI / 360)) / (Math.PI / 180); y y * 20037508.34 / 180; return { x, y }; }這樣做完所有經(jīng)緯度點(diǎn)都變成了以米為單位的平面坐標(biāo)。但 web 墨卡托的數(shù)值非常大幾百萬(wàn)的量級(jí)直接塞進(jìn) three.js 會(huì)觸發(fā)浮點(diǎn)數(shù)精度問(wèn)題導(dǎo)致場(chǎng)景抖動(dòng)、閃爍。解決辦法是“局部坐標(biāo)系化”把所有坐標(biāo)都減去中心點(diǎn)的坐標(biāo)讓場(chǎng)景原點(diǎn)附近的數(shù)值保持在幾千以內(nèi)。const center lonLatToMercator(centerLon, centerLat); const positions feature.geometry.coordinates[0].map(([lon, lat]) { const p lonLatToMercator(lon, lat); return { x: p.x - center.x, z: p.y - center.y }; });這里有個(gè)約定我把墨卡托的 y 放到了 three.js 的 z 軸上x(chóng) 保持不變。這樣地形上的東西南北方向和經(jīng)緯網(wǎng)一致后續(xù)擺放模型、調(diào)整相機(jī)方向都符合直覺(jué)。2.3 為什么局部坐標(biāo)系能避免精度坑three.js 的相機(jī)、場(chǎng)景節(jié)點(diǎn)在渲染時(shí)會(huì)做大量矩陣運(yùn)算坐標(biāo)值越大浮點(diǎn)數(shù)誤差越明顯。想象一下你在城市的另一端看一棟樓和站在樓底下看這棟樓同一個(gè)模型在空間里的表現(xiàn)截然不同。局部坐標(biāo)把項(xiàng)目范圍縮小到原點(diǎn)附近幾百米的場(chǎng)景里Float32 精度完全夠用。踩過(guò)這個(gè)坑之后我建議所有 GIS 數(shù)據(jù)進(jìn) three.js 之前都先做“去中心化”。別嫌麻煩這步不做后面模型抖動(dòng)、貼圖閃爍會(huì)折騰到你想放棄。3. 地形生成與場(chǎng)景環(huán)境先把“地”搭起來(lái)3.1 場(chǎng)景初始化核心流程其實(shí)只有幾行代碼但每一步都要有意識(shí)地去配置。const scene new THREE.Scene(); const camera new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 10000); camera.position.set(300, 350, 500); const renderer new THREE.WebGLRenderer({ antialias: true }); renderer.setSize(window.innerWidth, window.innerHeight); renderer.shadowMap.enabled true; document.body.appendChild(renderer.domElement);相機(jī)初始化位置我習(xí)慣放在地形的斜上方約 45 度俯視角看校園全景剛剛好??逛忼X必須打開(kāi)否則地形邊界、建筑邊緣的鋸齒會(huì)非常明顯尤其是大屏投放場(chǎng)景鋸齒一放大就很廉價(jià)。OrbitControls 是必裝的輔助庫(kù)它解決了相機(jī)旋轉(zhuǎn)、縮放、平移的基礎(chǔ)交互。import { OrbitControls } from three/examples/jsm/controls/OrbitControls.js; const controls new OrbitControls(camera, renderer.domElement); controls.enableDamping true; controls.maxPolarAngle Math.PI / 2.4;maxPolarAngle 限制最大俯視角度防止用戶把視角轉(zhuǎn)到地面以下。enableDamping 打開(kāi)慣性效果手感會(huì)順滑很多。3.2 用 PlaneGeometry 生成地形網(wǎng)格地形我直接用 PlaneGeometry 來(lái)生成分段數(shù)決定地形細(xì)膩度。一個(gè) 705 米 x 500 米的校園用 128 段 x 128 段頂點(diǎn)數(shù)約 1.6 萬(wàn)個(gè)完全夠用。const width 800; const depth 600; const segments 128; const geometry new THREE.PlaneGeometry(width, depth, segments, segments); geometry.rotateX(-Math.PI / 2);注意 rotateX。PlaneGeometry 默認(rèn)在 XY 平面旋轉(zhuǎn) -90 度后變成 XZ 平面Y 軸朝上這樣才符合 three.js 地形的通用做法。接下來(lái)要處理頂點(diǎn)高度。有真實(shí) DEM 數(shù)據(jù)的直接讀取高程數(shù)組寫(xiě)入頂點(diǎn) Y 值。沒(méi)有數(shù)據(jù)的情況下我用簡(jiǎn)單柏林噪聲來(lái)模擬地形起伏保證場(chǎng)景不死板。const positionAttribute geometry.attributes.position; for (let i 0; i positionAttribute.count; i) { const x positionAttribute.getX(i); const z positionAttribute.getZ(i); const height getNoiseHeight(x, z); positionAttribute.setY(i, height); } geometry.computeVertexNormals();computeVertexNormals 一定要調(diào)否則地形上光照表現(xiàn)是平的明暗變化完全沒(méi)有看起來(lái)像塑料片。3.3 頂點(diǎn)著色讓地形有質(zhì)感地形高度不只是幾何形態(tài)還可以映射成顏色。低洼處用藍(lán)綠色山丘用褐色頂部用灰白色這樣可以做出等高線般的視覺(jué)效果。const colors []; for (let i 0; i positionAttribute.count; i) { const y positionAttribute.getY(i); const t (y - minHeight) / (maxHeight - minHeight); const color new THREE.Color(); if (t 0.3) { color.setRGB(0.3, 0.6, 0.4); } else if (t 0.7) { color.setRGB(0.1, 0.4, 0.2); } else { color.setRGB(0.5, 0.5, 0.4); } colors.push(color.r, color.g, color.b); } geometry.setAttribute(color, new THREE.Float32BufferAttribute(colors, 3));用頂點(diǎn)色而不是貼圖的好處是不依賴(lài)外部圖片資源部署方便而且顏色隨地形動(dòng)態(tài)變化時(shí)只需要改數(shù)組非常靈活。材質(zhì)記得開(kāi)啟 vertexColors。const material new THREE.MeshStandardMaterial({ vertexColors: true }); const terrain new THREE.Mesh(geometry, material); scene.add(terrain);3.4 光照、霧和天空3D 地圖對(duì)光照要求不高但不打光不行。我習(xí)慣用一束平行光模擬太陽(yáng)再加一個(gè)環(huán)境光補(bǔ)亮陰影面。const sunLight new THREE.DirectionalLight(0xffffff, 1.5); sunLight.position.set(200, 400, 300); scene.add(sunLight); const ambient new THREE.AmbientLight(0xffffff, 0.6); scene.add(ambient);如果開(kāi)了陰影地形要設(shè)置 receiveShadow建筑要設(shè)置 castShadow。但陰影會(huì)顯著增加渲染開(kāi)銷(xiāo)移動(dòng)端建議直接關(guān)掉用偽陰影替代。再給場(chǎng)景加一層淡霧一是弱化地平線的硬邊二是有一種空間縱深的感覺(jué)。scene.fog new THREE.Fog(0xf0f5e8, 800, 2500);4. 建筑、道路和水系的模型化從“地圖”到“場(chǎng)景”4.1 建筑用 ExtrudeGeometry 拉伸拿到建筑輪廓后最直接的做法是利用 ExtrudeGeometry 把多邊形拉伸成體塊。const shape new THREE.Shape(); polygon.forEach((point, i) { if (i 0) shape.moveTo(point.x, point.z); else shape.lineTo(point.x, point.z); }); shape.closePath(); const extrudeSettings { depth: buildingHeight, bevelEnabled: false }; const geometry new THREE.ExtrudeGeometry(shape, extrudeSettings); const mesh new THREE.Mesh(geometry, buildingMaterial);這里的 depth 就是樓高Y 軸方向向上拉伸。bevelEnabled 必須設(shè)成 false否則建筑棱邊會(huì)有斜角樓體看起來(lái)圓滾滾而且會(huì)大幅增加頂點(diǎn)數(shù)。建筑材質(zhì)可以做成“白天模式”和“夜晚模式”兩套白天用淺灰白加一點(diǎn)環(huán)境反射夜晚把窗戶區(qū)域做成自發(fā)光。我在項(xiàng)目里給建筑材質(zhì)單獨(dú)加了 emissive 屬性夜晚讓色塊微微泛光大屏視覺(jué)效果很不錯(cuò)。4.2 建筑數(shù)量上百后怎么優(yōu)化校園里單體建筑四五十棟還好但如果做園區(qū)建筑上百棟逐個(gè)創(chuàng)建 Mesh 會(huì)導(dǎo)致 draw call 爆炸。優(yōu)化手段是用 InstancedMesh 批量渲染同種模型。不過(guò) InstancedMesh 要求所有實(shí)例共享同一個(gè)幾何體建筑高度各不相同怎么辦我的做法是把建筑按高度分成幾檔每檔用一個(gè)幾何體然后用 InstancedMesh 渲染同一檔里的所有建筑。const groupedBuildings buildBuildingsByHeight(buildings, [8, 16, 24, 36]); for (const [height, list] of groupedBuildings) { const geometry createBuildingGeometry(height); const mesh new THREE.InstancedMesh(geometry, material, list.length); list.forEach((building, i) { const matrix new THREE.Matrix4(); matrix.setPosition(building.x, height / 2, building.z); matrix.scale(new THREE.Vector3(building.scaleX, 1, building.scaleZ)); mesh.setMatrixAt(i, matrix); }); scene.add(mesh); }這樣一搞上百棟建筑只產(chǎn)生幾次 draw call幀率壓力小得多。4.3 道路怎么做才不“飄”道路數(shù)據(jù)通常是線或者窄多邊形。最簡(jiǎn)單的方式是把路網(wǎng)轉(zhuǎn)成 Line 對(duì)象配合 LineBasicMaterial 輸出。但如果想做出有質(zhì)感的道路我更推薦把道路兩邊線和中心線組合成多邊形然后貼到地形表面。最穩(wěn)妥的貼地做法是“偏移法”把道路多邊形每個(gè)頂點(diǎn)的高度采樣地形高度再手動(dòng)加 0.3 米的偏移量。不要試圖讓道路物理貼合地形網(wǎng)格那樣徒增復(fù)雜度。我試過(guò)把道路做成獨(dú)立 Mesh 貼在模型上只要偏移值大于地形起伏俯視看不出破綻側(cè)面看也不會(huì) z-fighting。水系同理用多邊形勾勒河岸、湖面邊界鋪一個(gè)透明材質(zhì)const waterMaterial new THREE.MeshStandardMaterial({ color: 0x3399ff, transparent: true, opacity: 0.7, });河岸邊緣多邊形的每個(gè)點(diǎn)同樣需要從地形采樣高度。這個(gè)步驟漏了的話水面就會(huì)在某處懸空或者穿到地下。4.4 河流流動(dòng)怎么做純靜態(tài)水面總感覺(jué)差點(diǎn)意思。給水面加一個(gè) UV 偏移做出流動(dòng)方向感waterMaterial.onBeforeCompile (shader) { shader.uniforms.uTime { value: 0 }; shader.vertexShader uniform float uTime; varying vec2 vUv; ${shader.vertexShader} .replace( #include begin_vertex, #include begin_vertex vUv uv; float flow sin(uv.x * 10.0 uTime) * 0.02; transformed.y flow; ); };要點(diǎn)是讓水面頂點(diǎn)做小幅正弦抖動(dòng)同時(shí)讓紋理采樣點(diǎn)隨時(shí)間偏移。做過(guò)之后河面有微微的波光流動(dòng)整個(gè)場(chǎng)景立刻“活”了。5. 交互與標(biāo)注點(diǎn)擊、懸浮、彈窗和文字標(biāo)簽5.1 鼠標(biāo)拾取建筑地圖沒(méi)有交互就沒(méi)有靈魂。three.js 里點(diǎn)擊判斷用 Raycasterconst raycaster new THREE.Raycaster(); const mouse new THREE.Vector2(); function onMouseClick(event) { mouse.x (event.clientX / window.innerWidth) * 2 - 1; mouse.y -(event.clientY / window.innerHeight) * 2 1; raycaster.setFromCamera(mouse, camera); const intersects raycaster.intersectObjects(buildingMeshes); if (intersects.length 0) { const building intersects[0].object; showBuildingInfo(building); } }這里有個(gè)經(jīng)驗(yàn)buildingMeshes 不要傳三維數(shù)組嵌套的對(duì)象要拍平成一維數(shù)組否則 Raycaster 遞歸遍歷會(huì)非常慢。建筑數(shù)量多的時(shí)候建議用三個(gè)參數(shù)快速篩選raycaster.intersectObjects(buildingMeshes, false)false 表示不遞歸子節(jié)點(diǎn)。5.2 標(biāo)注用 CSS2DRenderer 比 Sprite 強(qiáng)建筑上的名稱(chēng)標(biāo)注很多人會(huì)想到 Sprite。Sprite 確實(shí)會(huì)用但文字一旦多了就糊成一片而且縮放距離和相機(jī)交互很難控制。我更推薦 CSS2DRenderer它是把 HTML 標(biāo)簽掛在 3D 坐標(biāo)上清晰度完勝也能很方便地加 CSS 樣式、hover 效果。import { CSS2DRenderer, CSS2DObject } from three/examples/jsm/renderers/CSS2DRenderer.js; const labelRenderer new CSS2DRenderer(); labelRenderer.setSize(window.innerWidth, window.innerHeight); labelRenderer.domElement.style.position absolute; labelRenderer.domElement.style.top 0; labelRenderer.domElement.style.pointerEvents none; document.body.appendChild(labelRenderer.domElement);注意 CSS2DRenderer 的 DOM 元素要關(guān)閉 pointerEvents否則它會(huì)在 three.js canvas 上面蓋一層擋住鼠標(biāo)事件導(dǎo)致點(diǎn)擊拾取失效。這個(gè)坑我踩了一次排查半天才發(fā)現(xiàn)是標(biāo)簽層擋住了畫(huà)布。創(chuàng)建標(biāo)注對(duì)象const div document.createElement(div); div.className label; div.textContent building.name; const label new CSS2DObject(div); label.position.set(building.x, building.height 5, building.z); scene.add(label);標(biāo)注渲染循環(huán)里必須同時(shí)調(diào)用 CSS2DRenderer 的 renderlabelRenderer.render(scene, camera);5.3 點(diǎn)擊建筑高亮與信息面板點(diǎn)擊高亮我用的是兩種方案結(jié)合一是給建筑材質(zhì)設(shè)置 emissive 提亮二是給選中建筑加一層外發(fā)光邊框。最簡(jiǎn)單的是改 emissivebuilding.material.emissive.setHex(0xff8800);注意如果建筑是共享材質(zhì)直接改 material 會(huì)同時(shí)改變所有同材質(zhì)的建筑。所以必須 clone 一份材質(zhì)再改building.material building.material.clone(); building.material.emissive.setHex(0xff8800);信息面板就是普通的 HTML 絕對(duì)定位彈窗點(diǎn)擊建筑后顯示名稱(chēng)、樓層數(shù)、面積、用途。HTML 做展示層的優(yōu)勢(shì)是排版、樣式、響應(yīng)式都容易控制不用在 three.js 里畫(huà) UI。6. 性能優(yōu)化與常見(jiàn)問(wèn)題排查6.1 控制 draw callsthree.js 場(chǎng)景中每個(gè) Mesh 每個(gè)材質(zhì)基本對(duì)應(yīng)一次 draw call。校園場(chǎng)景如果建筑、路燈、樹(shù)木、路牌全部獨(dú)立生成幾百上千的 draw call 是常態(tài)低端設(shè)備掉幀嚴(yán)重。經(jīng)驗(yàn)值如下60 FPS 目標(biāo)下桌面端盡量控制在 300 次 draw call 以內(nèi)。移動(dòng)端大屏盡量控制在 100 次以內(nèi)。優(yōu)化手段按優(yōu)先級(jí)排InstancedMesh 合并同類(lèi)建筑、合并靜止的地形道路網(wǎng)格、刪除不可見(jiàn)物體、大場(chǎng)景開(kāi)視錐剔除、合并紋理圖集。6.2 浮點(diǎn)精度和坐標(biāo)抖動(dòng)前面提過(guò)局部坐標(biāo)能解決大部分精度問(wèn)題但還有一個(gè)補(bǔ)充技巧把 camera 的 position 也往原點(diǎn)靠。如果你做的是超大地圖比如整個(gè)城市那就需要“隨動(dòng)原點(diǎn)”方案即相機(jī)移動(dòng)時(shí)把整個(gè)場(chǎng)景反向移動(dòng)始終保持相機(jī)離原點(diǎn)很近。const offset camera.position.clone(); // 當(dāng)相機(jī)距離原點(diǎn)超過(guò)閾值時(shí) scene.position.sub(offset); camera.position.sub(offset);這不是我這個(gè)項(xiàng)目的剛需但如果你后續(xù)要擴(kuò)展到更大范圍建議提前架構(gòu)。6.3 常見(jiàn)問(wèn)題速查現(xiàn)象原因解決辦法地形邊緣閃白z-fighting相鄰 Mesh 貼太近偏移 0.01~0.1建筑飄在半空輪廓點(diǎn)高度未采樣地形每個(gè)點(diǎn)做高度采樣再加 baseY水面穿地水面頂點(diǎn)高度低于地形水面統(tǒng)一抬高到地形最高水位點(diǎn)擊沒(méi)反應(yīng)CSS2D 標(biāo)簽遮擋 canvaslabelRenderer.domElement.style.pointerEvents none移動(dòng)端卡頓陰影 抗鋸齒開(kāi)銷(xiāo)太大關(guān)陰影或關(guān) antialias建筑材質(zhì)全變了多個(gè)建筑共享同一個(gè) material修改前先 clone()相機(jī)穿地OrbitControls 未限制俯仰角設(shè)置 maxPolarAngle這七個(gè)問(wèn)題是我項(xiàng)目里實(shí)際遇到過(guò)的每一個(gè)都花了不少時(shí)間定位。尤其 z-fighting 和共享材質(zhì)定位過(guò)程極其迷惑經(jīng)驗(yàn)不分享出來(lái)真心難受。6.4 項(xiàng)目工程化在 Vue 里集成 three.js熱詞里提到“vue2 百度 3d 實(shí)景地圖加載 3d 模型”這個(gè)方向很多人問(wèn)。我在實(shí)際項(xiàng)目里是把 three.js 場(chǎng)景封裝成一個(gè)獨(dú)立的類(lèi)然后掛在 Vue 的 mounted 鉤子初始化卸載時(shí)銷(xiāo)毀渲染器和 scene。這里給出一個(gè)精簡(jiǎn)的集成模式export default { mounted() { this.map3d new Campus3DMap(); this.map3d.init(document.getElementById(map-container)); }, beforeDestroy() { this.map3d.dispose(); } };所有的 three.js 代碼盡量不直接寫(xiě)在 Vue 組件里而是抽成獨(dú)立模塊。好處是后續(xù)更換框架、復(fù)用場(chǎng)景、單元測(cè)試都方便。數(shù)據(jù)請(qǐng)求放在 Vue 層通過(guò)事件或方法注入到三維場(chǎng)景中這樣數(shù)據(jù)和渲染完全解耦。6.5 three.js 版本與資源獲取熱詞里有人問(wèn) three.js 怎么下載、中文文檔在哪統(tǒng)一說(shuō)一嘴。three.js 目前最推薦的方式是 npm 安裝npm install three如果做 CDN 引入官方推薦用 ES module 的 importmap 方式。中文文檔方面three.js 官方文檔是英文的國(guó)內(nèi)有一些中文鏡像站但更新可能滯后我更建議直接看官方示例和源碼遇到不懂的 API 去搜“three.js 類(lèi)名 用法”比看靜態(tài)文檔更高效。注意 npm 安裝版本要用 latest避免舊版本 API 和當(dāng)前示例代碼不一致。有些老教程用的是 Geometry新版已經(jīng)改成 BufferGeometry照著抄會(huì)出現(xiàn)各種報(bào)錯(cuò)。7. 還能怎么擴(kuò)展這個(gè)校園 3D 地圖做完之后我最大的體會(huì)是three.js 做小范圍 3D 地圖的能力被很多人低估了。它沒(méi)有內(nèi)置“地圖”的概念但正因如此它的表達(dá)完全由你掌控。你可以在上面疊加熱力圖、動(dòng)態(tài)軌跡、時(shí)鐘動(dòng)畫(huà)、夜景燈光秀、天氣系統(tǒng)甚至把 BIM 模型導(dǎo)進(jìn)去做樓宇內(nèi)部漫游。后續(xù)我打算在這個(gè)項(xiàng)目里加入行人導(dǎo)航動(dòng)畫(huà)讓小紅點(diǎn)在校園道路網(wǎng)里自動(dòng)尋路想一想就覺(jué)得可以做很多有趣的玩法。如果你正在規(guī)劃類(lèi)似項(xiàng)目我的建議是先從最小可行版本開(kāi)始一小塊地形、兩棟建筑、一條路跑通全流程再逐步增加密度和效果。別一上來(lái)就想做超大場(chǎng)景先解決“有沒(méi)有”再解決“好不好”。做 3D 地圖最磨人的不是 three.js 本身而是數(shù)據(jù)清理和坐標(biāo)系轉(zhuǎn)換這幾步耐心做扎實(shí)后面就能順暢很多。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲激情视频| 99欧美| 激情五月综合网| 情色五月天久久久| 亚洲最新Av| 日本免费亚洲欧美| 国产精品69久久久久久久 | 五月天激情四射| 久久久成人精品| 免费久久一级毛片大黄| 91人人看| 啪啪视频亚洲第一| 亚欧洲一区二区视频| 亚洲国产综合视频| 98超碰欧美| 99精品国产户外露出| 啪啪啪大香蕉| 97综合激情| 午夜高清成人在线视频| 黄骗免费网站| 久久超碰av在线| 国产传媒操逼视频| 91情色在线| 一区二区三区在线资源| 无码区蜜乳| 99精品久久久久久| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 国产成人在线观看网址| 欧美91视频| 亚洲极品| 男人的天堂在线| AV天堂电影网| 日本人人操人人操| caoni国产亚洲av| 国产路线专区| 亚洲成人AB| 久久国产99精品72福利| 大香蕉免费乱伦视频| 欧美精品宗合| 97超级久久| 欧美人妻色| 超碰超碰95| www.zbzhongsen.com| 亚洲av噜噜噜噜噜噜| 97精品在线| 天堂日本亚洲欧美| 中文字幕在线观看第二页| 3p国产色噜噜一区| 婷婷99| 顶级丝袜熟女一区二区三区| 久久久久久99AV无码免费网站| 亚洲AV色图一区| 色香在线| 丝袜美腿操av| 成人性交午夜免费片| 鸥美精品一区二区久久婷婷| 色色色综合| 超碰国产精品无码| 五月亭亭六月丁香| 精品高清一区二区三区三州| 六月天婷婷| 青青草视频爽一爽| 美女性91| 亚洲黑丝在线| 欧美性第1页| 国产亚洲精品久久久久小| 日本日皮视频逼| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 噜噜噜噜久久久精品免费| 美女操逼A A| 天天综合网~69| 午夜操一视频一区| 五月丁香影院| 大香蕉草草| 国内毛片无码一级毛片| 97精品97久久| 综合激情五月丁香| 国产精品乱码久久久久| 精品久久久av| 97人人夜夜精品视频| 嗯啊啊啊轻点视频 | 伊人网高清| 激情五月天丁香社区| 久热这里| 男人天堂久久精品| 成人久久久| 亚洲人在线| 亚洲第一免费视频| 99久在线精品99re8蜜桃| 欧美在线第五页| wwwxxx日本爽| 91爰爱欧美| 91国产精品在线看| 97天天| 五月丁香激情啪啪| 欧美狠狠| 色偷综合| 99热99re超碰精品| 亚洲伊人久久综合97| 日本 欧美 亚中文字幕| av毛片aaaaa免费看| 中文字幕55555| 亚洲97久久精品亚洲| 96久久久精品| 色爽爽文学| 永久电影三级在线观看| 国产乱不卡| av九九| 69XX一中文字幕人妻91| 午夜精品久久久99热蜜桃的功能特点| 久热9| 五十路一区无码| 久久天天摸| 综合操逼| 影音先锋每日最新资源在线观看| 人妻精品一区二区三区| 不卡一区视频| 内射日韩大臀美女| 99热免费| 再深点灬舒服灬太大了好硬好爽| 夜夜天天噜狠狠爱2021| av网站国产主播在线| 好爽要喷了| 亚洲精品一二三四区| 激情五月天视频| 韩国一级婬片A片无码天美| 中文字幕AV中出| 日本性一区| 蜜臀AV成人精品蜜臀| 91色婷婷综合久久中文字幕二区| 欧洲黄色网| 狠狠爱夜夜| 欧美大香蕉同搞| 9国产超碰| 亚洲97在线观看| 91青青| 免费视频观看60秒| 亚洲在线A| 97超碰伊人| 欧美大片天天看| 色 亚洲 91| 亚洲日韩乱码中文无码蜜桃臀网站| 久久久一热在线播放| 丁香啪啪| 97视频900| 久久伊人网视频一区二区三区| 日韩精品三区四区| 成人日韩中文字幕| 九九视品黄色| 嫩草伊人久久精品| 亚州高清AV| 欧中美三级一区二区三区| 九热久| 国产精品999aaa| 色欲蜜臀AV| 欧美精品999| 99re这里只有精品中心播放 | 日本一区二区三区欧美日韩中文字幕| 亚洲综合网图| 欧美激情亚洲| 欧美亚洲一级在线观看| 激情综合色| 91精品人妻一区二区三区蜜桃臀| 午夜精品久久久久久久99热影院| 性高潮久久久久久久久久久| 欧美一二三级精品在线| 强奸乱伦大香蕉| 99操| 欧美日日人人天天| 亚洲色图欧美色图日韩色图| 久久黄黄| 男女香蕉一区二区| 久久综合18p| 亚洲色狠| 精品人妻一区二区三区在| 狠狠操夜夜| 中文伊人大香蕉视频| 性欧美精| 亚洲古典另类欧美在线| 久超超碰| 亚洲视频1区| 黄页18禁| 3PAV乱伦视频| 五月综合色| 久久9精品网站| 日韩人妻一二三区视频| 99黄页网站| 成人精品久久久午夜福利| 美中韩AV综合网| 9 1果冻精品视频| 97在线精品| 国产精品另类| 亚洲另类久操网| 亚洲色图欧美色图制服诱惑| av无码精品久久久久| 四虎精品一区| AV天天在线观看| 探花精品 一区二区| 精品久久99| 亚洲动态色图| www.AV有限公司一区| 欧美色www亚洲国产阿娇要播| 激情文学网伊人| 亚洲av成人精品一区| 国产精品肉丝自拍| 8050无码八戒| 老司机午夜精品视频| 日本999精品| 国产精品熟女丝袜一区二区| 97免费在线观看视频| 亚洲国产剧情少妇激情| 亚洲国产一级精品毛一级精品看免费视频 | www.超碰| 熟妇的味道HD中文字幕| 巨爆乳一区二区爆乳区| 国产美女自拍视频| 青青草好吊色| 98久久超碰| 天堂伊人久久| 走光一区92下载| 久久久熟妇熟女国产| 久久超碰久| 日韩一性一交一A片俄罗斯| 成人羞羞视频国产| 成人精品视频一区二区| 青苹果影院男人的天堂| 91在线限制级| 久久久久久久六六| 精品中文日韩字幕视频| 冬京热男人的天堂| 99九九久久| 97se综合网| 少妇 综合| 人妻中文字幕日韩电影| 日本久久精品| 青娱乐 成人娱乐在线| 超碰亚洲欧美日韩无| www鬼畜国产男人的天堂| 色婷婷亚洲婷婷| 333kkkk·亚洲com久久| 五月丁香综合| 亚洲人妻熟妇三十三区| 99超碰网| 午夜福利无毒不卡| 蜜乳视频网站| 思思热在线观看| 啊啊啊啊啊在线视频| 日本久久999| 国产区在线| 色姑娘综合网| 欧美一级AAAAAAA| 久操凹凸视频| 亚洲国产欧美中文永久| 人人摸人人干| 美欧色综合| 国产对白刺激视频| 国产超碰国产97| 久久久神马影院| 日韩无码一级黄色av片| 亚洲无线观看久久| 伊人女女资源在线观看| 少妇三p| 亚洲欧美精品一区天堂久久| 白嫩国模丰满一二三区| 男女性感激情网站| 国产一在线观看| 91中出| 欧美在线综合| 中文欧丝袜诱惑| 日本天天吊| 日韩精品一区二区高清| 中文字幕97| 秘书高跟黑色丝袜国产91在线| 人妻插插人妻人| 五月婷视频| 隔壁邻居波多野结衣中文字幕 | 老熟女综合网| 欧美在线|亚洲| 欧美日韩小说| 亚洲 暴爽 AV人人爽日日碰| 97香蕉网| 亚欧免费| 国产粉嫩出水在线播放| www.zbzhongsen.com| 黄骗免费| 日韩无码操逼片| 色色色色日本| 中亚av| 欧美亚洲涩涩| 91 偷| 啊啊啊慢点| 色妹子A V| 日本精品免费一区二区三区四区| 亚洲自拍欧美色综合| 国产视频97| 唯美清纯 妖精视频| 欧美色狠| www.色婷婷色综合| 欧美暴力猛交| 蜜臀久久99精品久久久电影| 超碰av在线| 夜夜爽妓女| 国产免费一区| 日韩黄片视频试看| 亚洲欧美天堂在线| 婷婷婷婷婷婷久久久久| 免费AV播放| 欧美性爱网97| 亚洲天堂五月天国产| 伊人婷婷五月天| 秋霞男人网| 久草电影网| 久草网站免费在线观看| 草蕉影视亚洲无码| 久9re热视频这里只有精品| 日本三级一区二区 在线| www.国产高潮精品| 吉川爱美亚洲二区在线 | 无码天堂| 殴美,日韩国产伦精品| 加勒比av网| 国产女人操逼视频| 99在线观看视频在线高清| 成人a大片在线观看| 熟女自慰久久久| 在线人成亚洲视频免费观看| 男人的天堂2018.| 上特色A在线| 99热色这里只有精品| 97在线观看| 啊嗯好大视频在线观看| 福利操逼| 78操B| 欧美78p| 中文字幕天堂在线| 日韩欧美中文字| 成人精品一区二区91毛片不卡| 爱欲AV| 亚洲av影音先锋| 91白虎| 欧美A√综合网| 天天射天天| 美女黄码视频午夜| 在线观看免费视频国产| 欧美综合色图片| 欧美午夜精品久久久久久超碰| 亚洲欧美一区二区网址| 后入式999| 91亚·色| 五月天精品| PMv在线观看| 亚洲色图第四色| 免费9 1久久| 欧美 亚洲 偷拍自拍| 小日子操bb在线看| 夜夜草天天| 96久久久久久久| 天天舔天天日天天射| 99精品在线播放| 亚洲国产精品无码AV久久久| 97精品97久久| 暖暖精品二区三区观看| 五月天婷婷综合| 青娱乐国产盛宴视频| 欧美日韩亚洲天堂| 青青草华人在线欧美在线| 亚洲91网。| 亚洲欧洲小说图片视频| 亚码激情| 情色日播放AV| 蜜臀在线免费观看在线免费观看| 国产自偷自拍一区| 日韩性爱小视频在线观看| 国产日逼视频| 日本高清有码网址视频| 人人摸人人摸人人干| 国产精品分类在线观看| 久久性爱精品一区| 91操人| 亚洲欧洲无码bt精品合集| 超碰这里有精品| 免费超碰97久久| 欧洲精品久久| 欧美高清16| 欧美精品宗合| 中国女人内射6XXXXX| 91丝袜美女国产| 岛国小电影| 欧美色图片91| 99这里只有精品| 麻豆AV一区二区天美传媒| 97在线免费看视频| 久久毛卡| 91九色丨国产丨爆乳| 2025亚洲男人天堂| 九九九国产精品| 东京热大香蕉| 超碰狠狠操| 青青草字幕AV| 色欲Av人妻精品一区二| 91人人看| 亚洲无码一区成人免费午夜 | 小视频国产| 欧洲天天在线| 欧美色图片欧美色图| 日韩熟女三十乱伦| 色综合色色| 中文幕97| 人人看人人爰人人操| 国产精品一二三免费网站| 欧美情色贴图| 久久国产乱子伦精品免费女人| 狠狠操狠狠插| 午夜精品久久久久久久久久久久久| 免费观看网黄| 欧美色图 人妻| 香蕉99秘 一区精品蜜桃臀| 在线观看综合精品亚洲| 欧美色97| 亚洲男人的天堂一区二区| 亚洲AV无码乱码| 国产亚洲99久久精品| 天天综合网~91| 大香蕉综合| 玖玖爱视频网站| 中文字幕精品探花视频| 玖玖综合色| 国产精品国产自产高清AV | 国产欧美岛国精品一区| 综合亚洲网| 婷婷五月天成人网| 操碰97| 一牛一区二区三区久久| 国产精品一级片在线看| 亚洲精品97久久| 日韩AV电影网站| 老司机深夜18禁污污网站| 撸撸成人在线视频| 最新啪啪视频| 欧美人与动性人交a| 精品一区二区三区四区女| 强被迫伦姧在线观看无码网站| 亚洲自拍欧美国产首页网曝| www.激情| 亚欧视频在线| 美女裸体无遮挡永久免费观看网站 | 人人看黄色视频| 91久久国外网| 国产欧美日韩在线不卡第一页| 九九九九97| 亚洲色人妻综合| 亚洲黄色a级片| 91大神精品长腿在线观看网站| 97爱碰| 96精品在线| caoni国产亚洲av| 天干天干天干天天做| 国产亚洲欧洲在线观看| 永久免费发布性爱网| 久久国产AⅤ| 国产精品第二页| 97久久精品亚洲| 在免费jIzzjIzz在线视频| 熟妇乱伦一区二区| 久久精品熟妇丰满人妻99| 久久伦理视频久久大香蕉视频| 欧美亚综合色图| 久久极品一区二区| 国精品一区二区三| 99爱久久视频频| 中文字幕少妇色 | 免费视频一二三区| 天天透伊人| 麻豆成人影音在线| 啊啊啊啊啊在线| 91M一社| 91美女国产在线| 97视频新免费| 九久久精| 操碰97| 一级片视频啪啪| 成人精品一区二区91毛片不卡| 欧美亚洲素人制服精品| 强奸乱伦中文字幕AV| 国产最新小视频在线播放下载 | 97ai亚洲| 五月丁香黄色网| 操婢日韩| 激情丁香五月| 67194无码不卡| 天海翼久久| 久久久久久久久久久久97| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 亚洲国产蜜臀系列在线观看| 操熟女91| 亚洲无码?第一页| 大香蕉 222| 欧美熟妇亚洲版| 97摸视频| 中文字幕少妇色 | 97碰碰色| 免费看日产一区二区三区| 好淫网一二三视区| 91欧美www| 国产亚洲精品第一最新| 粉嫩少妇自慰在线| 日韩99999| 九月丁香婷婷色| 999久久久久久久精| 欧美日韩美女精品久草一区二区三区| 精产品久久| 亚洲少妇中文字幕网址| 欧美色图在线视频少妇| 翔田千里AⅤHD无码| 一级久久性爱视频| 欧美色色人| 国产精品自拍xxxx| 久久日本熟女精品一区| 亚洲成人性爱网站在线播放| 爱爱动态120秒| 九九久久玖玖| 91女人的网站| 亚洲AV噜噜狠狠网址蜜桃动漫| 欧美熟爽综合| 久久久三区二区一区| 日韩欧美字幕亚洲一区二区| 麻豆a'v电影| 久久婷婷亚洲| 色婷婷一区二区三区久久| 嗯嗯嗯好爽| 精品亚洲成人免费在线| 亚热日本熟女| 91GD.COM| 国产无码精品久久久久久| 亚州色站 日韩电影| 国产精品午夜AV完会免费| 熟女欧美日韩综合婷婷| 日韩性爱电影一区| 欧美日韩插逼视频| 高精欧美色| 夜夜久久| 五月综合激情网| 91香蕉视频在线观看免费| 午夜精品久久久久久久99热影院| 91九色在线| 日韩免费在线观看不卡| 道久久五香丁月婷婷激情综合| 亚洲国产奇米影视久久| 色婷婷国产精品一区在线观看| 成人日本精品九区| 中日无幕一二三四区| 少妇人妻好深太紧了vr91| 东京热AV男人的天堂| 91丝袜在线观看视频在线观看| 亚洲第一成人影院色播| 欧美日韩大黄片| 外站AV在线| 久久老熟女| 欧美线天码中字| 黑人精品久久97| 亚洲综合中文字幕有码| 欧美成熟性爱精品| 无码一区免费在线不卡| 欧美人体性爱互联网第一页婷婷日本| 精产品久久| 伦理弟一页| 久久综合乱子伦国产免费| 一区二区 韩日AV| 精品九九国产无码| 人人潮人人摸| 无码国产精品久久久久| 日日碰狠狠添天天爽超| 激情av| 亚洲男人天堂2019| 好看的91视频| 99青青草国产视频| 老熟女区| 东京热熟女亚洲视频网站| 欧美日韩亚洲电影| 不卡视频一区蜜桃视频| 极品极品色影院| 男人天堂久久精品| 亚洲日韩熟女人妻高清在线| 少妇人妻太紧太深av| 加勒比在线视频一区二区三区| 思思热影视| 丁香六月婷婷| 四虎视频在线观看| 中文字幕黄色一起草| 91精品国产一区三一| 国产精品白丝在线播放| 九色PORNY9l原创自拍| 欧美熟女激情| 玖玖久久久| 国产精品国产亚洲区艳妇糸列| 亚洲一本色道中文无码aV天美| 天天综合网站| 日夜干射色啊| 女上位精品在线| 色情五月综合婷婷| 91蜜桃传媒精品久久久一区二区| 视频二区美腿丝袜制服人妻欧美| 亚洲 欧美 日韩 国产一区二区| 亚洲a色| 综合伊人网12色| 操逼大黄片| 67194无码不卡| 好涩综合| 亚洲1区| 97超碰国产亚洲精品| 91一区二区三区蜜桃| 99热精品在线| 亚洲男人天堂网站| 欧洲站一级二级三级h| 亚洲日韩肥臀视频在线观看| 91爱网| 99热自拍| 亚洲清纯综合| 手机不卡视频不卡在线一二三区| 国产激情在线| 国产AV高清AV无码| 97ai亚洲| 欧美综合第一| ..日韩av毛片精品久久久| 国产地址二三| 人人爱人人操人人性| 97在线资源| 91一起操| 国产亚洲精品一区二区三区| 男人的天堂VA在线| 小情侣高清国产在线视频| 久久偷偷色综合蜜桃| 国语对白在线播放视频| 日本2020一区二区| http://qxhbdz.com| 亚洲日韩视频二区| 国产精品九九| 日韩三级一区| 亚洲 欧美 日本 国内 首页| 五月丁香六月婷| 亚洲自拍97| 亚洲熟女乱熟乱熟妇综合网二区| 国产精品久久久久av| 水多多映视AV| 久久中出在线| 五月综合色| 黄色一区二区秘书性感| 97亚洲自在精品在线观看| 1024亚洲中文字幕久在线看片你懂的| 亚洲精品国产熟女| 欧美岛国精品在线观看| 狼人综合婷婷激情四射 | 性欧美91| 少妇蹲下买菜露大唇0| 12一15性XXXX粉嫩国产| 午夜福利 成人 91| 欧美淫乱视频| 久热99999| 伊人久久亚洲色欲综合网站| 亚州 综合 色图| 嗯嗯啊好大| 日本一天色道久久久精品视频| 久久久久久性爱视频| 日韩伦理视频| 欧美一区二区三区大综合| 亚洲中文人妻色| 亚洲精品天天影视综合网| 啊啊啊好舒服好爽啊啊啊视频| 国产13区| 亚洲s色图| 欧美另类天堂| 国产又粗又大硬免费色网视频| 亚洲丝袜二区在线| 日本精品久久久久久久| 人妻另类| 十八禁视频一区二区| 成人aⅴ一区二区三区| 丰满岳乱妇一区二区三区| 亚洲制服欧美另类内射| 五月丁香六月婷| 欧美久久婷婷| 婷婷人妻激情| 2023天天操夜夜操| 秋霞曰韩R级| 青青草视频久久| 天天干天天日天天射黄色| 麻豆伊人网| 欧美色视| 粉嫩不卡一区二区性爱| 欧美专利1区2区3区4区5区免费| 东北女人的毛片| 黑人综合网| 国产一区二区三区导航| 亚洲 se图 欧美电影| 97爱b| 亚洲综合20p| 久久激情综合| 少好三P| 国产精品香蕉热久久新品| 红桃视频高潮| 久久性爱视频99| www.操| 国产精品乱码久久久久久| 久久av色| 内射中国少妇高清视频免费视频| 人人搞人人插人人操| 超碰色男人操熟女| 亚洲精品成人| 国产AAAAAABBBBB| 九九热精品| 亚洲999综合| 日韩毛片9| 偷拍偷窥与盗摄视频专区| 亚洲天堂无码| 欧美色图 人妻| 91老熟女| 日韩人妻大香蕉| 天天干夜夜操一区二区| 国产精品一级特黄aaa大片在线观看| 六九九九| 超碰97欧美| 色色香蕉| 亚欧洲一区二区视频| 隔壁邻居波多野结衣中文字幕 | 无码动漫av中文字幕| 亚洲影视综合网| 999999精品| 丁香六月啪啪| 91高清欧美| www.91逼逼.com| 久久久∴| 麻豆视频一区二区| 精品久久一区二区三区四区五区| 熟妇人妻一区二区 | 97超碰欧美手机| 秋霞免费无码视频日韩A片| av天堂影视中文在字幕在线中文| 国产精品农村妇女| 操逼国产免费| 操淫穴亚洲五月丁香| 四虎av在线| 97人人操人人摸人人爱| 97久久国产亚洲精品超碰热| 啪啪啪综合网| 人人操人人大香蕉| 精品九九九| 青青草华人在线欧美在线| 另类在线| 国产成人手机视频激情| 亚洲97综| 美女啊啊啊啊啊| 大香蕉综合在线| 九九九久久久W精品| 中文字幕艹艹| 亚洲中文字幕网| 男女激烈网站最新| 热久日综合| 污污汅18禁网站在线永久免费观看 | 99这里都是精品| 黑人天8A∨高清网站| 狠狠操狠狠| 岛国成人av在线播放网址| av一区二区三区四区| 日韩欧美日韩| 伊人影院日本| 天美传媒精品一区二区| 亚洲黄色电影| 久欲AV| 五月天综合网| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 国产精品久久久久绯色| 亚洲春色欧美激情自拍| 97国产超湿| 久久久久9999精品九九九| 9久精品视频在线观看| 亚洲清纯唯美| 中文字幕视频2区| 欧美嗯啊……在线观看视频免费| 好吊色青靑草| 97自拍一区| 97欧美| 国产亚洲色婷婷久久99精品91葵花宝典| 97视频网站在线观看| 国产传媒日韩| 亚洲操逼视频网站| 亚洲天堂第一页| 亚洲密乳AV| 男人天堂毛片| 精品久久一区二区三区四区五区| 一本色道久久综合亚洲二区三区| 亚洲AV噜噜狠狠网址蜜桃动漫| 涩涩五月天| 中国大陆国产高清AⅤ毛片| 国产免费一区二区三区最新不卡| 老鸭窝亚洲毛片| 天天92av| 天天色欧美| 亚91亚洲网| 欧美日韩精品国产91| daxiangjiao你懂的| 欧日韩一二三f区| 中文字幕人妻资源在线| 亚洲AV无码久久久国产精品| 观看免费区二区三区二| 天天躁夜夜躁狠狠躁AV| 国产精品点击进入在线影院高清 | 色婷婷成人| 少妇与黑人高潮在线| 欧美激情 一区| 国产超碰AV在线精品| 大香蕉一区二区在线观看.| 色婷婷狠狠18禁| 丝袜综合| 曰韩人妻中文字幕在线| 色黄污美女啪啪啪免费网站| 日本久久99| 大肉棒导航| 天天综合亚洲综合| 日韩不卡在线一区二区| 中文字幕日产av人| 啊啊啊爽爽| 欧亚乱色熟女一区二区| 中文久久一区| 欧美资源| 精品久热| 日韩99999| 成人性爱美曰韩| 啊啊啊快操我视频| av在线人气| 欧美亚洲手机在线| 懂色AV蜜臀无码精品APP| 91久久堂| 亚洲影院无码在线| 亚洲 91 在线| 天美传媒AV在线| 国产一级黄色片在线观看| 91逼逼女人91| 久9爱精品| www.色吧5.com| 久久婷婷一区二| 欧美色图欧美| 欧美毛片在线网| 亚洲成人在线乱码色午夜| 国产乱伦性爱AV| 国产午夜福利合集| 婷婷五月天影院| 99热18这里只有精品| 日本五十路熟女一区二区| 日本中文字幕一区| 天天操夜夜操狠很操| 熟女中出视频| 天天视频网站黄| 性爱AV天堂| 岛国激情视频软件| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 自怕偷自怕亚洲精品| 天天综合网国产| 国产精品美女视频诱惑| 啪啪视频mP4| 国产无码精品成人| 欧美成人亚洲精品| 黄色香蕉视频网站一区| 免费人人搞97| 中文字幕,人妻,日韩| 粉嫩久久久久| 无码聚合| 久久欧美激情| 亚洲图片 91| 日韩无码一级黄色av片| 黄色高清久久无码依人| 亚洲熟女性高潮久久久| 97就爱干| 欧美国产日韩高清在线| 97无码视频在线播放| 精品国产一区二区三区久久久蜜臀| 亚洲欧美在线观看无码| 欧美在线视频播放| 91一起操| 日韩熟女操逼| 伊人在线大香蕉视频久久| 久热91| 久久人妻熟女一区二区 | 色悠久久久av| 综合网色| 日本国产欧美一区三区二区| 久久人妻无码毛片A片麻豆| 岛国成人av在线播放网址| 天天操福利视频综合网站| 亚洲日本成人动漫| 国产乱伦亚洲色图高清无码| 五月天婷婷社区| 欧美日韩夜夜| 国产精选三级在线观看| 风月影院十八禁| 久久骚| 人妻天天操天天爽视频免费| 东京热男人的天堂精品| 夜夜操二区| 亚洲国产精品无码AV久久| 亚洲欧洲无码一区夜| 99色热| 欧美日日操| 97在线视频网站| 久久6热精品99视频| 91爱综合| 色综合久久88色综合久久天天| 欧美肥臀在线| 中文字幕在线高清男人的天堂 | 亚洲一区二区AV| 天综合网欧美| 天天射影院| 丰满人妻一区二区三区四区| 精品78| 91热| 亚拍在线| 啊啊啊啊二区好大| 六六久久日韩不卡| 丁香六月综合激情| 夜夜天天噜狠狠爱2021| 成人小说另类在线| 97亚洲综合在线| 久久久少妇诱惑精品视频| 性欧美天天| 99.色网| aaaa黄片| 中国国产精品一区视频| 第四色奇米影视777| 欧美亚洲情色| 熟妇色99| 夜夜欧美| 色久桃花影院在线观看| 97亚洲在线| 成人女人国产| 五月丁香| 国产精点久久久成人| 欧美人人曰人人操人人射射| 97免费视频在线| 99在线精品观看视频中文| 97爱b| 国产精品乱人伊人网| 欧美另类色图片| 国产成年免费大片黄在线观看| 澳门黄片一香蕉视频| 91综合色| 2023天天操夜夜操| 婷婷操视频| 亚洲日本大香蕉1| AV色五月天| 九九热九九热| 天天上日日上日韩精品| 欧美激情高清性猛交| 欧美综合色,www| 99热这里都是精品| 日本久久超碰| 一区二区三区一亚洲中文字幕、综合区灬 | www网站黄| 久草免费福利在线播放| 深夜国产一区二区三区在线看| 日韩三A大片在线观看| 亚洲免费在线探花| 偷拍三区| 日本视频一区二区三区| 日韩亚洲中文有码视频| 亚欧成人中文字幕一区| 婷婷中文网| 日本东京热久久久电影| 精品国产乱码| 国产亚洲精品农村妇女| 91小视频| 色婷婷狠狠18禁| 中文字幕 人妻不满 在线视频| 免费看一级a性色生活片久久无| 色九九九九久| 黑丝少妇麻豆| 啊啊啊久久久视频| 99re在线视频这里只有精品| 激情文学亚洲| 久久99九九九九6666免费观看软件| 久久精品国产亚洲粉嫩| 神马久久午夜| 4tube欧美女厕所| 欧美色图99| 亚洲欧美清纯| 中国人高清www色视频免费| 精品国模无码| 岛国片在线观看视频亚洲| 久草婷婷| 五十路熟女工口| 伊人96在线| 亚洲欧美另类图片| 国产精品盗摄 偷窥盗摄| 91呆哥人妻| 男人的天堂2010| 91天天综合网,天天综合网| 九九av| 亚洲天堂男人的天堂| 精品无码不卡视频| Sekablack无码一区| 校园春色五月天| 日韩黄色av中文字幕| 狠狠爱综合网| 96免费视频在线| 啊啊啊男女| 一中国女人毛片水真多| 免费在线观看AV无码网站| 东京热男人的天堂网| 亚洲色图 图片| 亚洲成人贴图| 免费毛片在线播放| 色鬼在线综合| 久久久久久久91| 噜噜噜在线视频| 天天日天天插| 午夜AV污污污| 亚洲无无码αⅴ每日更新| 亚洲午夜AV| 国产日韩中文字幕欧美| 亚洲精品一区二区精华| 99色色| 欧美 综合 亚洲| 亚洲国产成人精品999| 一区二区影院| 亚洲网自拍| 综合网 欧美| 99999精品成人| 日韩性爱视频在线免费观看 | 97av在线视频| 欧美乱妇狂野欧美在线视频| 人人摸人人入| 天天综合精品| 亚洲人成色9999精品久久| 日日爽熟女| 91亚洲色人| 久热精品色情| 亚洲日韩人妻中文字幕一区| 色婷婷亚洲婷婷| 人人操人人摸超碰| 日本一区二区三区免费观看| 中文字幕老熟妇黄色视频| 国产精品粉嫩福利在线| 国产综合在线视频网站| 亚洲国产精品乱码在线观看| 亚州黄站| 中国探花熟女| 熟妇一区,二区,三区。| 国产午夜精品理论片一二三区区| 中文字幕五区| 青青草在线视频播放器| 狠狠色婷婷| 伊人久久亚洲色欲综合网站 | 天天综合网亚洲综合网| 国产精品久久久久久久黄无码| 91 综合 色| 欧美日产国产在线成人第一区| 啊啊啊不要啊啊受不了了视频在线 | 99热婷婷一区二区三| 久久综合九九| 色97干| 91大神电影天堂| 强奸乱伦AV一天堂网| 久久国色天香香蕉| 日韩欧美性爱电影在线观看| 在线综合 亚洲 欧美中文字幕 | 国产探花日韩援交| 欧美高清性猛交| 亚洲毛片基地专区| 久久嫩草国产成人一区| 免费观看一区| 九九久久首页| 老熟女乱伦一区| 国产人妻一区二区三区欧美毛片| 国产三级多多影院2022国产AA一级毛片无码 | 俞拍自拍| 日韩一级片| 国产在线视频午夜精华在| 蜜桃视频精品一区二区三区| 人人看欧美性爱| 国产九九九九九九| 久久久人妻| 蜜乳成人AV| 密臀成人视频久久久| 国内毛片无码一级毛片| 伊人热综合| 欧美色997| 免费日韩黄片| 男人天堂站| 日本三级一区二区 在线| 免费99精品国产自在在线| 国内三级自拍小视频在线观看| 日韩精品午夜操呦呦不卡影院| 草莓精品视频在线免费观看| 日本一区三级韩国| 在线观看亚洲专区| 97综合国产| 亚熟hd视频在线| 九月色婷婷| 欧州一区二区三区四区| 国产深喉| 亚洲色图20p| 久久ww| 国产精品第一区第一页| 亚洲诱惑天堂 | 日本一级黄色电影| 欧美人与动性人交a| 五毛骚逼极品美女怕怕| 少妇99成人麻豆| 韩国午夜理伦三级好看| 亚洲一区日韩精品中文字幕| 国产91精品久久久久久久网曝门| 无码国产精品久久久久| 精品午夜福利| www.acm成人黄色毛片| 欧美午夜色妇色鬼| 丁香色色网| 久久三| 日韩免费a级毛片无码a∨| 久久久久深夜无码| 粉嫩国产精品久久久| 日产狠狠干| 97欧美性爱| 熟妇的味道HD中文字幕| 国产欧洲精品亚洲午夜拍精品| 久久综合久久综合人久久夜精品| αⅴ天堂| 高清有码一区二区| 亚州综合色| 亚洲九九视频| 2026国产精品视频| 国产夜夜操| 啊啊啊啊啊在线观看网址 | www.91色| 亚洲欧美综合区自拍另类 | 日本三级久| 天天做天天爱天天爽| av资源在线播放天堂| 四虎影视永久在线免费| 亚洲成人在线高清| 97国产超碰| 色悠久| 欧美激情视频一区二区| 蜜臀Av一区二区三区| 亚州色图狠狠干| 亚洲精品久| 精品无码一区二区| 日韩熟妇二区| 亚洲男人天堂Av| 丝袜大香蕉| 超踫中文字幕| 色婷婷电影网| 久久婷婷五月| 婷婷五月天成人| 手机看片1025| 婷婷五月天成人网| 激情九月婷婷| 国产91乱伦| 国产高清精品一区二区三区毛片| 亚洲成aⅴ人片不卡无码| 熟女人妻一区二区三区免费看 | 精品无码一区二区三区| 大学生美女口爆|