網(wǎng)站在線備案太原seo全網(wǎng)營銷
介紹
在Cesium中,星空背景是通過天空盒子方式(6張圖片)來顯示的,原生的圖片分辨率太低,本項目用于生成天空盒子的6張圖片。最終生成的6個圖片大小約為500kb(每個),格式為jpg,總共的恒星數(shù)目約為1萬顆左右,在最終的地球星空背景中,僅出現(xiàn)恒星點,不會出現(xiàn)模糊的效果!
有關Cesium天空盒子的原理和介紹請參見我之前寫的一篇文章:Cesium與STK中的天空盒子(skybox)。
原理
星空背景本質(zhì)上就是將所有的恒星投影到天空盒子對應的6個方位的圖片上。
本項目利用Canvas的2D作圖功能,創(chuàng)建一個純黑色的背景。然后根據(jù)每個恒星的位置轉(zhuǎn)換為對應圖片下的像素坐標,然后再利用恒星
對應的星等畫一個白色的點,點的像素大小和透明度由星等決定(恒星越亮,則點的像素越大,越不透明)。
目前基本設置為(詳見:createSkyboxImage.js)
- 最亮: -1等,對應為5個像素,透明度為1.0(不透明)
- 中等: 7等,對應為1個像素,透明度為0.75
本項目中,最暗為7等星,因為超過8等星人眼就看不到了!
項目目錄
- CesiumUnminified文件夾為Cesium安裝包里面的內(nèi)容(Build目錄下),本項目用于引用Cesium.js文件
- Skybox文件夾里存放了其它方式生成的天空盒子,可供測試使用
- CatalogSkybox.js,為本人編寫的天球坐標系ICRF到立方體盒子的投影轉(zhuǎn)換相關函數(shù)
- createSkyboxImage.js,用于生成立方體盒子的一副圖片
- hipparcos_7_concise.js,包含了依巴谷星表(hipparcos)中7等星以上的所有數(shù)據(jù)(經(jīng)過處理的),數(shù)據(jù)來源: https://github.com/gmiller123456/hip2000
使用說明
- VS Code里使用Live Server打開index.html,即可加載Cesium默認的啟動界面,同時加載了內(nèi)置生成的天空盒子
- 網(wǎng)頁啟動后,會自動將創(chuàng)建的6張?zhí)炜蘸凶诱掌娣旁跒g覽器的下載目錄下
- 實際使用時,可以將本項目的代碼集成到項目中,頁面啟動時動態(tài)創(chuàng)建6個圖片(如index.html中那樣);也可以使用生成好的圖片,以靜態(tài)圖片引用的方式加載。
加載后效果如下:
其它
- 用戶可自行修改createSkyboxImage.js函數(shù),使用不同的星等創(chuàng)建不同像素大小的星星!