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