NFT元宇宙鏈遊系統開發邏輯分析

Congge420發表於2023-05-18

區塊鏈構建一個開放的穩定的價值載體,為數字化的價值提供流動協作的條件,構建一個完整的世界觀體驗還需要一個龐大的基礎設施。利用5G VR 裝置、 IoT 設施、 AI 技術演算法實現一個不可或缺的關鍵產業支柱。在區塊鏈方向,數字分身系統,去中心化的儲存以及雲端計算仍有可持續化的發展。

根據支援產業的發展水平將元宇宙分為以下幾個階段

第一階段 —— 社交 + 遊戲:浸式的體驗形式,在虛擬世界中實現基本的娛樂,社交功能還是可以的,部分的玩家對元宇宙的歸屬非常的強。

第二階段 —— 虛擬現實相結合的模糊概念:將消費,金融生活服務等真實的世界融入到其中,用技術,時間進一步的提升元宇宙成為生活中的一部分。

第三階段 —— 全真網際網路的數字元宇宙,世界密不可分,使用者技術和使用時間長,在虛擬世界中形成新的文明。

Rebuild 的程式流程 NFT 鏈遊開發原始碼模式威: Congge420 


Image Text 都是繼承 Graphic Graphic ICanvasElement 介面,實現 rebuild 函式

 

 

 

   public interface ICanvasElement

 

 

 

   {

 

 

 

       /// <summary>

 

 

 

       /// Rebuild the element for the given stage.

 

 

 

       /// </summary>

 

 

 

       /// <param name="executing">The current CanvasUpdate stage being rebuild.</param>

 

 

 

       ///  // 根據 CanvasUpdate 的不同階段重建元素

 

 

 

       void Rebuild(CanvasUpdate executing);

 

 

 

 

 

 

 

CanvasUpdateRegistry 監聽 Canvas willRenderCanvases 事件,這個事件會在渲染前進行每幀呼叫

 

 

 

   public class CanvasUpdateRegistry

 

 

 

   {

 

 

 

         // 佈局重建佇列,當 UI 元素的佈局需要更新時將其加入佇列

 

 

 

       private readonly IndexedSet<ICanvasElement> m_LayoutRebuildQueue = new IndexedSet<ICanvasElement>();

 

 

 

 

 

 

 

       // 圖形重建佇列,當 UI 元素的影像需要更新時將其加入佇列

 

 

 

       private readonly IndexedSet<ICanvasElement> m_GraphicRebuildQueue = new IndexedSet<ICanvasElement>();

 

 

 

 

 

 

 

       protected CanvasUpdateRegistry()

 

 

 

       {

 

 

 

           // 監聽了 Canvas willRenderCanvases 事件,這個事件會在渲染前進行每幀呼叫

 

 

 

           Canvas.willRenderCanvases += PerformUpdate;

 

 

 

       }

 

 

 

 

 

 

 

PerformUpdate 收集佈局重建佇列,圖形重建佇列呼叫 ICanvasElement.Rebuild 完成重建

 

 

 

何時加入重建

 

 

 

透過設定 “髒資料”實現的,包括佈局 (Layout) 、材質 (Material) 和頂點 (Vertices) 三部分,設定佈局為髒,將進行佈局重建,設定頂點或材質為髒,則進行圖形重建。佈局重建會將自身加入 m_LayoutRebuildQueue 中,圖形重建則會將自身加入 m_GraphicRebuildQueue 中,等待被呼叫。

 

 

 

SetLayoutDirty :加入到佈局重建佇列

 

 

 

SetVerticesDirty SetMaterialDirty :材質,頂點變換加入到圖形重建佇列

 

 

 

 

 

 

 

佈局重建:位置或者大小

 

 

 

影像重建:頂點變化,材質變化 ( 大小,旋轉以及文字變化、圖片的修改 )

 

 

 

最佳化

 

 

 

主要目標,把 Profile Canvas.SendWillRenderCanv 引數調小。透過限制頂點數量,頂點變化等。

 

 

 

 

 

 

 

text 屬性改變(“ 123 ”– > 1234 ”),觸發 SetLayoutDirty: 在做倒數計時相關,按照每 1s 改變,不要實時改變

 

 

 

 

 

 

 

改文字,圖片顏色,觸發 SetVerticesDirty (頂點改變),所以改圖片顏色最好是改材質球顏色

 

 

 

 

 

 

 

layout 元件引起重建問題

 

 

 

 

 

 

 

text 描邊,陰影效能問題

 

 

 

一個字元產生 4 個頂點,


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70029947/viewspace-2953135/,如需轉載,請註明出處,否則將追究法律責任。

相關文章