自古以來全部的遊戲引擎都分為三個大階段:init,loop,exit。ue4也不例外。
首先找到帶有入口函式的檔案:runtime/launch/private/***x/launch***x.cpp。
windows平台就將***x替換成windows。
guardedmain位於:runtime/launch/private/launch.cpp。
將整個引擎分為了四個大階段:引擎預初始(enginepreinit),引擎初始(engineinit)。引擎迴圈(engineloop)。引擎退出(engineexit)。
通過fengineloop物件的preinit,init,tick,exit來實現,參見runtime/launch/private/launchengineloop.cpp。
在preinit階段主要做了:日誌功能的啟動,執行緒池的啟動,載入了預初始相關的模組,應用程式層面的初始化(ini配置的緩衝的載入,taskgraph的啟動),rhi初始化,非同步io系統初始化,平台特徵模組初始化,遊戲物理的初始化,流管理初始化。slate應用程式的建立。啟動渲染執行緒,載入啟動模組。
在init階段主要做了:引擎的物件的構造。引擎的命令列控制字處理,時間初始化。引擎的詳細初始化。
在tick節點主要做了:開始幀(請求渲染執行緒的beginframe命令、更新時間以及處理最大更新率、更新fps圖表)。重新啟動延遲更新(請求渲染執行緒的resetdeferredupdates、訊息幫浦,引擎的詳細迴圈、shader的非同步編譯處理),結束幀(請求渲染執行緒的endframe命令)。
Unreal Engine 4 渲染 (0)前言
unreal engine 4的渲染系統是無限可編輯並且支援多種平台的絕大多數的最新渲染技術。感謝節點式的編輯器,在unreal中編寫meterial是非常可行的,但是人們往往因為渲染系統的複雜性和缺乏可用的教學內容而躊躇。epic game的角色例項 這個教程會分為幾個章節,下面有章節的列表。前幾...
Unreal Engine 4 各平台的大小端問題
讀取png大小時候,png檔案頭的地16個位元組開始是寬,20個位元組開始是高。但是遇到了大小端的問題,讀進來的數總是不對,做一下記錄 iplatformfile platformfile fplatformfilemanager get getplatformfile ifilehandle fi...
Unreal Engine 4 字串轉換
在使用unreal engine 4 c 進行開發時,在整合其他庫時,很多時候會需要進行字串轉換,下面記錄了一些基本的轉換方法 1.fstring轉換fname fstring thestring ddddd fname myname fname thestring 2.std string轉換fs...