cesium繪制primitive流程(一)數(shù)據(jù)準(zhǔn)備

下面是cesium初始化一個矩形primitive的代碼



ceium添加primitive示例

一,代碼介紹

其中g(shù)eometryInstances屬性表示包含的幾何實(shí)例梳凛,可以是幾何實(shí)例數(shù)組數(shù)組也可以是單個幾何實(shí)例對象,appearance屬性表示和幾何外觀相關(guān)的比如紋理。geometry實(shí)例化的幾何對象。vertexFormat 幾何對象具備的頂點(diǎn)屬性類型(例如只具備位置屬性绵脯,紋理坐標(biāo),法線不具備切線屬性)

1休里,Primitive類


(1)geometryInstances 幾何對象的實(shí)例數(shù)組蛆挫,可以傳入多個實(shí)例化幾何對象組成的數(shù)組,也可傳單個實(shí)例化幾何對象份帐。

(2)appearance?幾何對象的外觀屬性

(3)depthFailAppearance?深度測試失敗之后的外觀

(4)show?是否顯示

(5)modelMatrix?模型矩陣

(6)vertexCacheOptimize 是否優(yōu)化頂點(diǎn)緩存

(7)interleave?是否交叉存儲頂點(diǎn)屬性

(8)compressVertices?是否壓縮頂點(diǎn)屬性

(9)releaseGeometryInstances?是否添加幾何對象緩存

(10)allowPicking 是否允許拾取璃吧,

(11)cull 是否啟用視錐體剔除和地平線剔除

(12)asynchronous 是否支持異步創(chuàng)建primitive

(13)debugShowBoundingVolume 是否顯示用于debug的包圍球

(14)shadows 是否接收和產(chǎn)生陰影

2,GeometryInstance 類


geometry表示幾何對象废境。modelMatrix表示模型矩陣畜挨,用于將幾何對象從模型坐標(biāo)系轉(zhuǎn)換到世界坐標(biāo)系。attributes表示屬性信息噩凹,例如顏色等巴元。

id表示primitive的唯一標(biāo)識。

3驮宴,RectangleGeometry類


rectangle表示傳入的矩形坐標(biāo)例如Cesium.Rectangle.fromDegrees(-80.0,?39.0,?-74.0,?42.0),vertexFormat表示該幾何對象支持的頂點(diǎn)屬性類型逮刨,例如有法向量,頂點(diǎn)坐標(biāo),紋理坐標(biāo)修己,沒有顏色數(shù)據(jù)等恢总。ellipsolid投影橢球(默認(rèn)為WGS84橢球體),height表示幾何對象距離地球表面的高度睬愤,extrudedHeight幾何對象的拉伸高度片仿,rotation表示幾何對象的旋轉(zhuǎn)角度,stRotation表示幾何對象紋理旋轉(zhuǎn)角度尤辱。

4砂豌,EllipsoidSurfaceAppearance類

flat屬性表示是否考慮光照因素,如果設(shè)置為true將不考慮光照的影響光督。faceForward屬性是否翻轉(zhuǎn)背面阳距,如果設(shè)置為true將隨著觀察者移動自動完整幾何對象的背面為正面。translucent屬性是否開啟半透明效果结借。aboveGround屬性是否將幾何對象永遠(yuǎn)置于地面上筐摘。material屬性表示幾何對象的材質(zhì)。vertexShaderSource幾何對象的自定義頂點(diǎn)著色器映跟。fragmentShaderSource幾何對象的自定義片元著色器蓄拣。renderState屬性表示渲染狀態(tài)扬虚,例如深度測試努隙,模板測試,混合等辜昵。

5,Appearance類

Appearance類是EllipsoidSurfaceAppearance類的基類荸镊。Appearance類的屬性決定primitive的外觀,支持只定義頂點(diǎn)著色器堪置,片元著色器躬存,渲染狀態(tài),是所有外觀類的基類舀锨。

translucent表示幾何對象是否透明岭洲。renderState表示渲染狀態(tài)(例如深度檢測,模板檢測坎匿,混合盾剩,背面剔除等)。closed幾何體是否閉合替蔬。material材質(zhì)告私。vertexShaderSource自定義頂點(diǎn)著色器,fragmentShaderSource自定義片元著色器承桥。

Appearance的幾個子類分別為MaterialAppearance驻粟,EllipsoidSurfaceAppearance,PerInstanceColorAppearance凶异,DebugAppearance蜀撑,PolylineColorAppearance挤巡,PolylineMaterialAppearance。

(1)MaterialAppearance 材質(zhì)外觀酷麦,對于所有的幾何對象都適用玄柏,cesium的材質(zhì)包括顏色,圖片贴铜,法線貼圖粪摘,凹凸貼圖,網(wǎng)格貼圖绍坝,棋盤貼圖等徘意。

(2)EllipsoidSurfaceAppearance? 橢球體表面外觀,支持所有材質(zhì)轩褐,但需要具有法線椎咧,切線,副切線屬性把介。

