freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

并行化游戲引擎框架(編輯修改稿)

2025-05-03 07:18 本頁面
 

【文章內容簡介】 控制者狀態(tài)管理器)注冊自己感興趣的對象。2. 當對象的某一屬性發(fā)生變化時,它將這一變化傳遞給控制者。3. 當控制者收到來自框架的提示時,它將這一提示轉交給觀察者。4. 觀察者訪問這一對象來獲得具體發(fā)生變化的數據。自由步進模式)會給這一機制帶來額外的復雜性。首先,當提示產生時相關的數據需要被包含,這是因為產生這一提示的系統(tǒng)也許會因為還在運行中,從而使得通過訪問該系統(tǒng)獲得共享數據無法實現。接下來,如果某個需要接收提示的系統(tǒng)在時鐘結束時還不能做好接收提示的準備,那么狀態(tài)管理器需要保留該提示直到系統(tǒng)做好準備。這一框架實現了兩個狀態(tài)管理器,分別在場景層面和對象層面來處理變化。這樣做的原因是:大多數情況下,場景和對象的消息是不同的,所以將它們分開可以減少不必要的消息處理。然而,任何跟場景有關的對象的變化都應該注冊給場景,以此使得場景可以收到這些提示。為了減少同步消耗,狀態(tài)管理器將會為每一個由任務管理器創(chuàng)建的線程準備一個變化隊列。這樣當訪問這些隊列時就不會造成同步。圖示7:內部的通用對象變化提示當你認為這些變化的提示應該被串行地分發(fā)時,事實上將之并行化處理也是可行的。當系統(tǒng)處理各自的任務時它們會在所有的對象上進行操作。譬如,如果對象之間發(fā)生了交互,物理系統(tǒng)會移動對象,檢測碰撞,設置新的作用力等等。在變化提示的過程中某個系統(tǒng)的對象將不再和本系統(tǒng)內的對象發(fā)生交互,但是卻會和自身所關聯的其他擴展對象發(fā)生交互。這意味著該系統(tǒng)內的通用對象在此時是互相獨立的,從而可以并行地被更新。注意,盡管在少數情況下需要同步處理,然而,從前一些看上去必須串行處理的東西現在可以被并行化了。 服務管理器服務管理器為系統(tǒng)提供了自身所不具備的功能的訪問途徑。需要注意的是,服務管理器并不直接為系統(tǒng)提供服務,而是通過預定義的接口來實現。任何實現了這些暴露的接口的系統(tǒng)可以將自身注冊給服務管理器來獲得服務。因為引擎的設計目的是為了使系統(tǒng)之間盡可能保持離散,因此可以提供的服務事實上是很少的。同時,系統(tǒng)自身不能提供任何需要的服務,而只能通過服務管理器來選擇。圖示8:服務管理器實例服務管理器的另外一個角色是給各個系統(tǒng)提供互相訪問屬性的途徑。屬性是一些系統(tǒng)專有的不通過消息系統(tǒng)傳遞的值。譬如圖形系統(tǒng)的窗口分辨率,或者物理系統(tǒng)的重力值。服務管理器提供的訪問途徑不允許系統(tǒng)進行直接訪問。這樣做也可以保證屬性發(fā)生的變化可以串行被地加入隊列和分發(fā)出去。注意訪問系統(tǒng)屬性這件事是極少發(fā)生的,因此這不需要被當作一個普遍的應用。在控制窗口打開/關閉線框模式,或者玩家通過界面系統(tǒng)改變屏幕分辨率時這些訪問才會發(fā)生,因此基本上這些訪問不會每一幀都出現。 環(huán)境管理器環(huán)境管理器為引擎的運行環(huán)境提供功能。下面是一個由環(huán)境管理器提供的功能組列表:l 變量。引擎內共享的變量名和數據。通常在加載場景或者用戶設定之后被設置,或者被各個系統(tǒng)查詢與或執(zhí)行的結果。l 執(zhí)行。關于執(zhí)行的信息,譬如場景的結束或者程序的結束。通常被引擎或者系統(tǒng)進行設置或查詢。 平臺管理器平臺管理器處理對操作系統(tǒng)的調用,在這些調用之上提供一些附加的功能。這樣做的好處是,將多個普通的功能打包來響應一個調用,從而不必分步實現所有調用并且毋須關注它們之間的細微差別。一個例子來自平臺管理器加載系統(tǒng)的動態(tài)鏈接庫的調用。除了加載系統(tǒng),管理器還要獲得函數入口點,然后調用庫的初始化函數。管理器還會為這個庫保留一個句柄,在引擎退出后卸載庫。平臺管理器還要提供處理器的信息,譬如處理器支持哪一個SIMD指令,以及進程初始化的反應。這些功能僅供系統(tǒng)查詢使用。4 接口接口為框架,管理器和系統(tǒng)之間進行通信提供了途徑。在引擎內部框架可以直接訪問管理器。然而,系統(tǒng)并不駐留在引擎中,再加上系統(tǒng)之間的功能有所差異,因此需要提供一個通用的方法來訪問它們。此外,系統(tǒng)不能直接訪問管理器,因此需要為系統(tǒng)提供方法來訪問它們,但是這并非是必要和全面的,因為系統(tǒng)內部的東西應該只允許訪問框架。接口提供了一組通用的訪問方法。這樣一來框架就可以通過這些顯示的方法和系統(tǒng)進行通信,從而沒有必要知道具體到每一個系統(tǒng)的細節(jié)。 對象和觀察者接口對象和觀察者接口用來將對象注冊給觀察者,從而可以將對象發(fā)生的變化傳遞給觀察者。使用觀察者進行注冊/注銷這一功能對每一個對象都是通用的。 管理器接口管理盡管作為單件存在,然而它們只允許框架訪問自己,對于各個系統(tǒng)而言是無法訪問的。為了給系統(tǒng)提供訪問途徑,每一個管理器需要提供一個接口來暴露一些功能子集。當系統(tǒng)初始化之后便可以訪問這些子集了。接口的定義是與管理器有關的,因此這些接口并不是通用的,而是根據每一個管理器來定義的。 系統(tǒng)接口為使框架能夠訪問自己,系統(tǒng)也需要實現一些接口供框架使用。如果沒有這些接口框架就不得不自己去實現每一個新增加的系統(tǒng)。系統(tǒng)由四個組件組成,因此系統(tǒng)需要實現四個接口。它們是:系統(tǒng)、場景、對象,以及任務。這幾個組件將在章節(jié)5“系統(tǒng)”進行闡述。接口的作用就是用來訪問這些組件。系統(tǒng)接口用來創(chuàng)建和銷毀場景。場景接口用來
點擊復制文檔內容
數學相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1