概述
. 這個(gè)項(xiàng)目最初的目的是為了嘗試解析現(xiàn)有的UI編輯器(MyGUI)導(dǎo)出的UI布局信息,通過(guò)ImGUI還原UI渲染窒篱。但是在開(kāi)發(fā)過(guò)程中,我發(fā)現(xiàn)可以借此實(shí)現(xiàn)一個(gè)編輯器忱详,一個(gè)我不斷的尋找骑晶,但始終沒(méi)有找到的簡(jiǎn)單易用容易擴(kuò)展的幾何編輯器〈烫遥“幾何編輯器”這個(gè)名字可能不太準(zhǔn)確粹淋,我也不知道它應(yīng)該叫什么,我主要用它來(lái)實(shí)現(xiàn)和驗(yàn)證各種幾何相關(guān)的圖形算法,因?yàn)樗莻€(gè)人興趣所致桃移,所以前后實(shí)現(xiàn)的兩個(gè)功能可能完全沒(méi)有關(guān)聯(lián)屋匕,畢竟我是一個(gè)興趣廣泛的人。由于這個(gè)編輯器的主要目的并不是實(shí)現(xiàn)編輯器本身借杰,而是在它的基礎(chǔ)上實(shí)現(xiàn)各種幾何算法过吻,因此編輯器本身還比較粗糙(其實(shí)整體都比較粗糙- -|||)。值得一提的是蔗衡,這個(gè)項(xiàng)目沒(méi)有引入任何第三方渲染庫(kù)纤虽,底層的渲染管道是基于OpenGL純手工編碼。
依賴(lài):
- 編程語(yǔ)言:C++17
- 編譯環(huán)境:Visual Studio 2019
- 第三方庫(kù):GLM绞惦,ImGUI逼纸,stb_image
模塊:
- 配置
Tips:配置的讀取和寫(xiě)入,目前僅支持Json格式
- 資源
Tips:當(dāng)前支持圖片(.jpg翩隧,.png)樊展,圖集(.atlas),Tilemap地圖(.map)堆生,著色器(.program)专缠,SDF字體(.fnt),可序列化對(duì)象淑仆。資源管理是基于std::weak_ptr/std::share_ptr實(shí)現(xiàn)涝婉,盡可能的簡(jiǎn)單易用。
- 事件
Tips:全局事件模塊
- 界面
Tips:基于ImGUI實(shí)現(xiàn)的UI模塊蔗怠,當(dāng)前已實(shí)現(xiàn)控件有:容器框墩弯,文本框,輸入框寞射,選擇框渔工,下拉框,樹(shù)形框桥温,按鈕引矩,菜單,畫(huà)布侵浸。通過(guò)UI布局文件自動(dòng)生成UI對(duì)象旺韭,統(tǒng)一管理UI事件(包括拖放事件),可動(dòng)態(tài)調(diào)整容器大小掏觉,支持皮膚更換区端。其中畫(huà)布提供了渲染功能,即舞臺(tái)對(duì)象的渲染都將在畫(huà)布中實(shí)現(xiàn)澳腹。
- 組件
Tips:組件模塊和渲染對(duì)象都包含在界面中织盼,因?yàn)樗鼈兌家蕾?lài)畫(huà)布杨何,但組件模塊占比較高,所以單獨(dú)提出悔政,它的設(shè)計(jì)理念可參考Unity3D晚吞。
部分功能展示
換膚
資源搜索
舞臺(tái)基本操作
組件-文本渲染
組件-精靈渲染
組件-光源渲染
組件-地圖渲染
組件-曲線(xiàn)渲染
組件-閃電渲染
組件-精靈變形渲染
組件-后期處理渲染
組件-遮擋剔除渲染
組件-地形擦出渲染
如果你對(duì)某個(gè)實(shí)現(xiàn)感興趣,你可以嘗試在這里找到相對(duì)詳細(xì)的細(xì)節(jié)分析(其實(shí)也不太詳細(xì))>>> 博客:落單的毛毛蟲(chóng)