本發(fā)明屬于計算機開發(fā)技術領域,尤其涉及一種Elf3D跨平臺引擎系統(tǒng)。
背景技術:
Elf3D跨平臺引擎針對現(xiàn)有3d游戲引擎性能與延伸及畫面效果不太完美的情況,自主研發(fā)的3D跨平臺游戲引擎。
Elf3D跨平臺引擎系統(tǒng)的引擎效率受布局和布線影響,它直接耗費了Elf3D跨平臺引擎系統(tǒng)設計流程中絕大部分CPU時間,并且影響到整個電路的性能。
在現(xiàn)有的布局方法中成本函數(shù)的計算包括線長成本和時序成本:線長成本是整個電路中每個信號布線線長估計值的和,最小化線長成本關系到最小化布線資源的消耗并平衡布線密度以保證布線成功;時序成本是布局時所有布線路徑的延時之和,最小化時序成本關系到最小化關鍵路徑延時。同時成本函數(shù)Cost()還要通過權重參數(shù)正確地平衡最小化線長和最小化關鍵路徑延時之間關系。Metropolis準則中的溫度參數(shù)T,用于控制接受導致布局變差移動的可能性。一開始,T是非常高的,幾乎所有的移動都被接受;隨著布局優(yōu)化,它的值逐漸減少,這樣接受使布局變差的移動的概率是非常低的。接受一個使布局變差的移動帶來的爬坡能力,使得模擬退火避免收斂到成本函數(shù)上的局部最優(yōu)解。溫度下降的速度、在每個溫度下試圖移動的次數(shù)和產生可能移動的方法、終止退火的退出標準是由退火表所決定。這種方法由于在每個溫度T下必須做足夠多的移動才能達到熱力學平衡,同時為了取得接近最優(yōu)的布局結果,溫度T下降非常緩慢,所以會花費非常多的CPU時間。
現(xiàn)有的解決布線問題的方法為,一種基于擁擠協(xié)商PathFinder算法的迭代式布線方法,該方法使用了一種嘗試平衡競爭目標:消除擁擠與最小化關鍵路徑延時的迭代方法,該迭代方法采用多次布線迭代來完成,允許信號初步占用布線資源,但隨后必須與其他信號協(xié)商并決定哪個信號最需要該布線資源。在每次迭代中都要進行一次時序分析以維持對那些可能十分關鍵的信號持續(xù)施加影響。在協(xié)商中通過讓越是關鍵的信號越具有更優(yōu)先的次序,最終將關鍵路徑延時最小化。在每次迭代過程中,每條信號被拆線并按照預定的順序布線。在布線資源圖中的每一布線資源節(jié)點i的成本,表示節(jié)點i被信號占用次數(shù),用以反映每個信號布線后以及一次完整布線迭代之后的擁擠狀況。成本的更新迫使信號布線從器件的擁擠區(qū)域遷移至較離散分布的區(qū)域,為當前正處于擁擠區(qū)域的其他需求更大的信號騰出空間。由于該方法在每次布線迭代中,既要考慮最小化成本,即關鍵路徑延時,又要排除布線資源重用導致的擁擠,使迭代過程必須持續(xù)進行直到沒有布線資源重用為止,因而這會耗費大量的CPU時間。
綜上所述,現(xiàn)有技術存在的問題是:現(xiàn)有3d游戲引擎性能與延伸及畫面效果不太完美,Elf3D跨平臺引擎系統(tǒng)的布局和布線直接耗費了設計流程中絕大部分CPU時間,并且影響到整個電路的性能。
技術實現(xiàn)要素:
為解決現(xiàn)有技術存在的問題,本發(fā)明提供一種Elf3D跨平臺引擎系統(tǒng)。
本發(fā)明是這樣實現(xiàn)的,一種Elf3D跨平臺引擎系統(tǒng),所述Elf3D跨平臺引擎系統(tǒng)包括:
跨平臺多光源延遲渲染系統(tǒng),用于通過先渲染GBuffer,在混合GBuffer進行光照計算,輸出最終渲染結果;使場景中動態(tài)光的數(shù)量不再受限制,將計算復雜度從O(n2)降為O(n);
多線程渲染框架,最大化的利用硬件并行化計算的能力,用于解放CPU的計算能力;并用于進行CPU和GPU耦合度,提升整體引擎效率;
多種主流VR平臺,通過使用工具鏈,將原有項目的內容,移植輸出到VR平臺。
進一步,所述的工具鏈,包括:
資源瀏覽器,用于可視化管理項目資源,支持拖拽操作,支持從小項目到AAA大型項目管理;
真實游戲畫面編輯器,用于實時編輯和查看實際游戲畫面;
平臺模擬器,用于在Windows上直接查看iOS,Android上實際游戲畫面;
材質編輯器,用于使用美術熟悉的3ds max材質編輯器,提供豐富的可調屬性;
模型編輯器,用于檢查模型分組,指定材質,觀察相關物理屬性,支持自動LOD和UV生成;
粒子編輯器,用于提供豐富的發(fā)射器,修改器組件,可調參數(shù)列表,性能評估;
FBX格式導入器,用于支持所有主流3D美術制作軟件,支持靜態(tài)模型,組合模型,剛體動畫,蒙皮動畫,內建材質、帖圖導入;
地形編輯器,用于支持最大8層單獨材質,每層材質具有單獨的材質參數(shù);
動畫曲線編輯器,用于美術在場景中對任意材質動畫、任意燈光參數(shù)進行動畫編輯,設置播放速度、循環(huán)屬性的操作;
聲音編輯器,用于實時編輯、測試場景音效環(huán)境;
光照烘培器,用于支持高細節(jié)全局光照和陰影,與編輯器深度整合,實時查看烘焙結果,一鍵烘焙,無需美術重復調節(jié)關卡;
帖圖編輯器,用于貼圖查看,格式壓縮設置,跨平臺資源壓縮設置;
資源發(fā)布器,用于支持跨平臺資源優(yōu)化,自動記錄用戶設置,轉換資源到適應目標平臺的最優(yōu)格式,支持帖圖自動縮放、格式轉換、shader和材質自適應,一鍵部署。
進一步,Elf3D跨平臺引擎系統(tǒng)布局布線的方法具體步驟為:
第一步,將電路中每一個可配置邏輯單元CLB、I/O單元、異構模塊等單元隨機地放置到Elf3D跨平臺引擎系統(tǒng)硬件內部物理位置,得到一個初始布局;
第二步,計算初始溫度T0;
第三步,布局迭代;
第四步,局部優(yōu)化布局;
第五步,如果累計第三步中對步驟一至步驟三過程迭代總次數(shù)超過TAS,則輸出當前最優(yōu)布局并轉第六步進行布線;否則令當前溫度T為前一次執(zhí)行第三步過程中新布局的接受率第一次低于44%時的溫度,轉第三步開始重復退火;
第六步,布線初始化;
第七步,為每個線程劃分任務集,假設處理器個數(shù)為P,則創(chuàng)建P個線程,并且為每個線程Thd[i]創(chuàng)建任務集SigSet[i],i∈{1,2,…,P};將布線資源圖RG劃分為P個大小相等的不交叉區(qū)域,對于每個信號,如果落入?yún)^(qū)域i的目標節(jié)點sink個數(shù)越多,就將分給區(qū)域i對應的任務集SigSet[i],i∈{1,2,…,P},并保證每個任務集內的sink總數(shù)一樣多;
第八步,對每個線程任務集SigSet[i]中所有信號按照sink個數(shù)從多到少排列;
第九步,啟動P個線程,P個線程并行執(zhí)行第十步;
第十步,并行布線迭代;
第十一步,同步P個線程,即等待每個線程都執(zhí)行完第十步;由主線程檢查整個電路的布線是否合法,如果布線合法,即沒有重復被占用的布線資源節(jié)點,則轉第十四步;否則,對所有重復被占用的布線資源節(jié)點的歷史占用度加1,并且加大擁擠懲罰度,進行時序分析,轉第十二步;第十二步,主線程重新布線擁擠的信號;
第十三步,檢查整個電路的布線是否合法,如果布線合法,則轉第十四步;否則如果布線迭代次數(shù)不超過指定值Max,則進行時序分析并轉第十步執(zhí)行下一次布線迭代,否則轉第十四步;
第十四步,將其余P-1個線程合并到主線程,輸出布線結果并退出布線。
進一步,在第三步中,布局迭代具體步驟為:
步驟一,在當前布局上,通過隨機地選擇一對可配置邏輯單元CLB、I/O單元、異構模塊等單元交換位置,或者選擇一個可配置邏輯單元CLB、I/O單元、異構模塊等單元與一個空白位置進行交換,得到一個新的布局,得到一個新布局,并計算新布局的花費Cost:
其中Cost'表示當前布局花費,初始布局時Cost'=1.0,tc、tc'、bc、bc'均為實數(shù),tc和bc分別表示新布局的時序量和擁擠量,tc'和bc'分別表示當前布局的時序量和擁擠量,λ表示時序量的權重,1-λ表示擁擠量的權重,λ=0.5;
步驟二,根據(jù)當前溫度T,用新布局的花費Cost與當前布局的花費Cost'之差ΔC判斷是否接受新布局:若ΔC<0,則接受新布局為當前布局,否則,設u為區(qū)間[0,1]內的一個隨機數(shù),如果u<exp(-ΔC/T),則接受新布局為當前布局;
步驟三,用VFSR退火函數(shù)更新當前溫度T:
T=T0exp(-ck),
k為接受新布局的總次數(shù),c為實數(shù)常量,c=-log(TRS)×exp(-log(TAS));TRS為退火尺度系數(shù),TRS=10-9,TAS為最大退火迭代次數(shù),TAS計算方法為:
TAS=log0.8(0.05×H/T0)×M,
其中H為電路中的信號個數(shù),M為馬可夫鏈長度,M=10·N1.33;
步驟四,對步驟一至三過程進行M次迭代;
步驟五,如果T<0.05×Cost/H,則執(zhí)行步驟四,否則轉步驟一繼續(xù)執(zhí)行。
進一步,在第四步中,局部優(yōu)化布局的具體方法為:
第一,令當前溫度T=0,對第三步的步驟一至步驟二過程進行M次迭代,由于當前溫度T為0的情況下,只接受結果比當前布局好的新布局,所以進行M次迭代之后會找到局部最優(yōu)布局;
第二,如果步驟一獲得的局部最優(yōu)布局的結果好于當前最優(yōu)布局,則替換當前最優(yōu)布局為該局部最優(yōu)布局,當前最優(yōu)布局為到目前為止找到的結果最好的布局;
進一步,在第十步中,并行布線迭代的具體方法為:
(一),每個線程Thd[i]按序從任務集SigSet[i]中取一個信號j進行拆線,即如果信號j已布線,則清空信號j在布線資源圖RG上的布線路徑,并對信號j的布線路徑經歷的布線資源節(jié)點的占有度減1,P個線程互斥執(zhí)行此步驟,i∈{1,2,…,P};
(二),將信號j的源節(jié)點src加入到布線樹RT[j],布線樹RT[j]用來以樹形結構保存信號j的源節(jié)點src到多個目標節(jié)點sink的布線路徑;
(三),對信號j的每一個目標節(jié)點sink用A*尋路算法在布線資源圖RG上尋找一條從布線樹RT[j]中節(jié)點到該目標節(jié)點sink的花費最低的路徑進行布線,并保存布線路徑:
清空優(yōu)先隊列PQ,并將布線樹RT[j]中每個布線資源節(jié)點x的路徑成本PathCost(x)置為Crit(src,sink)×delay(x),加入到優(yōu)先隊列PQ中,優(yōu)先隊列PQ用來按總成本TotalCost(x)從小到大排序來存儲當前搜索到的布線資源節(jié)點,TotalCost(x)定義為:
TotalCost(x)=PathCost(x)+α·ExpectedCost(x,sink),
其中ExpectedCost(x,sink)代表從當前布線資源節(jié)點x到目標端點sink的期望成本估計值,α為啟發(fā)式參數(shù),α取值范圍為1.0至1.4,路徑成本PathCost(x)表示從源節(jié)點src到當前搜索到的節(jié)點x的路徑上的每一個布線資源節(jié)點n的布線成本Cost(n)之和,Cost(n)表示布線資源節(jié)點n的布線成本:
Cost(n)=Crit(src,sink)×delay(n)+[1-Crit(src,sink)]×b(n)×p(n)×h(n),
其中Crit(src,sink)表示時序分析后信號j從源節(jié)點src到目標節(jié)點sink的邊的關鍵度,delay(n)表示節(jié)點n的時序項,b(n)表示節(jié)點n的基本花費,p(n)表示節(jié)點n當前占有度,h(n)表示節(jié)點n的歷史占有度;
取信號j尚未布線的目標節(jié)點中關鍵度Crit(src,sink)最大的目標節(jié)點sink,如果目標節(jié)點sink是優(yōu)先隊列PQ中第一個節(jié)點,則表示源節(jié)點src到目標節(jié)點sink的最佳路徑已找到,否則轉從優(yōu)先級隊列PQ中取出隊首布線資源節(jié)點y,對與y相連的布線資源節(jié)點z計算總成本TotalCost(z),并將z按TotalCost(z)加入到優(yōu)先級隊列PQ中,重復執(zhí)行直到找到目標節(jié)點sink的路徑;
(四),對該路徑經歷的布線資源節(jié)點的占有度加1,P個線程互斥執(zhí)行此步驟;
(五),將該路徑加入到布線樹RT[j],如果信號j還有目標節(jié)點sink,則轉步驟步驟(三),對信號j下一個目標節(jié)點sink尋路,否則,執(zhí)行步驟(六);
(六),如果任務集SigSet[i]中所有信號都完成了步驟一至步驟五過程,則轉第十一步,否則,繼續(xù)布線下一個信號。
本發(fā)明提供的Elf3D跨平臺引擎前端達到次時代畫面效果,在性能與伸縮性方面都具有良好的品質,跨平臺解決方案工具化,保證美術流程的統(tǒng)一。
本發(fā)明提供的布局布線的方法,將應用于傳統(tǒng)集成電路布局的超快速模擬重復退火VFSR算法的退火函數(shù)應用于Elf3D跨平臺引擎系統(tǒng)布局的溫度更新,采用了重復退火過程以反復尋找更好的解,實現(xiàn)了對布局過程的加速;采用多線程方法對現(xiàn)有的基于擁擠協(xié)商PathFinder算法的布線方法進行并行化改進。本發(fā)明提供的布局布線的方法使得最終電路的時延和線長兩個重要性能指標基本不變的情況下,布局布線速度有了顯著加快。本發(fā)明方法簡單,操作方便,較好的解決了現(xiàn)有Elf3D跨平臺引擎系統(tǒng)的布局、布線過程中CPU消耗時間長,效率低的問題。
附圖說明
圖1是本發(fā)明實施例提供的Elf3D跨平臺引擎系統(tǒng)示意圖。
圖2是本發(fā)明實施例提供的工具鏈示意圖。
圖中:1、跨平臺多光源延遲渲染系統(tǒng);2、多線程渲染框架;3、多種主流VR平臺;4、資源瀏覽器;5、真實游戲畫面編輯器;6、平臺模擬器;7、材質編輯器;8、模型編輯器;9、粒子編輯器;10、FBX格式導入器;11、地形編輯器;12、動畫曲線編輯器;13、聲音編輯器;14、光照烘培器;15、帖圖編輯器;16、資源發(fā)布器。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
下面結合對本發(fā)明的應用原理作詳細描述。
如圖1所示,本發(fā)明實施例提供的Elf3D跨平臺引擎系統(tǒng)包括:
高效的跨平臺多光源延遲渲染系統(tǒng)1:
延遲渲染通過先渲染GBuffer(包含多張基礎材質信息的場景渲染結果),在混合GBuffer進行光照計算,輸出最終渲染結果的方式,使場景中動態(tài)光的數(shù)量不再受限制,提升了多光源實時渲染的效率,將計算復雜度從O(n2)降為O(n)
多線程渲染框架2:
采用多線程渲染框架,能夠保證GPU的效率得到最大的利用,同時解放CPU的計算能力,用于更為復雜的傳統(tǒng)計算,例如,物理碰撞,粒子模擬等。多線程渲染框架能最大化的利用硬件并行化計算的能力,尤其是GPU的效率。多線程渲染框架,能夠從根本上解決CPU和GPU的耦合度的問題,提升整體引擎效率。
多種主流VR平臺3:
VR是手機平臺后的有一個巨大的計算平臺,Elf3D引擎支持多種主流VR設備,無需在傳統(tǒng)項目上進行二次技術開發(fā),支持輸出程序運行時到VR設備。
Elf3D引擎提供成熟的VR運行時,同時使用工具鏈的支持,將原有項目的內容,移植輸出到VR平臺上,無需二次開發(fā)。
本發(fā)明實施例提供的Elf3D跨平臺引擎系統(tǒng)布局布線的方法具體步驟為:
第一步,將電路中每一個可配置邏輯單元CLB、I/O單元、異構模塊等單元隨機地放置到Elf3D跨平臺引擎系統(tǒng)硬件內部物理位置,得到一個初始布局;
第二步,計算初始溫度T0;
第三步,布局迭代;
第四步,局部優(yōu)化布局;
第五步,如果累計第三步中對步驟一至步驟三過程迭代總次數(shù)超過TAS,則輸出當前最優(yōu)布局并轉第六步進行布線;否則令當前溫度T為前一次執(zhí)行第三步過程中新布局的接受率第一次低于44%時的溫度,轉第三步開始重復退火;
第六步,布線初始化;
第七步,為每個線程劃分任務集,假設處理器個數(shù)為P,則創(chuàng)建P個線程,并且為每個線程Thd[i]創(chuàng)建任務集SigSet[i],i∈{1,2,…,P};將布線資源圖RG劃分為P個大小相等的不交叉區(qū)域,對于每個信號,如果落入?yún)^(qū)域i的目標節(jié)點sink個數(shù)越多,就將分給區(qū)域i對應的任務集SigSet[i],i∈{1,2,…,P},并保證每個任務集內的sink總數(shù)一樣多;
第八步,對每個線程任務集SigSet[i]中所有信號按照sink個數(shù)從多到少排列;
第九步,啟動P個線程,P個線程并行執(zhí)行第十步;
第十步,并行布線迭代;
第十一步,同步P個線程,即等待每個線程都執(zhí)行完第十步;由主線程檢查整個電路的布線是否合法,如果布線合法,即沒有重復被占用的布線資源節(jié)點,則轉第十四步;否則,對所有重復被占用的布線資源節(jié)點的歷史占用度加1,并且加大擁擠懲罰度,進行時序分析,轉第十二步;第十二步,主線程重新布線擁擠的信號;
第十三步,檢查整個電路的布線是否合法,如果布線合法,則轉第十四步;否則如果布線迭代次數(shù)不超過指定值Max,則進行時序分析并轉第十步執(zhí)行下一次布線迭代,否則轉第十四步;
第十四步,將其余P-1個線程合并到主線程,輸出布線結果并退出布線。
進一步,在第三步中,布局迭代具體步驟為:
步驟一,在當前布局上,通過隨機地選擇一對可配置邏輯單元CLB、I/O單元、異構模塊等單元交換位置,或者選擇一個可配置邏輯單元CLB、I/O單元、異構模塊等單元與一個空白位置進行交換,得到一個新的布局,得到一個新布局,并計算新布局的花費Cost:
其中Cost'表示當前布局花費,初始布局時Cost'=1.0,tc、tc'、bc、bc'均為實數(shù),tc和bc分別表示新布局的時序量和擁擠量,tc'和bc'分別表示當前布局的時序量和擁擠量,λ表示時序量的權重,1-λ表示擁擠量的權重,λ=0.5;
步驟二,根據(jù)當前溫度T,用新布局的花費Cost與當前布局的花費Cost'之差ΔC判斷是否接受新布局:若ΔC<0,則接受新布局為當前布局,否則,設u為區(qū)間[0,1]內的一個隨機數(shù),如果u<exp(-ΔC/T),則接受新布局為當前布局;
步驟三,用VFSR退火函數(shù)更新當前溫度T:
T=T0exp(-ck),
k為接受新布局的總次數(shù),c為實數(shù)常量,c=-log(TRS)×exp(-log(TAS));
TRS為退火尺度系數(shù),TRS=10-9,TAS為最大退火迭代次數(shù),TAS計算方法為:
TAS=log0.8(0.05×H/T0)×M,
其中H為電路中的信號個數(shù),M為馬可夫鏈長度,M=10·N1.33;
步驟四,對步驟一至三過程進行M次迭代;
步驟五,如果T<0.05×Cost/H,則執(zhí)行步驟四,否則轉步驟一繼續(xù)執(zhí)行。
進一步,在第四步中,局部優(yōu)化布局的具體方法為:
第一,令當前溫度T=0,對第三步的步驟一至步驟二過程進行M次迭代,由于當前溫度T為0的情況下,只接受結果比當前布局好的新布局,所以進行M次迭代之后會找到局部最優(yōu)布局;
第二,如果步驟一獲得的局部最優(yōu)布局的結果好于當前最優(yōu)布局,則替換當前最優(yōu)布局為該局部最優(yōu)布局,當前最優(yōu)布局為到目前為止找到的結果最好的布局;
進一步,在第十步中,并行布線迭代的具體方法為:
(一),每個線程Thd[i]按序從任務集SigSet[i]中取一個信號j進行拆線,即如果信號j已布線,則清空信號j在布線資源圖RG上的布線路徑,并對信號j的布線路徑經歷的布線資源節(jié)點的占有度減1,P個線程互斥執(zhí)行此步驟,i∈{1,2,…,P};
(二),將信號j的源節(jié)點src加入到布線樹RT[j],布線樹RT[j]用來以樹形結構保存信號j的源節(jié)點src到多個目標節(jié)點sink的布線路徑;
(三),對信號j的每一個目標節(jié)點sink用A*尋路算法在布線資源圖RG上尋找一條從布線樹RT[j]中節(jié)點到該目標節(jié)點sink的花費最低的路徑進行布線,并保存布線路徑:
清空優(yōu)先隊列PQ,并將布線樹RT[j]中每個布線資源節(jié)點x的路徑成本PathCost(x)置為Crit(src,sink)×delay(x),加入到優(yōu)先隊列PQ中,優(yōu)先隊列PQ用來按總成本TotalCost(x)從小到大排序來存儲當前搜索到的布線資源節(jié)點,TotalCost(x)定義為:
TotalCost(x)=PathCost(x)+α·ExpectedCost(x,sink),
其中ExpectedCost(x,sink)代表從當前布線資源節(jié)點x到目標端點sink的期望成本估計值,α為啟發(fā)式參數(shù),α取值范圍為1.0至1.4,路徑成本PathCost(x)表示從源節(jié)點src到當前搜索到的節(jié)點x的路徑上的每一個布線資源節(jié)點n的布線成本Cost(n)之和,Cost(n)表示布線資源節(jié)點n的布線成本:
Cost(n)=Crit(src,sink)×delay(n)+[1-Crit(src,sink)]×b(n)×p(n)×h(n),
其中Crit(src,sink)表示時序分析后信號j從源節(jié)點src到目標節(jié)點sink的邊的關鍵度,delay(n)表示節(jié)點n的時序項,b(n)表示節(jié)點n的基本花費,p(n)表示節(jié)點n當前占有度,h(n)表示節(jié)點n的歷史占有度;
取信號j尚未布線的目標節(jié)點中關鍵度Crit(src,sink)最大的目標節(jié)點sink,如果目標節(jié)點sink是優(yōu)先隊列PQ中第一個節(jié)點,則表示源節(jié)點src到目標節(jié)點sink的最佳路徑已找到,否則轉從優(yōu)先級隊列PQ中取出隊首布線資源節(jié)點y,對與y相連的布線資源節(jié)點z計算總成本TotalCost(z),并將z按TotalCost(z)加入到優(yōu)先級隊列PQ中,重復執(zhí)行直到找到目標節(jié)點sink的路徑;
(四),對該路徑經歷的布線資源節(jié)點的占有度加1,P個線程互斥執(zhí)行此步驟;
(五),將該路徑加入到布線樹RT[j],如果信號j還有目標節(jié)點sink,則轉步驟步驟(三),對信號j下一個目標節(jié)點sink尋路,否則,執(zhí)行步驟(六);
(六),如果任務集SigSet[i]中所有信號都完成了步驟一至步驟五過程,則轉第十一步,否則,繼續(xù)布線下一個信號。
本發(fā)明提供的布局布線的方法,將應用于傳統(tǒng)集成電路布局的超快速模擬重復退火VFSR算法的退火函數(shù)應用于Elf3D跨平臺引擎系統(tǒng)布局的溫度更新,采用了重復退火過程以反復尋找更好的解,實現(xiàn)了對布局過程的加速;采用多線程方法對現(xiàn)有的基于擁擠協(xié)商PathFinder算法的布線方法進行并行化改進。本發(fā)明提供的布局布線的方法使得最終電路的時延和線長兩個重要性能指標基本不變的情況下,布局布線速度有了顯著加快。本發(fā)明方法簡單,操作方便,較好的解決了現(xiàn)有Elf3D跨平臺引擎系統(tǒng)的布局、布線過程中CPU消耗時間長,效率低的問題。
本發(fā)明的布局布線方法與現(xiàn)有VPR6.0布局布線方法的質量結果對比
從表中可以看出,在耗時方面本發(fā)明的布局布線方法優(yōu)于現(xiàn)有VPR6.0布局布線方法,平均加速比達到了2.173,從表2可以看出,在延時和線長方面本發(fā)明的布局布線方法和現(xiàn)有VPR6.0布局布線方法基本相當,最終總的延時降低了1.4%,延時方面的質量有所提高,總的線長增加了1%,線長方面的質量有所下降,實際應用中延時質量比線長質量優(yōu)先級更高。
下面結合具體實施例對本發(fā)明的應用原理作進一步描述。
本發(fā)明實施例提供的Elf3D跨平臺引擎系統(tǒng),包括:
1、支持平臺:支持Windows XP及以上所有系統(tǒng)。支持DirectX9,DirectX10,DirectX11硬件。具有良好的兼容性和適應性保證在各種配置下都能有出色的性能、效果表現(xiàn);還具有主流瀏覽器支持功能。
2、渲染特性具有:
1)多線程渲染特性:保證游戲在高CPU壓力下,依舊能夠達到較高的流
暢度。制作團隊可以更加專注于游戲表現(xiàn)力和創(chuàng)造力。
2)64位HDR渲染管線:
64位顏色空間HDR,gamma校驗,豐富的后處理特性,保證游戲畫面真實性與豐富程度。
3)引擎支持所有現(xiàn)代材質算法:
包括逐像素光照,normal map,Blinn-Phong光照模型,支持各向異性金屬光照。
4)多渲染器支持:
包括DirectX9,DirectX11,OpenGL 3.0,OpenGL ES 2.0。
5)自適應shader系統(tǒng),根據(jù)硬件性能自動適配合適shader,保證伸縮性。
6)支持大規(guī)模高質量實時陰影,在室內和室外都能有良好表現(xiàn)。
3、動畫系統(tǒng)具有:
1)多線程驅動動畫系統(tǒng),支持大規(guī)模人物動畫;
2)使用GPU Quad蒙皮系統(tǒng),單個蒙皮支持100根骨頭;
3)蒙皮點支持1~4權重;
4)動作融合與動作拼接支持,讓動作更加流暢、平滑,節(jié)省美術人工和游戲資源大??;
5)自動GC系統(tǒng),針對大規(guī)模mmo游戲,能夠有更多豐富動作。
4、場景管理具有:
1)八叉樹場景管理,能夠應付復雜的室內、室外場景;
2)SSE加速的場景可視性剔除;
3)自適應LOD細節(jié)層級,支持遠視距室外開闊場景;
4)針對開闊大地形的優(yōu)化。
5、資源管理具有:
1)支持zip,7z壓縮檔案;
2)后臺流加載技術;
3)下載與緩存技術。
6、GUI具有:
1)深度整合Scaleform 4x;
2)支持3D GUI;
3)國際化支持;
4)高質量文字渲染;
5)支持AS2、AS3腳本開發(fā)。
7、聲音系統(tǒng)具有:
1)在所有平臺上都能支持聲音壓縮文件;
2)針對OGG壓縮流播放進行了優(yōu)化處理,保證運行時內存空間效率;
3)支持多聲道3D音效;
4)提供各種音效參數(shù)調節(jié)。
8、特效及粒子具有:
1)豐富的粒子系統(tǒng)能夠提供武器、環(huán)境、爆炸、技能效果更佳真實的表現(xiàn);
2)深度整合的粒子編輯器;
3)支持片面、閃電光束、模型、條帶等多種;
4)支持多種材質系統(tǒng),可以使用扭曲效果、序列圖、UV動畫等效果;
5)曲線驅動參數(shù),美術更容易控制細節(jié)表現(xiàn)力。
如圖2所示,本發(fā)明實施例提供的工具鏈中各編輯器具體有:
資源瀏覽器4,可視化管理項目資源,支持拖拽操作,能夠支持從小項目到AAA大型項目管理;
真實游戲畫面編輯器5,“即見即所玩”編輯器,實時編輯和查看實際游戲畫面;
平臺模擬器6,在Windows上可以直接查看iOS,Android上實際游戲畫面;
材質編輯器7,使用美術熟悉的3ds max材質編輯器風格,提供豐富的可調屬性;
模型編輯器8,檢查模型分組,指定材質,觀察相關物理屬性,支持自動LOD和UV生成;
粒子編輯器9,提供豐富的發(fā)射器,修改器組件,可調參數(shù)列表,性能評估;
FBX格式導入器10,支持所有主流3D美術制作軟件,支持靜態(tài)模型,組合模型,剛體動畫,蒙皮動畫,內建材質、帖圖導入;
地形編輯器11,支持最大8層單獨材質,每層材質可具有單獨的材質參數(shù);
動畫曲線編輯器12,美術在場景中對任意材質動畫、任意燈光參數(shù)進行動畫編輯,設置播放速度、循環(huán)屬性等操作;
聲音編輯器13,實時編輯、測試場景音效環(huán)境;
光照烘培器14,支持高細節(jié)全局光照和陰影,與編輯器深度整合,實時查看烘焙結果,一鍵烘焙,無需美術重復調節(jié)關卡;
帖圖編輯器15,貼圖查看,格式壓縮設置,跨平臺資源壓縮設置;
資源發(fā)布器16,支持跨平臺資源優(yōu)化,自動記錄用戶設置,轉換資源到適應目標平臺的最優(yōu)格式,支持帖圖自動縮放、格式轉換、shader和材質自適應,一鍵部署。
本發(fā)明提供的Elf3D跨平臺引擎前端達到次時代畫面效果,在性能與伸縮性方面都具有良好的品質,跨平臺解決方案工具化,保證美術流程的統(tǒng)一。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。