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

正文內(nèi)容

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

2025-05-03 07:18 本頁面
 

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