(3)PerInstanceColorAppearance 使用每個GeometryInstance自帶的顏色屬性勤讽,可以實(shí)現(xiàn)不同的實(shí)例渲染不同顏色

(4)DebugAppearance 用于測試

(5)PolylineColorAppearance 線幾何對象的顏色外觀,使用每個GeometryInstance自帶的顏色屬性拗踢,可以實(shí)現(xiàn)不同的實(shí)例渲染不同顏色

(6)PolylineMaterialAppearance 線幾何對象的材質(zhì)的外觀脚牍,可以對線幾何對象使用各種材質(zhì)。

6巢墅,Material類


(1)屬性介紹 strict是否開啟嚴(yán)格模式诸狭,設(shè)置為true的話著色器當(dāng)出現(xiàn)沒有被使用uniform變量就會拋出錯誤。translucent材質(zhì)是否透明君纫。minificationFilter當(dāng)材質(zhì)尺寸比繪制對象小的時候所采用的映射方式驯遇。magnificationFilter當(dāng)材質(zhì)比繪制對象大時候采用的映射方式。fabric生成紋理的json,fabric對象還包含type材質(zhì)類型蓄髓,uniforms傳入著色器和材質(zhì)相關(guān)的uniform屬性叉庐,components材質(zhì)結(jié)構(gòu)體屬性,source自定義的材質(zhì)shader会喝。(注:fabric屬性比較復(fù)雜陡叠,如果有時間我會專門寫一篇文章來介紹cesium的材質(zhì)。)

(2)cesium支持的材質(zhì)類型

“Color“顏色材質(zhì)好乐,”Image”圖片材質(zhì)匾竿,“DiffuseMap“漫反射材質(zhì),”AlphaMap”阿爾法材質(zhì)蔚万,“SpecularMap“高光材質(zhì)岭妖,”EmissionMap”環(huán)境反射材質(zhì),“BumpMap“凹凸材質(zhì),”Grid”材質(zhì)等昵慌。



二假夺,代碼執(zhí)行過程

1,實(shí)例化RectangleGeometry類斋攀,通過RectangleGeometry的構(gòu)造函數(shù)傳入矩形范圍已卷,高度,拉伸高度淳蔼,

旋轉(zhuǎn)參數(shù)侧蘸,紋理旋轉(zhuǎn)參數(shù)等完成初始化。

2鹉梨,實(shí)例化GeometryInstance

向GeometryInstance的構(gòu)造函數(shù)傳入實(shí)例化的RectangleGeometry對象讳癌,模型矩陣,id,屬性信息(例如幾何對象的顏色)等

3存皂,實(shí)例化Material

material:Cesium.Material.fromType("Stripe") 這行代碼的意思是調(diào)用了Material類中的fromType方法獲取條形紋理緩存



該方法會實(shí)例Material,并根據(jù)傳入的type從紋理緩存中獲取相應(yīng)的紋理參數(shù)晌坤。

4,實(shí)例化EllipsoidSurfaceAppearance外觀類旦袋,將材質(zhì)骤菠,自定義片元著色器,自定義頂點(diǎn)著色器疤孕,渲染狀態(tài)等參數(shù)傳入商乎。

5,實(shí)例化Primitive類

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末胰柑,一起剝皮案震驚了整個濱河市截亦,隨后出現(xiàn)的幾起案子爬泥,更是在濱河造成了極大的恐慌柬讨,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袍啡,死亡現(xiàn)場離奇詭異踩官,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)境输,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門蔗牡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嗅剖,你說我怎么就攤上這事辩越。” “怎么了信粮?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵黔攒,是天一觀的道長。 經(jīng)常有香客問我,道長督惰,這世上最難降的妖魔是什么不傅? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮赏胚,結(jié)果婚禮上访娶,老公的妹妹穿的比我還像新娘。我一直安慰自己觉阅,他們只是感情好崖疤,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著典勇,像睡著了一般戳晌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上痴柔,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天沦偎,我揣著相機(jī)與錄音,去河邊找鬼咳蔚。 笑死豪嚎,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的谈火。 我是一名探鬼主播侈询,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼糯耍!你這毒婦竟也來了扔字?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤温技,失蹤者是張志新(化名)和其女友劉穎革为,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舵鳞,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡震檩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蜓堕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抛虏。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖套才,靈堂內(nèi)的尸體忽然破棺而出迂猴,到底是詐尸還是另有隱情,我是刑警寧澤背伴,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布沸毁,位于F島的核電站儡率,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏以清。R本人自食惡果不足惜儿普,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望掷倔。 院中可真熱鬧眉孩,春花似錦、人聲如沸勒葱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凛虽。三九已至死遭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間凯旋,已是汗流浹背呀潭。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留至非,地道東北人钠署。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像荒椭,于是被迫代替她去往敵國和親谐鼎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容