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

ARTICLE DETAIL

資訊詳情

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

大模型+AI 3D建模:智慧農(nóng)業(yè)數(shù)字孿生大屏實戰(zhàn)

大模型+AI 3D建模:智慧農(nóng)業(yè)數(shù)字孿生大屏實戰(zhàn) 1. 項目緣起與整體設計思路1.1 為什么想到用大模型加3D建模來做農(nóng)業(yè)大屏去年底我接手了一個智慧農(nóng)業(yè)園區(qū)的數(shù)字化項目甲方最初的訴求很樸素把園區(qū)里的傳感器數(shù)據(jù)、氣象站數(shù)據(jù)、灌溉設備狀態(tài)集中到一個大屏上展示。我一開始想的是常規(guī)方案用ECharts堆圖表再配幾個數(shù)字翻牌器兩天就能交付。但去現(xiàn)場踏勘之后我改主意了——這個園區(qū)有1200畝分成了育苗區(qū)、種植區(qū)、加工區(qū)、倉儲區(qū)四個功能板塊光靠二維圖表根本表達不清楚空間關系。比如灌溉閥門A3-07報警了你在表格里看到一行紅字但你不知道它在哪塊地、離哪個泵房最近、影響的是哪幾壟作物。所以我就想做一個3D數(shù)字孿生大屏把整個園區(qū)按真實地形和建筑布局還原出來傳感器數(shù)據(jù)直接掛在對應的3D模型上點擊就能看詳情。這個思路不新鮮但傳統(tǒng)做法是找建模師手工建模1200畝的園區(qū)光是建筑和地塊的模型報價就報了六萬多工期三周。我預算不夠時間也來不及于是開始琢磨能不能用AI來壓縮建模環(huán)節(jié)。這就是這個項目的核心思路用大語言模型做需求拆解和代碼生成用AI 3D建模工具做資產(chǎn)生產(chǎn)用Three.js做前端渲染和交互最終拼出一個可巡檢的3D農(nóng)業(yè)大屏。整個鏈路里GPT-6 Astra負責的是“大腦”角色幫我寫Three.js場景代碼、處理數(shù)據(jù)映射邏輯、生成巡檢路徑算法Tripo3D負責的是“手”的角色把文字描述或者參考圖直接轉(zhuǎn)成GLB模型Blender MCP則是中間的“修整臺”用來做模型減面、坐標歸零、材質(zhì)烘焙這些收尾工作。這套方案適合誰參考我覺得有三類人一是做智慧城市、智慧園區(qū)、數(shù)字孿生方向的前端或者全棧開發(fā)者想快速出原型但不想被建模卡住二是農(nóng)業(yè)信息化領域的實施人員手頭有數(shù)據(jù)但缺可視化手段三是對AI輔助3D開發(fā)感興趣的技術愛好者想看看當前工具鏈到底能做到什么程度。需要說明的是這套流程不是“一鍵生成”中間有不少手工干預的環(huán)節(jié)我會在后面的章節(jié)里把每個坑都講清楚。1.2 技術選型的取舍邏輯在動手之前我對比了幾條路線這里把思考過程攤開講方便你判斷自己的項目適不適合照搬。第一條路線是純手工建模加Three.js。這是最穩(wěn)的方案模型質(zhì)量可控但成本高、周期長。我算過一筆賬一個中等精度的農(nóng)業(yè)園區(qū)模型包含地形、道路、建筑、大棚、設備熟練建模師大概需要15到20個工作日按市場價折算下來接近兩萬。如果后續(xù)還要改布局返工成本更高。對于預算充足、工期寬松的項目這條路仍然是最優(yōu)解。第二條路線是用游戲引擎比如Unity或者Unreal做數(shù)字孿生再導出WebGL。這條路渲染效果最好但對前端團隊不友好打包體積大瀏覽器加載慢而且和現(xiàn)有Web數(shù)據(jù)平臺的對接成本高。農(nóng)業(yè)大屏通常是B端交付客戶電腦配置參差不齊太重的前端方案容易翻車。第三條路線就是我最終選的AI生成模型加Three.js輕量渲染。核心優(yōu)勢是資產(chǎn)生產(chǎn)成本被壓到極低Tripo3D生成一個基礎模型大概幾十秒雖然精度不如手工建模但對于大屏這種中遠景展示場景完全夠用。而且GLB格式是Three.js原生支持的加載鏈路短不需要額外的轉(zhuǎn)換工具。GPT-6 Astra在這里的價值不是“替代程序員”而是把Three.js里那些重復性的場景搭建代碼、材質(zhì)配置代碼、交互邏輯代碼快速產(chǎn)出我只需要做審核和微調(diào)。這里要特別說明一點AI生成的模型不能直接用于近景特寫。Tripo3D目前的輸出精度在幾千到幾萬面之間貼圖分辨率也有限你把它放到鏡頭前會看到明顯的粗糙感。但大屏場景通常是俯瞰視角或者中距離巡檢視角這個精度是夠的。我的做法是把園區(qū)按重要性分級核心建筑用AI生成后手工修整普通大棚和地塊用AI直接生成遠景的山體和樹林用程序化生成這樣把算力花在刀刃上。1.3 整體架構與數(shù)據(jù)流向整個系統(tǒng)的架構我畫過好幾版最終落地的版本分成四層。最底層是數(shù)據(jù)層園區(qū)現(xiàn)有的傳感器通過MQTT協(xié)議上報數(shù)據(jù)我這邊用Node.js寫了一個聚合服務把原始數(shù)據(jù)清洗后存到PostgreSQL里同時通過WebSocket推送給前端。這一層和3D無關但它是大屏的“血液”沒有實時數(shù)據(jù)3D場景就是個空殼。第二層是模型資產(chǎn)層所有GLB文件存在對象存儲里通過CDN分發(fā)。這里有個細節(jié)GLB文件要提前做Draco壓縮否則一個精細點的模型動輒十幾兆瀏覽器加載會卡死。我用Blender MCP批量處理了一遍把面數(shù)壓到原來的30%左右體積降到兩到三兆加載速度明顯改善。第三層是渲染層也就是Three.js場景。這里面包含地形網(wǎng)格、建筑模型、設備模型、標簽系統(tǒng)、巡檢路徑動畫。GPT-6 Astra幫我生成了場景初始化的骨架代碼包括相機設置、光照配置、OrbitControls控制器、Raycaster拾取邏輯。我在此基礎上做了大量修改因為AI生成的代碼有個通病它喜歡用最新版本的API但實際項目里你可能被鎖定在某個穩(wěn)定版本上需要手動降級適配。第四層是交互層包括大屏的UI面板、數(shù)據(jù)卡片、報警彈窗、巡檢模式切換。這一層我用Vue3加Element Plus做的和Three.js場景通過事件總線通信。點擊3D場景里的設備模型右側(cè)面板就彈出對應的實時數(shù)據(jù)切換到巡檢模式相機就沿著預設路徑自動飛行遇到報警設備自動停留并高亮。數(shù)據(jù)流向是這樣的傳感器到聚合服務到WebSocket到前端狀態(tài)管理到Three.js場景更新。整個鏈路我壓到了500毫秒以內(nèi)實測下來大屏上的數(shù)據(jù)刷新基本感覺不到延遲。2. 核心工具鏈拆解與關鍵細節(jié)2.1 GPT-6 Astra在項目中的實際角色很多人聽到“用大模型做3D大屏”第一反應是讓AI直接生成整個場景。我試過不現(xiàn)實。GPT-6 Astra再強它也沒法憑空知道你園區(qū)的地形起伏、建筑朝向、道路走向。但它能在三個環(huán)節(jié)幫上大忙。第一個環(huán)節(jié)是代碼骨架生成。Three.js的場景初始化代碼其實很套路化無非是創(chuàng)建Scene、Camera、Renderer、Lights再加OrbitControls。但每次寫都要查文檔尤其是版本更新后API有變動。我直接把需求描述給GPT-6 Astra“用Three.js r160版本創(chuàng)建一個包含環(huán)境光、平行光、陰影貼圖的場景相機用透視相機初始位置在園區(qū)東南角上方200米控制器限制俯仰角在15度到85度之間?!彼o出的代碼基本可用我只需要改幾個參數(shù)。第二個環(huán)節(jié)是數(shù)據(jù)映射邏輯。園區(qū)有三百多個傳感器點位每個點位要對應到3D模型上的一個位置。手動一個個寫坐標太蠢了。我的做法是把傳感器ID和對應的經(jīng)緯度整理成CSV讓GPT-6 Astra寫一個轉(zhuǎn)換函數(shù)把經(jīng)緯度轉(zhuǎn)成Three.js場景里的世界坐標。它給出的方案是用墨卡托投影做近似轉(zhuǎn)換再乘以一個縮放系數(shù)。我實測下來誤差在可接受范圍內(nèi)畢竟大屏展示不需要測繪級精度。第三個環(huán)節(jié)是巡檢路徑算法。巡檢模式需要相機沿著一條平滑曲線飛行經(jīng)過所有關鍵設備點位。這本質(zhì)上是一個旅行商問題的變體但不需要嚴格最優(yōu)解只要路徑合理、不穿模就行。GPT-6 Astra給我寫了一個基于CatmullRomCurve3的路徑生成函數(shù)輸入是一組Vector3點位輸出是一條平滑曲線。我在此基礎上加了速度控制和停留邏輯效果很穩(wěn)。注意GPT-6 Astra生成的代碼一定要逐行審核尤其是涉及坐標轉(zhuǎn)換和矩陣運算的部分。我遇到過它把右手坐標系和左手坐標系搞混的情況導致模型位置整體偏移。另外它有時候會“幻覺”出一些不存在的API比如給Three.js的某個類加了一個官方文檔里沒有的方法運行時報錯才發(fā)現(xiàn)。2.2 Tripo3D生成農(nóng)業(yè)模型的實操要點Tripo3D的核心能力是文本或圖片生成3D模型輸出格式支持GLB、FBX、OBJ等。我在這個項目里主要用它生成了四類資產(chǎn)溫室大棚、農(nóng)機設備、倉儲建筑、樹木植被。先說溫室大棚。我用的是文生3D模式提示詞寫的是“a large agricultural greenhouse with arched roof, metal frame, semi-transparent plastic covering, realistic style”。生成時間大概40秒出來的模型結構基本正確拱形屋頂和框架都在但貼圖比較糊塑料膜的半透明效果也沒出來。我的處理方式是把模型導入Blender用MCP插件做兩件事——一是重新展UV二是換上一張自己找的溫室膜材質(zhì)貼圖。這樣處理后大棚在場景里的觀感提升很明顯。農(nóng)機設備我試過兩種方式。一種是文生3D提示詞描述“a red agricultural tractor with large wheels, front loader, detailed”。生成的模型遠看沒問題近看細節(jié)缺失輪胎沒有紋路駕駛艙是實心的。另一種是圖生3D我從網(wǎng)上找了一張拖拉機的側(cè)視圖上傳給Tripo3D生成的模型明顯更接近參考圖比例也更準。所以我的經(jīng)驗是能提供參考圖就不要純靠文字描述圖生3D的命中率高得多。倉儲建筑相對簡單方盒子加屋頂Tripo3D生成的質(zhì)量足夠用。樹木植被我生成了一批基礎模型然后在Three.js里用InstancedMesh做批量渲染同一棵樹復制幾百棵通過隨機旋轉(zhuǎn)和縮放制造差異感。這里有個性能優(yōu)化的點樹木模型的面數(shù)要控制在500面以內(nèi)否則幾百棵實例化之后GPU壓力會很大。提示Tripo3D生成模型時提示詞里加上“l(fā)ow poly”或者“game ready”可以控制面數(shù)但不要加“high detail”否則面數(shù)爆炸后續(xù)減面很痛苦。另外生成后的模型默認原點可能在幾何中心導入Three.js之前要用Blender把原點歸到模型底部中心否則放置到場景里會陷進地面。2.3 Blender MCP做模型后處理的完整流程Blender MCP是我在這個項目里發(fā)現(xiàn)的一個效率利器。簡單說它讓你可以用自然語言指令控制Blender比如“把當前選中的模型面數(shù)減到5000以下”、“給這個模型添加一個平面UV展開”、“導出為GLB格式并開啟Draco壓縮”。對于不熟悉Blender快捷鍵的開發(fā)者來說這比手動操作快太多了。我的后處理流程固定為五步。第一步是導入與檢查把Tripo3D下載的GLB拖進Blender用MCP指令“report the polygon count and bounding box of the selected object”查看面數(shù)和包圍盒尺寸。如果面數(shù)超過兩萬就進入減面流程。第二步是減面。MCP指令是“add a decimate modifier to the selected object with ratio 0.3 and apply it”。這里ratio的選擇要看模型復雜度一般0.2到0.4之間比較合適。減面太狠會導致模型變形減面不夠則性能優(yōu)化效果不明顯。我一般會減到原始面數(shù)的30%左右然后目視檢查有沒有明顯的破面。第三步是UV與材質(zhì)。Tripo3D生成的模型自帶UV和貼圖但UV布局往往很亂貼圖分辨率也低。我的做法是用MCP指令“smart uv project the selected object with angle limit 66 degrees”重新展UV然后換上一張更高清的貼圖。這一步對最終觀感影響很大值得花時間。第四步是坐標歸零。MCP指令“set the origin of the selected object to the bottom center of its bounding box”確保模型的原點在底部中心。這樣在Three.js里設置position的時候y坐標直接填0就是貼地放置不用再算偏移量。第五步是導出。MCP指令“export the selected object as glb with draco compression enabled”。Draco壓縮能把模型體積壓到原來的20%到30%對加載速度提升非常明顯。但要注意Three.js加載Draco壓縮的GLB需要額外引入DRACOLoader這個后面會講。2.4 Three.js場景搭建的核心配置Three.js是這個項目的渲染核心配置項很多我挑幾個關鍵的說。渲染器配置。我用的是WebGLRenderer開了antialias抗鋸齒shadowMap啟用PCFSoftShadowMaptoneMapping用ACESFilmicToneMappingoutputColorSpace設為SRGBColorSpace。這幾個參數(shù)組合下來畫面觀感比較接近真實。但要注意開了陰影之后性能下降明顯如果場景里模型很多建議只對核心建筑開陰影普通設備用假陰影貼圖代替。相機與控制器。大屏場景我用了兩個相機模式俯瞰模式用OrthographicCamera巡檢模式用PerspectiveCamera。OrbitControls的enableDamping設為truedampingFactor設0.05這樣拖動的時候有慣性手感更順滑。maxPolarAngle限制在85度防止相機轉(zhuǎn)到地面以下。光照方案。我用的是環(huán)境光加平行光加半球光的組合。環(huán)境光強度0.4平行光強度1.2位置在場景東南上方投射陰影。半球光用來模擬天空散射天空色用淺藍地面色用土黃強度0.6。這套光照參數(shù)是我調(diào)了十幾版之后定下來的農(nóng)業(yè)場景需要偏暖的色調(diào)太冷會顯得像工業(yè)廠房。性能優(yōu)化。除了前面說的Draco壓縮和InstancedMesh我還做了視錐剔除和LOD分級。視錐剔除Three.js默認開啟不用額外配置。LOD分級需要手動做給每個模型準備高、中、低三個精度版本根據(jù)相機距離切換。農(nóng)業(yè)大屏的相機距離通常比較遠所以中低精度模型的使用頻率更高。注意Three.js的版本選擇很重要。我一開始用了最新的r162結果發(fā)現(xiàn)和項目里其他依賴有沖突最后退回到r158才穩(wěn)定。建議在package.json里鎖定版本號不要用^符號避免自動升級導致意外。3. 從零到可巡檢的完整實操過程3.1 園區(qū)地形與地塊的生成地形是整個場景的基礎。我沒有園區(qū)的精確DEM數(shù)據(jù)所以用了一個取巧的辦法用GPT-6 Astra生成一段程序化地形代碼基于Perlin噪聲生成起伏然后手動調(diào)整幾個關鍵區(qū)域的高度讓它們和實際地塊對應。具體操作是這樣的。先創(chuàng)建一個PlaneGeometry尺寸設為2000乘2000分段數(shù)設為200乘200這樣有兩萬個頂點足夠表現(xiàn)地形細節(jié)。然后寫一個頂點著色器或者直接在JavaScript里遍歷頂點用噪聲函數(shù)計算每個頂點的高度。我用的是simplex-noise這個庫比原生Perlin噪聲更平滑。高度范圍控制在0到15米之間因為園區(qū)整體比較平坦不需要太夸張的起伏。地塊的劃分我用的是紋理遮罩法。先在地形上貼一張衛(wèi)星圖作為底圖然后在Blender里畫一張遮罩圖用不同顏色標記育苗區(qū)、種植區(qū)、加工區(qū)、倉儲區(qū)。在Three.js里用ShaderMaterial讀取遮罩圖的顏色混合不同的地表材質(zhì)。這樣地塊邊界清晰而且切換地塊高亮的時候只需要改遮罩圖的某個通道值性能開銷很小。道路系統(tǒng)我用的是樣條曲線加擠出。先用CatmullRomCurve3畫幾條主干道的中心線然后用ExtrudeGeometry沿著曲線擠出路面。路面材質(zhì)用深灰色加一點粗糙度看起來像瀝青。道路兩側(cè)我放了路燈模型也是Tripo3D生成的用InstancedMesh批量放置。這里踩過一個坑地形和道路的接縫處容易穿模。因為地形有起伏道路是平的兩者交界的地方會出現(xiàn)縫隙或者重疊。我的解決辦法是把道路的高度稍微抬高0.1米然后在地形上沿著道路中心線做一次平滑處理把附近的頂點高度拉平。這樣接縫就不明顯了。3.2 建筑與設備模型的導入與擺放模型導入Three.js的標準流程是用GLTFLoader加載GLB文件拿到scene對象后設置position、rotation、scale然后add到場景里。但實際操作中有幾個細節(jié)要注意。坐標系統(tǒng)一。Blender用的是Z軸向上Three.js用的是Y軸向上。雖然GLTF格式本身會做轉(zhuǎn)換但如果你在Blender里旋轉(zhuǎn)過模型導出后可能會出問題。我的習慣是在Blender里就把所有模型調(diào)整到Y軸向上的姿態(tài)導出時勾選“Y Up”選項這樣導入Three.js后不用再旋轉(zhuǎn)。批量擺放。園區(qū)里有幾十個大棚一個個手動設置坐標太慢了。我的做法是維護一個JSON配置文件里面記錄每個模型的類型、位置、旋轉(zhuǎn)角度、縮放比例。前端讀取這個JSON循環(huán)創(chuàng)建模型實例。這樣后續(xù)調(diào)整布局只需要改JSON不用動代碼。// 模型擺放配置示例 const layoutConfig [ { type: greenhouse, position: [120, 0, -80], rotation: 0, scale: 1.0 }, { type: greenhouse, position: [160, 0, -80], rotation: 0, scale: 1.0 }, { type: warehouse, position: [-200, 0, 150], rotation: Math.PI / 2, scale: 1.2 }, { type: tractor, position: [50, 0, 30], rotation: Math.PI / 4, scale: 0.8 } ];材質(zhì)共享。如果每個模型實例都用自己的材質(zhì)顯存占用會很高。我的做法是相同類型的模型共享同一個材質(zhì)對象通過修改材質(zhì)的color屬性來區(qū)分不同狀態(tài)。比如正常狀態(tài)是原色報警狀態(tài)改成紅色選中狀態(tài)加自發(fā)光。這樣只需要維護少量材質(zhì)性能好很多。點擊拾取。用Raycaster做模型拾取監(jiān)聽鼠標點擊事件把鼠標坐標轉(zhuǎn)成NDC坐標然后從相機發(fā)射射線檢測和哪些模型相交。這里要注意InstancedMesh的拾取需要特殊處理因為它的所有實例共享一個幾何體Raycaster返回的intersect對象里有一個instanceId屬性通過這個ID可以知道點的是哪個實例。3.3 傳感器數(shù)據(jù)與3D場景的綁定數(shù)據(jù)綁定是這個項目的靈魂。沒有數(shù)據(jù)3D場景就是個好看的模型展示有了數(shù)據(jù)它才是一個活的數(shù)字孿生。我的數(shù)據(jù)綁定方案是點位映射加狀態(tài)驅(qū)動。每個傳感器在數(shù)據(jù)庫里有一個唯一ID同時有一個對應的3D坐標。前端啟動時拉取所有傳感器的實時數(shù)據(jù)然后遍歷數(shù)據(jù)根據(jù)傳感器ID找到對應的3D模型或者點位標記更新它的狀態(tài)。具體實現(xiàn)上我把傳感器分成兩類。一類是有實體模型的設備比如灌溉閥門、氣象站、攝像頭這些設備本身就有3D模型數(shù)據(jù)直接掛在模型上。另一類是純數(shù)據(jù)點位比如土壤墑情傳感器它埋在地下沒有可見的實體我用一個懸浮的圖標或者光柱來表示。狀態(tài)驅(qū)動我用的是顏色加動畫。正常狀態(tài)是綠色警告狀態(tài)是黃色報警狀態(tài)是紅色加閃爍。閃爍動畫用sin函數(shù)控制材質(zhì)的emissiveIntensity周期設為1秒。這樣在大屏上掃一眼就能看出哪些點位有問題。數(shù)據(jù)更新頻率我控制在每秒一次。太頻繁了前端渲染壓力大太慢了又顯得遲鈍。WebSocket收到新數(shù)據(jù)后不直接改Three.js對象而是先更新Vue的響應式狀態(tài)然后通過watch監(jiān)聽狀態(tài)變化再批量更新3D場景。這樣避免了頻繁的DOM操作和渲染調(diào)用。提示傳感器坐標轉(zhuǎn)換是個容易出錯的環(huán)節(jié)。如果你的園區(qū)不大可以用簡單的線性映射把經(jīng)緯度范圍映射到場景的XZ平面范圍。如果園區(qū)很大或者靠近極點就需要用墨卡托投影。我建議先用小規(guī)模數(shù)據(jù)驗證映射關系確認無誤后再批量導入。3.4 巡檢模式的路徑設計與實現(xiàn)巡檢模式是我個人最滿意的功能。點擊“開始巡檢”按鈕后相機自動沿著預設路徑飛行依次經(jīng)過所有關鍵設備每到一個設備就停留三秒彈出數(shù)據(jù)卡片如果有報警就高亮顯示。路徑設計我用的是關鍵點加平滑曲線。先手動在場景里標出所有需要巡檢的點位一般是園區(qū)的四個角加中心再加幾個重點設備區(qū)域。然后用CatmullRomCurve3把這些點連成一條平滑曲線。CatmullRomCurve3的好處是曲線會穿過所有控制點而且可以通過tension參數(shù)控制彎曲程度。// 巡檢路徑生成 const waypoints [ new THREE.Vector3(-300, 80, -300), new THREE.Vector3(300, 80, -300), new THREE.Vector3(300, 80, 300), new THREE.Vector3(-300, 80, 300), new THREE.Vector3(0, 100, 0) ]; const curve new THREE.CatmullRomCurve3(waypoints, true, catmullrom, 0.5);相機飛行我用的是曲線參數(shù)插值。定義一個變量t從0到1每幀增加一個步長然后用curve.getPointAt(t)獲取當前位置用curve.getTangentAt(t)獲取朝向設置相機的position和lookAt。步長根據(jù)曲線總長度和期望飛行速度計算我設的是每秒飛行50米這樣繞園區(qū)一圈大概兩分鐘。停留邏輯我用的是狀態(tài)機。巡檢狀態(tài)分為“飛行中”和“停留中”。飛行中時t持續(xù)增加當相機位置接近某個關鍵設備時切換到停留狀態(tài)t暫停增加彈出數(shù)據(jù)卡片。停留三秒后切回飛行狀態(tài)。這里判斷“接近”用的是距離閾值我設的是15米小于這個距離就觸發(fā)停留。有個細節(jié)要注意曲線閉合時首尾銜接要平滑。CatmullRomCurve3的closed參數(shù)設為true會自動閉合但閉合點的切線可能不連續(xù)導致相機在起點附近抖動。我的解決辦法是在路徑末尾多加一個和起點重合的控制點這樣閉合處的切線就連續(xù)了。3.5 大屏UI與3D場景的聯(lián)動大屏的UI層我用Vue3加Element Plus搭建整體布局是左側(cè)數(shù)據(jù)面板、中間3D場景、右側(cè)報警列表、底部統(tǒng)計欄。UI和3D場景的聯(lián)動通過一個事件總線實現(xiàn)我用的是mitt這個輕量庫。聯(lián)動邏輯分兩個方向。從3D到UI點擊3D場景里的設備模型觸發(fā)pick事件事件總線廣播設備ID右側(cè)面板監(jiān)聽到后拉取該設備的詳細數(shù)據(jù)并展示。從UI到3D點擊右側(cè)報警列表里的某條報警事件總線廣播設備ID3D場景監(jiān)聽到后把相機飛到該設備位置并高亮模型。相機飛行動畫我用的是GSAP比手寫緩動函數(shù)方便。定義一個目標位置和目標朝向用gsap.to在1.5秒內(nèi)完成過渡ease用power2.inOut觀感很順滑。// 相機飛行動畫 gsap.to(camera.position, { x: targetPosition.x, y: targetPosition.y, z: targetPosition.z, duration: 1.5, ease: power2.inOut, onUpdate: () { camera.lookAt(targetLookAt); } });UI面板的數(shù)據(jù)刷新我用的是節(jié)流加防抖。傳感器數(shù)據(jù)每秒推送一次但UI不需要每秒都重繪我設了500毫秒的節(jié)流保證數(shù)據(jù)不會積壓。報警彈窗用了防抖同一個設備短時間內(nèi)多次報警只彈一次。4. 常見問題與排查技巧實錄4.1 Three.js貼圖不顯示的排查思路貼圖不顯示是Three.js新手最容易遇到的問題我至少遇到過五六次原因各不相同。這里整理一個排查清單按可能性從高到低排列。第一檢查貼圖路徑。Three.js的TextureLoader加載貼圖是異步的如果路徑寫錯了控制臺會報404但有時候被其他日志淹沒了。我的習慣是在loader的回調(diào)里加一個console.log確認貼圖加載成功。第二檢查色彩空間。Three.js r152之后貼圖的colorSpace默認是NoColorSpace需要手動設為SRGBColorSpace否則貼圖會偏暗或者偏灰。這個坑我踩過貼圖明明加載了但看起來像蒙了一層灰。第三檢查UV坐標。如果模型是從Tripo3D生成的UV可能有問題。在Blender里檢查UV編輯器看看UV有沒有超出0到1的范圍或者有沒有重疊。重新展UV通常能解決。第四檢查材質(zhì)類型。MeshBasicMaterial不需要光照就能顯示貼圖但MeshStandardMaterial需要光照。如果場景里沒有光源標準材質(zhì)的貼圖就是黑的。加一個環(huán)境光就能看到。第五檢查貼圖翻轉(zhuǎn)。GLTF格式的貼圖Y軸和Three.js的默認設置可能不一致需要設置texture.flipY false。這個在加載GLB時GLTFLoader會自動處理但如果你手動加載貼圖就要注意。問題現(xiàn)象可能原因解決方法貼圖完全黑沒有光源添加環(huán)境光或平行光貼圖偏灰色彩空間錯誤設置texture.colorSpace SRGBColorSpace貼圖錯位UV坐標問題在Blender中重新展UV貼圖不顯示路徑錯誤或未加載完成檢查控制臺404確認回調(diào)執(zhí)行貼圖翻轉(zhuǎn)flipY設置錯誤設置texture.flipY false4.2 頁面卡頓的性能優(yōu)化實錄Three.js場景卡頓的原因很多我按影響程度從大到小排個序。第一位是模型面數(shù)過高。一個精細的GLB模型可能有幾十萬面幾個這樣的模型就能讓幀率掉到20以下。解決辦法就是前面說的Draco壓縮加減面把面數(shù)控制在合理范圍。我的經(jīng)驗值是單個模型不超過一萬面場景總面數(shù)不超過五十萬面。第二位是繪制調(diào)用過多。每個模型實例都是一次draw call幾百個模型就是幾百次draw callGPU切換狀態(tài)的開銷很大。解決辦法是用InstancedMesh合并相同幾何體的實例或者用MergedGeometry把靜態(tài)模型合并成一個。我用了InstancedMesh之后樹木的draw call從三百多降到了一次。第三位是陰影計算。實時陰影很吃性能尤其是陰影貼圖分辨率高的時候。我的做法是只對核心建筑開陰影陰影貼圖分辨率設為1024陰影相機范圍盡量收緊不要覆蓋整個場景。第四位是紋理過大。一張4096乘4096的貼圖占用的顯存是1024乘1024的16倍。農(nóng)業(yè)大屏不需要那么高的紋理精度我統(tǒng)一壓到1024個別重點模型用2048。第五位是后處理效果。Bloom、SSAO這些后處理效果很漂亮但很吃性能。我在大屏上只開了輕微的BloomSSAO直接關掉幀率從35提升到55。提示用Chrome的Performance面板錄制一段運行時的性能數(shù)據(jù)看看時間主要花在哪里。如果是GPU瓶頸優(yōu)化模型和紋理如果是CPU瓶頸優(yōu)化JavaScript邏輯和減少draw call。不要盲目優(yōu)化先定位瓶頸。4.3 GLB模型加載失敗的常見原因GLB加載失敗通常有幾個固定原因我整理成速查表??缬騿栴}。如果GLB文件存在CDN上而你的網(wǎng)頁域名和CDN域名不一致瀏覽器會攔截。解決辦法是在CDN上配置CORS頭允許你的域名訪問。文件損壞。Tripo3D下載的GLB偶爾會有損壞尤其是網(wǎng)絡不穩(wěn)定的情況下。重新下載一次通常能解決。如果還不行用Blender打開看看能不能正常導入不能導入就是文件本身有問題。Draco解碼器未加載。如果GLB用了Draco壓縮Three.js需要額外引入DRACOLoader并設置解碼器路徑。忘了這一步的話加載會直接報錯。// Draco加載器配置 import { DRACOLoader } from three/examples/jsm/loaders/DRACOLoader.js; const dracoLoader new DRACOLoader(); dracoLoader.setDecoderPath(/draco/); const gltfLoader new GLTFLoader(); gltfLoader.setDRACOLoader(dracoLoader);版本不兼容。GLTFLoader的版本要和Three.js核心庫的版本匹配混用不同版本的模塊會報錯。我的做法是用npm安裝three然后從three/examples/jsm里引入loader保證版本一致。內(nèi)存不足。如果場景里加載了太多模型瀏覽器內(nèi)存耗盡加載會失敗。解決辦法是分批加載或者用LOD策略遠處的模型先不加載。4.4 巡檢路徑穿模與相機抖動的處理巡檢路徑穿模是指相機飛行時穿過了建筑或者地形畫面突然變黑或者看到模型內(nèi)部。這個問題我調(diào)試了很久最終用了三個措施來解決。第一抬高路徑高度。把巡檢路徑的Y坐標統(tǒng)一抬高到建筑最高點以上。園區(qū)里最高的建筑是倉儲棚大概12米我把路徑高度設在20米以上這樣就不會撞到建筑。第二路徑點避讓。在設置路徑控制點時避開建筑密集區(qū)。如果必須經(jīng)過就繞行。我手動調(diào)整了幾個控制點的位置讓路徑從道路上方經(jīng)過而不是從大棚上方穿過。第三相機近裁剪面調(diào)整。相機的near值設得太小會導致深度精度問題設得太大又會導致近處模型被裁剪。我設的是0.1配合路徑高度基本不會穿模。相機抖動是另一個問題表現(xiàn)為飛行過程中畫面輕微晃動。原因是曲線切線計算不連續(xù)或者幀率不穩(wěn)定導致t值跳躍。解決辦法是用curve.getPointAt而不是getPoint前者是按弧長參數(shù)化速度更均勻。另外把相機的lookAt目標也做平滑處理不要直接看向下一個路徑點而是看向當前切線方向再往前一點的位置。4.5 數(shù)據(jù)延遲與狀態(tài)不同步的解決數(shù)據(jù)延遲表現(xiàn)為大屏上的數(shù)據(jù)和實際傳感器讀數(shù)不一致通常延遲幾秒甚至十幾秒。排查下來有幾個原因。WebSocket消息積壓。如果前端處理消息的速度跟不上推送速度消息會積壓。我的解決辦法是在前端加一個消息隊列按時間戳排序丟棄過期的消息只處理最新的。狀態(tài)更新觸發(fā)過多渲染。每次數(shù)據(jù)更新都觸發(fā)Three.js重新渲染如果數(shù)據(jù)量大渲染次數(shù)太多會導致卡頓和延遲。我的做法是批量更新把一秒內(nèi)的數(shù)據(jù)變更收集起來統(tǒng)一更新一次場景。數(shù)據(jù)庫查詢慢。如果聚合服務每次收到請求都查數(shù)據(jù)庫查詢慢了就會拖累整個鏈路。我的優(yōu)化是加Redis緩存熱點數(shù)據(jù)直接從緩存讀數(shù)據(jù)庫只做持久化。網(wǎng)絡抖動。園區(qū)現(xiàn)場的網(wǎng)絡環(huán)境不一定穩(wěn)定WebSocket斷線重連期間數(shù)據(jù)會丟失。我的做法是前端維護一個本地緩存斷線期間用緩存數(shù)據(jù)展示重連后拉取最新數(shù)據(jù)覆蓋。問題排查方法解決措施數(shù)據(jù)延遲超過5秒檢查WebSocket消息隊列長度加消息隊列丟棄過期消息狀態(tài)更新卡頓用Performance面板看渲染頻率批量更新降低渲染頻率斷線后數(shù)據(jù)不更新檢查WebSocket連接狀態(tài)加斷線重連和本地緩存數(shù)據(jù)與現(xiàn)場不符對比傳感器原始讀數(shù)檢查聚合服務的清洗邏輯5. 項目復盤與可擴展方向5.1 這套方案的實際效果與局限項目最終交付的時候園區(qū)那邊組織了驗收。大屏在會議室的大電視上跑了一下午幀率穩(wěn)定在50到60之間巡檢模式走了一圈沒有穿模數(shù)據(jù)刷新延遲在可接受范圍內(nèi)。甲方最滿意的是巡檢功能以前他們要開車繞園區(qū)一圈檢查設備現(xiàn)在坐在辦公室里點一下按鈕就能看個大概。但我也要客觀說幾個局限。第一模型精度有限。Tripo3D生成的模型在大屏中遠景下沒問題但如果甲方要求做設備內(nèi)部結構展示比如打開水泵看葉輪那這套方案就撐不住了必須手工建模。第二AI生成的代碼需要人工審核。GPT-6 Astra寫的Three.js代碼大概有70%可以直接用剩下30%需要改主要是版本兼容和邊界條件處理。第三數(shù)據(jù)準確性依賴傳感器本身。3D大屏只是展示層如果傳感器數(shù)據(jù)本身不準大屏上顯示的就是錯誤信息這個鍋不能讓可視化背。5.2 后續(xù)可以擴展的幾個方向這個項目做完之后我腦子里還有幾個擴展方向有些已經(jīng)在規(guī)劃了。第一個方向是接入視頻流。園區(qū)里已經(jīng)有攝像頭可以把實時視頻流投射到3D場景里的攝像頭模型上點擊攝像頭就能看到實時畫面。技術上用WebRTC或者HLS都可以難點在于多路視頻同時播放的性能優(yōu)化。第二個方向是歷史數(shù)據(jù)回放。把過去一周或者一個月的數(shù)據(jù)存下來做一個時間軸拖動時間軸就能看到園區(qū)狀態(tài)的變化過程。這個功能對分析病蟲害傳播、灌溉效果很有價值。第三個方向是移動端適配?,F(xiàn)在的大屏是給PC瀏覽器做的如果能在手機或者平板上看巡檢人員就不用回辦公室了。Three.js在移動端的性能是個挑戰(zhàn)需要做更激進的LOD和紋理壓縮。第四個方向是AI預警?,F(xiàn)在的大屏只做展示不做判斷。如果接入一個簡單的時序預測模型根據(jù)歷史數(shù)據(jù)預測未來幾小時的土壤濕度、溫度變化提前發(fā)出預警價值會更大。5.3 給后來者的幾條實在建議如果你也想用這套方案做類似的項目我有幾條經(jīng)驗可以分享。不要追求一步到位。我一開始想做一個全功能的數(shù)字孿生結果發(fā)現(xiàn)每個環(huán)節(jié)都有坑進度嚴重滯后。后來調(diào)整策略先做最小可用版本地形加建筑加數(shù)據(jù)展示跑通了再逐步加巡檢、加報警、加歷史回放。這樣每完成一個模塊都有成就感也方便向甲方匯報進度。模型資產(chǎn)要提前規(guī)劃。不要等到場景搭好了才去生成模型那樣會手忙腳亂。我的做法是項目啟動第一周就集中生成所有模型然后在Blender里批量處理后面搭場景的時候直接調(diào)用效率高很多。性能優(yōu)化要貫穿始終。不要等到卡頓了才優(yōu)化那樣往往要推倒重來。從第一個模型導入開始就注意面數(shù)、紋理大小、draw call數(shù)量后面會省很多事。保留手工調(diào)整的余地。AI工具再方便也不能完全替代人工判斷。模型的位置、角度、比例路徑的走向光照的參數(shù)這些都需要根據(jù)實際效果反復調(diào)整。把AI當成一個高效的助手而不是全能的替代者。最后說一個我踩過的最大的坑不要在項目初期就鎖定Three.js的最新版本。我一開始用了當時最新的r162結果發(fā)現(xiàn)和項目里其他依賴有沖突又退回到r158浪費了兩天時間。建議用經(jīng)過社區(qū)驗證的穩(wěn)定版本等生態(tài)跟上了再升級。這個教訓讓我在后續(xù)項目里都養(yǎng)成了鎖定依賴版本的習慣package.json里堅決不用^符號。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
伊人欧美大香蕉视频| 欧美中出1| 91劲爆| 青青草吊丝| 无码乱人伦中文视频| 国产 日韩 欧美一区| 亚洲污污网站| 国产乱码精品久久久久久| 97久久久| 婷婷激情五月天小说网| 国产精品久久aV| 亚洲精品蜜桃久久久| 91九色丨国产丨爆乳| 91麻豆va国产精品| 欧美日韩一区二区三区四区蜜桃| 免费观看性欧美一级| 96精品久久| 曰韩香蕉97| 亚洲自拍欧美国产首页网曝 | 日韩少妇丰满亚洲| 久久国产99精品72福利| 五月天婷婷久久| 温婉少妇玩3p| 国产大学生口爆吞精合集| 看日韩黄片| 欧美亚洲图片| 亚洲成人激情小说视频| 99热在线播放| 亚洲国产精品无石码久久| 后入日本1234| 丝袜美腿丝袜| 亚洲图片小说欧洲| 日日超碰亚洲| 国产成人在线观看网址| www.色吧5.com| 久久免费少妇| 国产综合色精品在线观看| 天天操天天舔| 国产亚洲精品农村妇女| 国产精品久久成人免费| 亚洲一本色道中文无码aV天美| 岛国色情视频在线观看| 手机在线中文字幕国产| 亚洲国产精品无码AV在线| 日本成人免费一区二区三区| 亚洲av综合伊人久久| 网站A V在线| 国产 亚洲 一二三四| av在线播放国产一区| 亚洲αv一区二区三区| 欧美性爱1080p| 日韩操逼HD| 岛国大片在线观看网站入口| 欧美久热| wwe 天天干.com| 亚州色图欧美| 97精品| 日韩字幕一区| 狠狠色综合网| 超碰午夜在线| …中文字幕亚洲乱,97人妻无码费视… | 国产AV人人 夜夜人人澡| 97午夜剧场日韩| 91红杏| 天堂亚洲精品久久老牛| 久久久久久久人妻丝袜| 2019久久久久久久久福利| 久久这里是精品| 99色综合| 天天干夜夜肏| 亚洲色人| 国精精品无码一二三区水多多| 五月天精品| 吉川爱美98堂在线| 9久久久久久| 尤物视频视频官网| 国产精品岛国片在线观看| 91狠狠综合久久| 久久蜜桃综合网| 骚鸭AV| 人妻少妇被猛烈进入中| 欧美白嫩在线放| 加勒比99999| 欧美一区二区三区互相| 久操操| 97视频www| 97精品国产| 91精品伊人久久久大香线蕉91| 射 色综合| 久久久久久久久久久久九| 东京太热男人的天堂久久久| 欧美性爱第一区| 蜜桃色色网站视频三区| 九九九精品美女| 浪人综合网| 亚洲不卡不卡中文字幕不卡 | 日本韩国国产精品一区| 久久XX| 美日韩在线不卡人妻| 欧美激情视频一区二区| 欧美黄片视频在线观看免费| 国产精品成人AV片免费看网站| 男女做爰猛烈动高潮A片免费应用| 日本天天操| 久久精品高清无码一区| 国产探花精品在线| 中文字幕天天操| 精品无码欧美三级| 青娱乐亚洲热| 啊啊啊啊操死我| 99热91| 九热大香蕉| 99激情视频| 国产1727欧美| 18禁中文字幕| 99日免费视频中文字幕| 93人人操人人| 日本熟妇色熟妇在线视频播放| 东北女人无套内谢视频| 亚洲情色五月天 | 熟女精品一区二区三区| 欧美偷拍| 亚洲综合97中文网| 亚州综合网| 91九色精品熟女内射| 欧美第二页午夜| 亚州免费啪啪视频| 精品成人女人久久| 国产a级午夜毛片| 传媒免费一区二区三区| 色爱三区| 九九九九9999| 玖玖资源中文字幕制服丝袜| 黄色激情电影在线观看| 欧美亚洲厕所精品偷拍91| 色色网91| 天天综合~91| 色九九九综合| 中文字幕一区日韩精| 97伊人超碰| 99精品久久| 婷婷五月天激情四射| 无码人妻一区二区一牛影视| 日本www操操操| 99后入| 九九九九九九九精品视频| 天天噜| 99热aaa| 国产精品99久久久www| 校园春色AV天堂| 9精品在线| 草莓精品视频| 强奸抽插av| 色色色色色色色色综合| 亚洲天堂热| 国产91福利小视频在线观看| 都市激情人妻一区二区青青操视频| 乱伦图av| 日日夜夜精品视频| 日本幼女18+| 四虎免费看黄| 99re视频在线观看这里只有精品| 国产成人自拍视频视频| 久热一区二区| 大粗鳼巴久久久久| 97国产色图| 99色在线视频| 综合久久欧美| 国产精品自在自拍视频| 内射夫妻三片| 天天日天天看| 欧日韩一二三f区| 十八禁网站在线| 国语精品内射在线观看| 国产在线视频午夜精华在| 精品一区二区三区四区外站| 夜夜爽爽爽| 99热99在线播放激情| 精品九九九九九九| 偷拍欧美亚洲| 色哟哟av网址| 亚州 综合 色图| 人妻啊啊人妻啊啊| 国产精品国产拍高清AV| 天天视频综合在线观看视频| 中文字幕,人妻,日韩| 色与欲影视天天看综合网| 国产九区| 情色av电影| 蜜臀国产AV中文字幕| 无码国产精品久久久久| 日韩欧美操逼xxx| 国产精品播放| 天天干人人乐| 免费AV中文网在线观看| 国产又黄又粗又猛大片 | 欧美日韩性爱视屏免费看了| 亚洲系列第一页| 亚洲黄色视频在线观看视频| 伊人操| 日韩人妻无码不卡网站| 色噜噜日韩精品| 欧美丝袜美女电影一二三四区| 情色五月天久久久| 天堂麻豆天美| 国产极品久久久| 九九英色视频| 热久久九九热| 国产成人精品午夜福利| 超碰97久久观看| 天天享受天天看| 天天综和| 国产天美传媒精品| 超碰在线综合97| 蜜臀一二三区| 精品一区二区三区麻豆| 久久色网| 国产av又色又爽又黄| 天天摸夜夜添无码小视频| 国产对白刺激视频| 亚洲精品aa久久伊人| 一起草精品人妻| 色欲日韩欧美在线一区| 久久xx| 玖色AV| 亚洲综合码| 中文字幕88av在线| 亚洲综合情色| 天天色欧美| 五月天我淫我色av| 亚洲AV无码AV吞精久久久久| 自拍鲍鱼一区在线高清观看免费| 97精品国产97久久久久久| 久久精品视频久久久| 四月丁香婷婷| 四虎在线观看网站| 天天日天天看| 欧美人妻精品一区二区| 伊人成人中文字幕久久网| 伊人影院在线理论播放| 四虎影视永久在线观看精品免费网站| 精品97久久| 国产辣妈在线视频福利| 亚洲精品日日夜夜52| 99色热| 五月天久久婷婷亚洲| 日日日日做夜夜夜夜做无码97| 婷婷激情四射| 男人把坤坤插入女人的下体| 欧美中字不卡| 国产h小视频在线观看免费| 成人影院永久免费观看网址| 大香蕉五月天婷婷| 91精品丝袜久久久久久无码人妻| 亚洲天在线| 亚欧毛片基地国产毛片基地| 成人短视频在线观看| 国产精品视频电影| 校园激情狠狠四射| 日韩激情中文字幕有码| 久久天天躁日日躁狠狠躁| 天天热精品| 91精品91久久久久77777俄罗斯老妇姓x| 1000部熟女视频在线观看| 亚洲精品精品一区二区| 大香蕉宅男伊人| 麻豆91熟妇人妻中文字幕茄子 | 国产美女口爆吞精| 操一操摸一摸| 国产四虎在线| 欧美性91| 男人的天堂不卡一区二区| 91久久久老司机| 蜜桃av色偷偷av老熟女| 欧美性生活综合| 我中文字幕6区 | 97日视频| 久久久久亚洲三级电影| 欧美色三级片91| 亚洲图片视频小说| 人妻熟女av国产网站| 強姦亂倫a| 中文字幕 码 自拍 视频 区| 久久综合97| 欧美日韩国内不卡| 色踪合AV| 亚洲激情AV| 欧美综合亚洲| 夜色五月天| 资源新线在线天堂| 久久9精品视频| 97免费视频在线| 伊人网av| 婷婷久久五月综合激情| 91女在线观看| 亚洲天堂AV在线播放| 亚洲综合113页| 色吧5亚洲| 国产又大又粗又长视频在线| 亚州操逼图| 自拍亚洲综合| 120分钟婬片免费看| 日韩欧美蜜桃精品久久中文字幕久久| 国产性爱乱伦AV| 99re在线视频这里只有精品| 99日精品欧美国产| 久久久人妻| 亚洲色图超碰在线| 国产综合色精品在线观看| 性色中出| 亚洲中文日韩欧美大香蕉视频| 欧美骚少妇| 97人人干人人操| 久久 精品| 精品人妻一区二区免费蜜桃| 欧美aaaaaaa| 蜜桃精品视频一区二区三区| 欧美1727免费观看视频| 久久久久久久伊人精品| 91在线精品| 亚洲欧美天| 久久久久久人妻| 国产综合色精品在线观看| 六月丁操逼| 黄片aaaaa一区| 久久久999国产精品| a久久| 91一区二区三区蜜桃| 国产亚洲精品美女| 伊人久久亚洲中文字幕| 操逼视频亚洲| 夜色91| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 91色欧美| 日韩图区| 夜夜中出国产| 3d成人精品一区二区| 欧美日韩制服| 国产精品久久久久久夜夜夜夜| 日本99久久| 视频一区二区三区精品| 狠狠躁久久躁| 亚洲熟久久| 色五月婷婷在线| 岛国激情视频软件| 久久精品国产亚洲妲己影视| 久久久亚洲| 黑人粗大V S日韩女优视频| 亚洲一区二区三区久久 亚洲一区二区| 日韩综合无码色欲vv| 久热这里只有精品9| 亚洲影院小综合| 99欧美| 99热99在线播放激情| 玖玖久久久| 操逼1区| 97超碰精品图片| 韩国国产欧美情侣视频在线| 禁止观看美女黄| 99热9| 国产精品久久久久久片| 久久日韩精品一区二区| 日韩三级伊人| 欧美天天干| 九九久久国产精品怡红院| 日韩9999| 欧美老妇女内射网址| 亚洲不卡AV在线| 欧美精品999| 久久精品国产亚洲AV高级北京| 天天视频网站黄| 亚洲精品97| 91综合色噜噜| 东北少妇高潮zzzz| 国产精品不卡一区二区电影| 13小男生GAY自慰脱裤子| 99热在线播放| 无码人妻精品酒店| 探花视频免费观看国产专区| 色波多| 精品人妻中文字幕高清| av影片在线观看不卡| 超碰91在线| 啊啊啊啊网站| 丰满人妻aA一区二区三区| 啊啊啊操死我| 成人精品久久久午夜福利| 在线a亚洲视频播放在线| 97超碰欧美手机| 久操免费观看| 一区AV| 人妻无一区二区三区| 性无码专区2020| 黄色人人| 黄色高清无码无码破解免费暗网| 91在线丝袜| av草草在线电影| 综合自拍| 免费a v| 啪啪视频亚洲第一| 久久男女激情视频网站| 99精品在线| 97精品国产97久久久久久户外免费| 91久久久久久久久久久| 97国产色图| 美女上床网站| 亚洲综合97| 欧美日韩色综合网| 精品超碰国产| 天天干天天日天天射黄色大片| 美女淫穴| 亚洲欧美在线丝袜| 成人一级性爱| 亚洲精品99| 国产精品久久久久久夜夜夜| 任我爽在线视频免费观看| 99re6在线视频播放免费精品| 97操| 色婷婷网| 国产欧美成人精品| 五月丁香激情四射| 18禁中文字幕| 夜夜嗨一区二区| 午夜后入| 国产成人亚洲精品无| 欧美亚洲| 久草视频制服诱惑| 妇女乱色二区| 欧美性爱无码一区二区三区| 中文字幕五区| 久久精品91| 欧美欧美啪啪视频| 免费啪啪啪网站18岁| 中文字幕天天天天天| 怡红院亚洲怡春院av| av网站在线看| 99婷婷| 思思热久久成人| 亚洲天堂综合AV| 亚洲天天精品| 国产在线视频二区| 日韩成人色图| 91中出视频| 中文字幕亚洲热播人妻| 精品美女在线视频| 91综合熟女| 成年女人18级毛片毛片免费观看| 日韩激情视频| 自拍偷拍 日韩欧美| 狠狠干综合| 国产三级中文字幕粉嫩| 久久高清欧美国产| 久久久精品久久| 乱伦一二三区| 偷拍亚洲高清图片| 无码精品久久久久久亚洲| 丁香六月婷婷| 91日韩国产欧美亚洲另类精盘州至城都| 美女写真| 欧美爱国产综合、| 久9热| 亚洲好色人妻| 一区二区娱乐网站| 亚洲91射| 亚洲午夜av| 亚洲中文字幕av| 亚欧高清在线| 亚洲第一页色网| 99久久婷婷| 日韩内| 综合激情五月天| 美女十八禁| 久操精品网| 精品国产乱码久久久久久免费| 92人人操人人| 人人操人人操人妻人| 日韩在线观看中文字幕视频| 97操B| 天天淫人人妻日日色| 1769成人国产精品视频| 日本一区二区三区精品| 人妻一区二区三区视频| 99只有精品| 狠狠色噜噜狠狠狠狠狠色综合久久| 98福利在线视频| 成年人一级黄色毛片大全在线观看| 亚洲素人网| 强奸乱伦动态污图免费| 99这里有精品| 久热一区二区| 婷婷香网站| 天天躁日日躁AAA片李宗瑞| 97美日韩视频| 日韩精品人妻系列无码天堂| 亚洲制服aⅴ中文字幕| 久久久久久久9最新免费视频观看| 久久精品店| 91bbbbbb| 91色伦综合| 亚洲av无码成人精品国产| 久久激情婷婷| 九九九九精品一区| 黑操B| 男女激烈网站最新| 国产又长又大又粗的视频| 婷婷五月天成人网| 日本操大逼| 啊啊啊免费| 老鸭窝黄色视频网站| 综合五月婷婷| 精品欧美А∨无码黑人大荫蒂| 香港久久久| 日韩在线97| 天天综合精品| 亚洲成?V人片在线观看福利| 97超碰欧美| 69丨亚洲丨精品丨入口免费播放| 爱爱动态120秒| 大香蕉强奸乱伦| 99re在线| 淫穴高潮色图| 中文字幕日韩人妻视频一区二区三区交换夫妻| 久久riav中文精品| 日韩精品 欧美激情| 97精品一二区| 亚洲日本韩国在线| 亚洲第一狼人丝袜美女另类 | 成人小说另类在线| 欧美色九九| 狠狠躁日日躁夜夜躁A| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 丰满人妻无码一区二区三区| 97操| 青青草原香蕉日本Ap| 传媒免费一区二区三区| 中文字幕国产精品1区| 国产精品亚洲免费| 人人妻人人狠人人| 久久久久国产精品喷潮免费观看臀| 中文字幕国产在线天堂| 少妇高潮九九九九| 人妻第一页| KK色在线影院| 青草伊人久久| 人人摸人人舔一区二区| 亚洲男人天堂2016| 97AV在线免费观看| 丝袜美腿校园春色| 97视频620| 色色99| 夜夜嗨AV蜜臀av| 亚州操操穴网| 中文一区二区婷婷视频| 老鸭窝亚洲毛片| 大香蕉97久久| 四虎AV无码| 欧美性战999| 宅男91视频在线播放| 麻豆天美电影一区二区| 91N欧美| 亚洲免费精品一区| 一及黄久一点| 60秒免费小视频| 国产乱码久久久久久| 人人操人人射人人干| 国产一区二区精品在线视频| 骚日日av| 97色97干| 激情抓乳插进去啪啪啪日韩 | 91亚洲网站| 凹凸 69堂 在线播放| 久伊人网78| 97chaopengongkai| 日产操逼| 亚洲日韩美国人妻| 中文字幕在线免费观看视频| 日韩精品一区二区三区四虎影视| 玖玖97综合 | 欧美一级久久久丰满| 18禁美女裸体无遮挡啪啪| 最新中文字幕精品在线| 狠狠爱综合网| 色999偷自拍拍| 蜜臀亚洲综合一二三四区| 9 1超碰九色| 另类图片天天影视| 日韩精品人妻一| a在线观看| 91欧美偷拍| 久男人久久| 91肉丝| 国产精品999zyz| 国产亚洲色婷婷久久99精品91| 91国产精品熟女| 日韩欧美偷拍美女视频| 久久久久国色αv免费观看| 国产成人在线观看网址| 久久亚洲AV成人精品无码| 五月天激情婷婷| 麻豆性爱视频在线播放| 91精品91久久久久77777| 男女一进一出视频久久| 亚洲天堂无码| 麻豆精品A片免费观看| 另类图片五月天| 性久久久| 亚洲午夜免费狠狠干| 日本九九久久99| 超碰免费97| 国产免费久久久久| 秋霞午夜视频一区二区| 哈哈操电影| 最新中文字幕在线亚洲| 欧美色图片| 成人免费在线网站| 熟妇精品juliaannAV| 超碰97网站| 亚洲熟女中文字幕在线| 欧天美中出| 一区在线精品中文字幕| 九九这里只有精品| 2020中文字幕在线| 911av网站免费观看| 野狼激情网| 欧美91网| 9999免费精彩视频| 色偷偷人人玩人人舔人人操人人摸人人爽| 激情小说图片亚洲首页| 蜜臀av一区二区三区免费观看| 丝袜狠狠草尤物 91| 成人性爱AV在线免费观看| 殴美牲| 香蕉99秘 一区精品蜜桃臀| 国产激情av女片自拍| 国产成人主播| 国产乱伦性爱区| 亚洲91亚洲| 精品国模无码| 国产怡红院| 日本一道在线播放高清| 青青草视频久久| 啊啊啊啊啊啊在线| 天天日少妇逼AV| 日韩一卡二卡三卡| 在线观看一卡二卡| 91综合在线| 素人美腿视频网站| 国产操逼网站亚洲一级黄色| julia在线观看久久| 校园春色综合网| 欧美精品另类人妖xxxx| 91天天综合| yazhousetuoumei| 日韩免费福利在线观看| 少妇人妻精品| 欧美日韩性爱无码| 性生活性生大爱77AV国产| 欧美做爰无码A片视频| 999久久久久久久久| 久久久国产成人一区二区三区在线| 亚洲人精品久久久| 91粉芽高清在线一区二区| 天天综合网~91| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 岛国艾薇凹凸视频天堂| 欧美瑟综合| 能看的AV| 日韩黄片影院| 好一吊区二区| 久久超碰久| 国产精品ⅴ无码大片在线看.| 麻豆一区在线| 国产男女无套视频免费观看| 91麻豆天美传媒在线| 嗯嗯啊啊操死我| 国产亚洲中文不卡二区| 97操97干| 天天综合网在线| 亚洲二区精品在线观看 | 国产女人高潮视频| 1人人看人人摸人人操| 麻豆黄站| 欧美成人精品一区二区三区| 做爱A级亚欧| 亚洲色电影在线| 亚洲精品国产精品乱码不卡| 90后性网国产欧美| 呦呦影院| 91白嫩| 韩国女主播青草在线| 国产免费久久久久| 久久这里只精品免费福利| 91热色| 欧美综合色站| 日韩人妻无码专区| 国产黄色影片在线观看| 青青青在线高清视频在线一二三四区 | 人妻人久久精品中文字幕| 久久这里都是精品| 爱av免费| 国产精品视频自拍在线| 人人妻人人爽一区二区三区| 国产视频第2页| 91色碰| 9l视频自拍9l九色成人| 强奸乱伦大香蕉| 综合网亚洲| 中文有码9| 色悠久久久av| 日韩啪啪啪视频| 亚洲一区二区三区久久 亚洲一区二区| 日本精品无码三级网站| 蜜臀无码视频在线观看| 操久久久久| 东北操逼| 人人爽人人精品乱人伦AV| 亚洲色鬼| 激情丁香五月| 婷婷视频网| 啪一啪免费视频| 6080YYY午夜理论片在线观看| 啊啊啊在线观看| 亚州欧美在线| 中文字幕国产| 51一区二区三区| 加勒比av官网在线| 亚洲淫色网中文| 欧美美女在线高潮999| 私色综合网| 这里只有精品视频在线| 91日本在线观看| 日韩AV一起草| 久草福利在线资源站| 国产成人一级av88| 日本操大逼| av在线免费一区二区| 少妇一区二区三区高速| 狠狠操官网| 99在线免费公开视频| 韩三级a视频在线观看| 富女玩鸭子一级毛片| 精品99999| 乱性AV| 国产亚洲欧美每日在线| 国产高清精品一区二区三区毛片| 国内偷自视频区视频综合| 国产精品视频自拍在线| 国产亚洲精品美女久久久| 激情五月天插| 凸凹视频在线观看| 亚洲精品亚洲人成人网| 日韩啪啪啪啪啪| 国产伊人自拍| 自拍欧美| 久艹99| 久久婷婷成人综合色怡春院| 欧美日韩在线小说| 乱性AV| 97人人操人人摸| 亚洲第一成人影院色播| 任你艹| 熟妇亚洲一区二区三区| 欧美性爱一区| 性高潮久久久| 亚洲欧美色图| 黄片免费久久久久久久| 九月婷婷综合| 蜜臀AV成人精品蜜臀AV久久| 长久操视频| 91殴美| 日韩人妻一二三区视频| 午夜丁香| 日韩精品人妻中文字幕久久久| 97天天在线| 淫荡网址| 91人妻做a观看视频| 婷婷色播婷婷| 欧美白嫩女HD| 久久久久成人网| 国产美女自拍AV| 亚洲综合色婷婷| 青春草A| 中文字幕视频二区| 成人日韩3| 曰韩精品九九无码| 97在线资源| 狠狠操狠狠操操| 国人欧美精品一区二区| 亚洲天堂东京热| 91视频女生| 久久久精品中文字幕爱豆| 午夜男女爽爽爽在线视频 | 亚欧美色| 国语精品内射在线观看| 夜夜夜久久| 欧美日韩亚洲少妇寂寞影院正在播放| 免费无码婬片AAAA片直播色戒| 欧美精品1区2区3区| 97干色天堂| 国产精品久久久久久久久久久久久久吹| 国产亚洲精品无码三区| 人妻嗯啊啊在线播放| 后入福利视频| 日韩综合成人免费视频| 亚洲AV无码天美传媒一区| 夜色97| 欧美性爱无码一区二区三区| 91色艳| 久久三区四区| 亚欧国产无码精品在线| 欧美男人亚洲天堂| 国产超碰AV在线精品| 亚洲激情网一二三四区| 久久精品女同亚洲女同13| 免费超碰97在线观看| 日本三级人妻a人妻一在线| 欧美激情内射| 国产三级电影免费观看| 欧美亚洲厕所精品偷拍91| 一区二区三区免费视频入口| 蜜臀久久久久久999| 国语精品av| 日本国产成人亚洲精品无码| 综合激情一一91| 曰本人妻人人澡人人夹| 夜夜综合| 黄色在线网站| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 91热| 婷婷五月天成人网| 91丝袜人妻| 99九九精品| 日本道人妻久久久在线不卡色视频| 国产美女mm131爽爽爽爽| 欧美变态激情网| 亚洲导航深夜福利| 日日干夜夜欢| 综合欧美日本三级| 校园春色美腿丝袜 | 强奸乱伦亚洲第一页| 少妇三P| 手机在线播放国产福利| 亚洲一二三| 天堂а√在线最新版在线| 品亲网欧美品亲网| 日本高清有码网址视频| 日日AAvv| 精品久久視頻在线| 操一操摸一摸| 天天天天天天天天综合| 乳欲人妻办公室奶水| 啊啊啊啊啊啊啊网址在线观看| 亚洲五码一区二区三区| 欧洲站一级二级三级h| 国产激情综合五月久久| 少妇高潮九九九九| 性色高清在线| 十八岁啪啪视频免费看| 亚洲第一男人天堂| 欧美日韩色图片| 无码直播久久久| 欧美天天综合站| 9久久精品| 国产中出内射一区二区| 久草精品视频| 亚洲色婷婷| 国产强奸AV在线| 色踪合AV| 婷婷四五区| 萌白酱自拍视频| 激情在线青青操| 成人天天看站长推荐| 日本精品高清一二区一本到| 丰满人妻一区二区三区四区| 97干色天堂| 亚卅熟女乱色| 乱性AV| 日韩欧美麻豆 | 深夜激情| 嗯阿好爽好紧| 国产在线精品偷| 2019精品国产无码成人| 超碰4A| 久久久18禁| 99精品在线| 国产高清成人mv在线观看| 亚洲欧美另类图片| 加勒比色综合| 日韩精品人妻中文字幕有码午| 美国日韩黄色片| jizz啪啪| 久久精品久久久久久久| 香蕉免费一区二区三区不读| 黄色AV影视| 国产精品爽爽va在线观看98| 日韩免费中文字幕视频| 亚洲综合色图欧美| 久久久九九九九| 啊啊啊啊视频免费| 综合激情五月丁香| 久草网站免费在线观看| 小说区 图片区色 综合区| 黑人精品欧美一区二区蜜桃| 亚洲欧美setu| 九久久九精品视频| 91久久久久久久| 日韩av在线免费网站| 亚洲 小说 欧美 激情 另类| 人妻天堂三区| 嗯嗯嗯啊啊在线观看| 久久久久网站-538在线视频-欧美永久乱码 | 欧美狠狠操| 蜜臀av在线播放一区二区三区| 美国一区二区免费视频| 人妻中文字幕精品无码| 强奸抽插av| 秋霞色色影院| 丰满人妻一区二区三区色-百度| 清纯唯美综合亚洲| 久久中久文96| 少妇内射视频| 天堂综合| 青青草久久在线| 在线亚洲丝袜视频网站| 东北女人| 1204av韩国| 国精综合一二三区影视| 欧美日韩资源在线| 日日夜夜骚| 白丝AV网站| 天天日天天舔东京热| 天色综合网| 精品乱子一区二区三区99| 九九九综合精品| 粉嫩国产精品久久久| 人妻美腿丝袜制服诱惑综合天堂-| 欧美色偷拍| 国产精品久久久视频| 久久国色天香香蕉| 亚洲美欧999| 日韩懂色网| 在线一区| 91熟女视频网| 外国免费性情大片| 欧美日韩中文视频播放| 97超碰超碰| 欧美18 在线观看| 熟妇的味道HD中文字幕| 人人看欧美性爱| 强奸乱伦av电影| 狠狠色婷婷7777久| 日本 欧美 亚中文字幕| 免费看美国人人爽,人人操| 肥臀熟女福利视频一区二区| 欧美 日韩 国产传媒| 77国产精品| 欧美 日韩第一性色| 91中出视频| 亚洲伊人成综合成人网| 一级成人性爱| 99久久精品无码一区二区| 91干熟女| 啪啪91| 欧美精品久久| 欧美激情 亚洲色图| 蜜臀99久久精品久久久懂爱| 99久久精品无码一区二区毛片免费 | 美女写真| 日韩高潮一区| 影音先锋一区二区在线资源| 少好三P| 老司机福利青青草| 多毛小伙内射老太婆 | 麻豆视频一区二区| 涩综合导航| 国产精选三级在线观看| 天天操女人| 国产人人干| 91处女在线观看| 极品美女福利在线观看| 国产11页| 美女丝袜激情小说| av激情亚洲五月天| 在线强奷到舒服的无码视频| 最新加勒比丝袜在线| 欧美亚洲高清不卡| 人人操人人肉久久精品| 国产精品视频麻豆入口| 亚洲麻豆精品二区三区| 日日做夜狠狠爱欧美黑人| JuliaAnn丝袜熟女系列| 色狠狠 - 百度| 人夜夜精品网站香蕉嫩草| 加勒比伊人综合| 欧美日韩国产成人高清| 中文自拍欧美影视| 国产SV一线| 亚洲人久久久久日| 18禁的网站在线| 人人摸人人干| 青草成人免费视频一COm| 在线观看成人性爱免费小视频| 爽爽淫人网| 97操97干| 久久人人舔人人爽舔人人av片| 少妇免费视频| 亚洲男人在线观看天堂| 国产精品欧美日韩久久| 青青草视频在线观看一区二区| 老熟乱一区二区三区四区| 无码精品久久久天天影视| 欧美九九爱| 老司机香蕉| 天天做日日爱夜夜爽| 99只有精品| 亚洲欧洲自拍图片专区满春格| 天天爽天天操| 精品人妻一区二区蜜桃视频| 日韩激情小说一区二区| 精品国产一区二区三区久久久蜜臀| 三及片网站| 中文字幕黄色片| 精品国产乱码久久久久久日本公司| 1人人看人人摸人人操| 亚洲情色1区| 风月影院十八禁| 日本欧美成人片AAAA| 日本久久久久久久久久| 亚洲日韩国产欧美综合v| 欧美亚洲se91| 人人潮人人摸| 国产精品丝袜久久亚洲不卡| 五十路六十路素人熟女| 亚洲国产精品成人久久蜜臀| 国产一级黄色片在线观看| 美女网站黄页| 人看人人摸人人操| 日韩欧美蜜桃精品久久中文字幕久久 | 岛国1区2区3区在线观看| 精品人妻二区三区| AV乱伦国产| 韩国三级三级BD在线| 亚洲精品一区二区精品| 黄呦呦在线| 日本无码1| 久久久久人| 91精品黄在线观看| JuliaAnnXXX888| 天天综合色电影| 立川理惠被中出无码| 少妇同性| 密乳无码| 亚洲情色无码一区二区三区| 九月丁香| 日本人妻最新在线中| 色噜噜人妻丝袜AV资源| 日韩一级特黄av毛片| 大白逼三四级| 韩国久久97| 国产精品久久久无码aV去| 超碰98综合网| 十八禁啪啦拍视频无遮挡| 天天久久| 日日橹狠狠爱欧美超碰| 亚洲国产成人精品无码专区| 婷婷性网| 真实高潮91| 日韩欧美中文| 亚洲欧美碰碰| 欧美72网页| 欧美色综合影院| 热99这里有精品综合久久| 青春草A| 亚洲精品久久久久久久蜜桃臀| 神马午夜久久| 四季AV一区二区凹凸精品小说| 国产尹人在线视频免费| 3PAV乱伦视频| 久九9精品| 综合日本女人伊人| 蜜桃视频成a人v在线| 欧美姓爱综合网| 久久亚洲熟妇在线视频| AAA久久| 不卡av在线中文字幕| 大香蕉懂9| 亚洲AV无码久久精品蜜桃小说| 国产人妻天天干精品| 亚洲一级黄色毛片| 熟女露脸激情自拍视频| 日韩在线女优天天干| 中文字幕狠狠玩| 综合伊人网12色| 男人的天堂久久| 欧美A√综合网| 超碰av人人人| 91精产一区二区三区| 韩日精品四区| 午夜欧美女人操逼| 国产一区二区成人av在线播放| 久久九九精品一区二区| 在线综合 亚洲 欧美中文字幕| 青青草天天亲夜夜操网| 亚洲综合另类小说色区亚洲成av人片在www | 亚洲中亚日激情视频| 麻豆区99999| 99热色精品| 福利色色| 一区二区三区成人高清视频| 无码国产精品96久久久久孕妇| 青青久日| 欧美性视频二区三区| 九九久久国产精品| 日韩在线视频1234| 久久婷综合| 亚洲女毛多水多21P| 黄色av网站在线播放| 天天综合91| 亚洲在线a| 清纯唯美激情| 久久风骚城市人| 国产吹潮女在线观看| 欧美亚洲厕所精品偷拍91| 亚洲天堂另类小说男人| 啊啊啊啊嗯嗯嗯用力好爽 | 国产成人www免费人成看片| 久久综合国产精品国产| 日本中文字幕不卡视频| 91老熟女| 久久久久久性爱免费视频| 欧美色图校园春色| 日日骚av| 91老妇女| 超碰九九| 精品无码久久| 国产精品97视频| 99999久久精| 亚欧美综合网| 国产三级片在线观看| 欧美国产婷婷久久| 东京热男人天堂| 最近二区三区视频大全| 我要色综合网| 欧美97| 日韩有码 一区二区三区| 亚洲福利影院一区久久| 亚洲色图 欧美| 国产精品久久久吖| 国产精品久久久久久高清无码免费看| 日韩一级欧美一级国产一级台湾 | 亚射在线| 欧美日韩精品久久| 夜夜夜久久| 999综合网| 中文字幕人妻资源在线| 亚洲欧洲av影音| 狠狠操官网| 国产福利小视频高清在线观看| 日本一级性爱| 99这里都是精品|