
Cesium三維地下空間可視化指南5分鐘看透地球【免費下載鏈接】cesiumAn open-source JavaScript library for world-class 3D globes and maps :earth_americas:項目地址: https://gitcode.com/GitHub_Trending/ce/cesiumCesium 是一款開源 JavaScript 三維地球渲染引擎用 WebGL 讓地下空間可視化直接在瀏覽器里運行地表透明化、相機潛入地球內(nèi)部、展示礦井管線等結(jié)構(gòu)。照下面的做法30 分鐘就能搭出一個地質(zhì)剖面演示。為什么“看透地球”不容易想在瀏覽器里展示地表之下的管線、礦井或地質(zhì)分層最先遇到的問題是地表會一直“擋住”視線不透明的地球就像一層撕不掉的外皮。二維地圖表達不了縱深通用三維引擎又沒有真實地球坐標系模型放得進去空間感卻出不來。核心能力速覽地表透明化通過globe.translucency控制地球整體或局部區(qū)域的透明度把地表“揭開”露出地下內(nèi)容地下相機漫游一行代碼關(guān)閉地形碰撞檢測相機可以直接潛進地球內(nèi)部地下結(jié)構(gòu)建模橢球等基本圖元就能搭分層結(jié)構(gòu)精細的設施模型可導入 glTF/GLB地下環(huán)境控制undergroundColor與fog.density分別控制地下背景色和霧的濃度營造縱深感3D Tiles 流式加載海量地下數(shù)據(jù)按距離分塊加載不會把瀏覽器卡死最小可運行示例三步得到透明地球地下空間可視化的起點就是讓地表變透明先關(guān)碰撞再開透明化。const viewer new Cesium.Viewer(cesiumContainer, { orderIndependentTranslucency: false }); const scene viewer.scene; scene.screenSpaceCameraController.enableCollisionDetection false; scene.globe.translucency.enabled true; scene.globe.translucency.frontFaceAlpha 0.25;跑完這段代碼地球表面會變成 25% 的透明度鼠標直接拖進地表也不會被彈回來。不想自己搭頁面的話先把倉庫拉下來git clone https://gitcode.com/GitHub_Trending/ce/cesium cd cesium npm install然后按 README.md 的說明啟動項目打開 globe-interior 示例你會看到一個可以切換內(nèi)核、外核、地幔的完整演示。進階玩法與組合技巧區(qū)域透明掩碼的三步設置不想讓整片地表都透明可以用rectangle只在指定區(qū)域“開個窗口”scene.globe.translucency.rectangle Cesium.Rectangle.fromDegrees( -120.0, 0.0, -30.0, 45.0 );效果是地表出現(xiàn)一塊半透明的矩形區(qū)域地下模型只在這個范圍內(nèi)被“看見”。用橢球體搭建分層內(nèi)核結(jié)構(gòu)經(jīng)典地質(zhì)剖面的做法是三層嵌套橢球都放在地心坐標原點viewer.entities.add({ position: Cesium.Cartesian3.ZERO, ellipsoid: { radii: new Cesium.Cartesian3(1250000, 1250000, 1250000), material: Cesium.Color.YELLOW } });把 radii 依次改成 3450000 和 6300000、material 換成 ORANGE 與 RED就疊出了外核和地幔。調(diào)霧效與地下顏色增強縱深感scene.globe.undergroundColor Cesium.Color.BLACK; scene.fog.density 0.0012;地下背景會變暗、遠處更朦朧空間層次感立刻出來效果不明顯時可以繼續(xù)加大 density默認 0.0006。如果地下設施是大規(guī)模 3D Tiles 數(shù)據(jù)引擎會按相機距離分塊流式加載可以先在 gallery 的 3D Tiles 示例里感受一下性能表現(xiàn)常見誤區(qū)與調(diào)試思路透明設置不生效→ 先確認translucency.enabled true是否已設置frontFaceAlpha等參數(shù)只有開啟后才生效且取值必須在 0-1 之間相機鉆不進地下、總被彈回→ 碰撞檢測默認開啟用enableCollisionDetection false關(guān)掉想限制最小深度可以在postUpdate里讀取當前高度把相機拉回地下模型看不見或地表仍然遮擋→ 先關(guān)掉globe.showGroundAtmosphere如果畫面整體被一層顏色蓋住把globe.undergroundColor設為undefined即可禁用地下著色延伸資源官方文檔Documentation/ — 模塊文檔與貢獻者指南含性能測試和測試指南地球內(nèi)部示例packages/sandcastle/gallery/globe-interior/ — 內(nèi)核/外核/地幔與地表透明化的完整演示距離漸變示例packages/sandcastle/gallery/globe-translucency/ — 地表透明度隨距離漸變帶真實礦井模型地下顏色示例packages/sandcastle/gallery/underground-color/ — 試用不同的 undergroundColor 取值透明化源碼packages/engine/Source/Scene/GlobeTranslucency.js — 透明化對象的完整屬性定義地球源碼packages/engine/Source/Scene/Globe.js — undergroundColor 等屬性所在位置社區(qū)在項目 Issue 與討論區(qū)按underground或translucency關(guān)鍵詞搜索能找到相關(guān)問題的最新討論【免費下載鏈接】cesiumAn open-source JavaScript library for world-class 3D globes and maps :earth_americas:項目地址: https://gitcode.com/GitHub_Trending/ce/cesium創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考