專利名稱:一種資源加載方法
技術領域:
本發(fā)明涉及計算機應用技術,特別是涉及一種資源加載方法。
背景技術:
目前在一些大型的計算機仿真系統(tǒng)中,例如大型多人在線角色扮演游戲系統(tǒng)中,需要實時加載資源。通常不同場景需要加載的資源規(guī)模不同,對于一些簡單場景沒有過多資源時,系統(tǒng)的場景渲染流暢。對于一些復雜場景,當需要有大量資源加載的時候,就有可能出現(xiàn)頓卡現(xiàn)象。其原因是當有大量資源全部要加載到內存時,輸入輸出(IO)壓力過大,仿真系統(tǒng)的主邏輯就需要等待IO的處理,這樣,就會導致當前的場景渲染操作完全沒辦法
進行,只能等到資源全部加載成功之后再進行仿真場景的渲染,從而出現(xiàn)頓卡的問題。針對上述問題,一些仿真系統(tǒng)在一開始的時候就把所有的資源加載到內存,這樣就不會由于IO影響到仿真系統(tǒng)的邏輯進而導致頓卡,但是這樣把資源都加載在內存中會造成內存占用過大。針對上述問題,目前還提出一種資源預加載的方法,該方法是根據(jù)仿真系統(tǒng)中可控主體所在的位置,預先將該位置周圍的一定范圍內的場景資源全部加載到內存中。上述方法中,預先加載的場景資源是可控主體所在位置周圍所有方向上的資源,而可控主體的下一時刻所處的場景只是其中某個方向上的場景資源,這樣,預先加載的資源中將存在大量不會用到的資源,在之后還得把它們從內存中剔除,增大了系統(tǒng)開銷。而加載的有用資源相對而言很有限,在某些情況下,也不能確保仿真系統(tǒng)邏輯操作的連貫性,從而不能有效解決頓卡的問題。
發(fā)明內容
有鑒于此,本發(fā)明的主要目的在于提供一種資源加載方法,能有效解決仿真場景中資源加載時的頓卡問題。為了達到上述目的,本發(fā)明提出的技術方案為—種資源加載方法,包括a、預先對當前仿真系統(tǒng)中的每個仿真場景,確定該仿真場景的資源加載概率;b、在所述系統(tǒng)的運行過程中,當系統(tǒng)中的可控主體位置變更時,對于以所述位置為中心的指定范圍內的各仿真場景,根據(jù)所述資源加載概率,選擇當前需要渲染的仿真場景,并對其資源進行加載。綜上所述,本發(fā)明提出的資源加載方法,通過對預加載資源的有效預測,提高預加載資源的準確性,從而可以避免由于等待資源加載而導致的頓卡問題。
圖I為本發(fā)明實施例一的流程示意圖。
具體實施例方式為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖及具體實施例對本發(fā)明作進一步地詳細描述。本發(fā)明的核心思想是預先對于各種仿真場景,對可控主體出現(xiàn)在該仿真場景中的概率進行估計,然后,在具體的仿真場景渲染過程中,根據(jù)可控主體當前位置周圍的各仿真場景的所述概率估計值,選擇出估計值最大的仿真場景的資源進行加載。這樣,可以提高預先加載資源的有效率,實現(xiàn)預先對資源的有效加載,從而可以確保仿真場景渲染的邏輯連貫性。圖I為本發(fā)明實施例一的流程示意圖。如圖I所示,該實施例包括步驟101、預先對當前仿真系統(tǒng)中的每個仿真場景,確定該仿真場景的資源加載概 率。本步驟中,將預先確定各仿真場景的資源加載概率,以便后續(xù)步驟中對需要預先加載的仿真場景進行準確預測。較佳地,可以根據(jù)該仿真場景的地形和預設的可控主體在仿真場景中活動的邏輯規(guī)則,來確定該仿真場景的資源加載概率。這里需要說明的是,在實際應用中,仿真場景的地形是帶有數(shù)據(jù)的網(wǎng)格,該網(wǎng)格在實際操作中有兩層應用,一層是美術層,一層是邏輯層。美術對網(wǎng)格進行編輯改變網(wǎng)格的形態(tài)表現(xiàn),策劃對網(wǎng)格進行編輯改變網(wǎng)格的邏輯屬性。美術做的地形中可能有不能通過的地方(山)或者路等等。場景中還有一些線路信息是策劃進行編輯的,涉及邏輯層。例如路線會引導可控主體(即客戶端在仿真場景中的角色,例如,在實時游戲系統(tǒng)中為玩家)到達某些非可控主體(如非玩家控制角色NPC)的位置。這些信息是由策劃完成的??煽刂黧w下一時刻可能的運動方向有8個。這里通過綜合考慮仿真場景的地形和預設的可控主體在仿真場景中活動的邏輯規(guī)則,來幫助決策加載哪些資源。較佳地,本步驟中,考慮仿真場景的地形和預設的可控主體在仿真場景中活動的邏輯規(guī)則,來確定該仿真場景的資源加載概率的方法包括步驟xl、根據(jù)該仿真場景的地形,確定可控主體進入該仿真場景的美術層概率a,其中 a= [O, I]。 具體地,仿真場景的地形包括各種環(huán)境,例如山體,水體還有房屋等,這些環(huán)境是可控主體去的幾率較小的地方,甚至不允許進入的地方。地形網(wǎng)格進入幾率越大的區(qū)域a越大,幾率越小的區(qū)域a越小。步驟x2、根據(jù)預設的可控主體在仿真場景中活動的邏輯規(guī)則,確定可控主體進入該仿真場景的邏輯層概率b,其中b=
。所述邏輯規(guī)則為策劃提供的權重層,其中涉及實際的邏輯,例如,在實時游戲系統(tǒng)中策劃需要在大世界的某個區(qū)域開展玩家交互多的活動,玩家完成活動或進行交互,所以在此區(qū)域內出現(xiàn)的可能性更高,就可以才這片區(qū)域設置較高的邏輯層概率b。步驟x3、根據(jù)所述a和所述b,按照c=s*a*b+t*a+u*b,確定該仿真場景的資源加載概率c ;其中,所述s為預設的綜合調整系數(shù),所述t為預設的美術層調整系數(shù),所述u為預設的邏輯層調整系統(tǒng),所述s+t+u=l。步驟102、在所述系統(tǒng)的運行過程中,當系統(tǒng)中的可控主體位置變更時,對于以所述位置為中心的指定范圍內的各仿真場景,根據(jù)所述資源加載概率,選擇當前需要渲染的仿真場景,并對其資源進行加載。較佳地,本步驟中所述選擇當前需要渲染的仿真場景可以為在以所述位置為中心的指定范圍內的所有仿真場景中,選擇所述資源加載概率最大的仿真場景為當前需要渲染的仿真場景。在實際應用中,對于仿真場景中的很多地形來說,可能會是連貫性區(qū)域,例如,在實時游戲系統(tǒng)的仿真場景中,玩家經(jīng)常要從一個城市去另一個城市,或者是游戲中的旅行功能,玩家通常有固定的目標,朝著一個方向。這樣,在確定需要預先加載的仿真場景時,可以考慮可控主體活動的方向,根據(jù)當前的活動方向動態(tài)地對下一時刻的活動方向進行預測。例如,在網(wǎng)格中如果是從上方網(wǎng)格像下方網(wǎng)格走,下方網(wǎng)格的權重就會增加,相反地,上方的網(wǎng)格權重會增加。這樣就實現(xiàn)了資源加載的動態(tài)預測。如此,可以進一步提高加載資源的準確度。具體地,可以采用下述方法,實現(xiàn)上述動態(tài)預測的目的根據(jù)所述可控主體當前的活動方向,預測所述可控主體下一時刻的活動方向。對于以所述位置為中心的指定范圍內的各仿真場景,按照所述預測到的方向上的仿真場景權重大于未被預測到的方向上的仿真場景權重的原則,確定該仿真場景的方向加載權重;根據(jù)所述方向加載權重和所述資源加載概率,確定該仿真場景的實時加載概率;在以所述位置為中心的指定范圍內的所有仿真場景中,選擇所述實時加載概率最大的仿真場景為當前需要渲染的仿真場景。利用上述方法可以實現(xiàn)資源加載的動態(tài)預測。在實際的仿真場景渲染中,可能會存在多個場景的加載概率無法區(qū)分的情況,SP本步驟中所確定出的當前需要渲染的仿真場景為二個以上的情況,在此情況下,可以僅加載這些仿真場景中的部分場景的資源,即可以為這些場景中最接近所述位置的指定區(qū)域內的仿真場景的資源。這里,所述指定區(qū)域的具體大小,可由本領域技術人員根據(jù)實際需要來確定。綜上所述,以上僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的 保護范圍之內。
權利要求
1.ー種資源加載方法,其特征在于,包括 a、預先對當前仿真系統(tǒng)中的每個仿真場景,確定該仿真場景的資源加載概率; b、在所述系統(tǒng)的運行過程中,當系統(tǒng)中的可控主體位置變更時,對于以所述位置為中心的指定范圍內的各仿真場景,根據(jù)所述資源加載概率,選擇當前需要渲染的仿真場景,并對其資源進行加載。
2.根據(jù)權利要求I所述的方法,其特征在于,所述步驟a中,根據(jù)該仿真場景的地形和預設的可控主體在仿真場景中活動的邏輯規(guī)則,確定該仿真場景的資源加載概率。
3.根據(jù)權利要求2所述的方法,其特征在于,步驟a中所述確定該仿真場景的資源加載概率包括 根據(jù)該仿真場景的地形,確定可控主體進入該仿真場景的美術層概率a,其中a=[O, I]; 根據(jù)預設的可控主體在仿真場景中活動的邏輯規(guī)則,確定可控主體進入該仿真場景的邏輯層概率b,其中b=
; 按照c=s*a*b+t*a+u*b,確定該仿真場景的資源加載概率c ;其中,所述s為預設的綜合調整系數(shù),所述t為預設的美術層調整系數(shù),所述u為預設的邏輯層調整系數(shù),所述s+t+u=lο
4.根據(jù)權利要求2所述的方法,其特征在于,步驟b中所述選擇當前需要渲染的仿真場景為在以所述位置為中心的指定范圍內的所有仿真場景中,選擇所述資源加載概率最大的仿真場景為當前需要渲染的仿真場景。
5.根據(jù)權利要求I所述的方法,其特征在干,步驟b中所述選擇當前需要渲染的仿真場景為 根據(jù)所述可控主體當前的活動方向,預測所述可控主體下ー時刻的活動方向; 對于以所述位置為中心的指定范圍內的各仿真場景,按照所述預測到的方向上的仿真場景權重大于未被預測到的方向上的仿真場景權重的原則,確定該仿真場景的方向加載權重;根據(jù)所述方向加載權重和所述資源加載概率,確定該仿真場景的實時加載概率; 在以所述位置為中心的指定范圍內的所有仿真場景中,選擇所述實時加載概率最大的仿真場景為當前需要渲染的仿真場景。
6.根據(jù)權利要求5所述的方法,其特征在于,步驟b中當當前需要渲染的仿真場景為ニ個以上時,所述加載為 對于當前需要渲染的各仿真場景,僅加載該仿真場景中最接近所述位置的指定區(qū)域內的仿真場景的資源。
全文摘要
本申請公開了一種資源加載方法,包括a、預先對當前系統(tǒng)中的每個仿真場景,確定該仿真場景的資源加載概率;b、在所述系統(tǒng)的運行過程中,當仿真系統(tǒng)中的可控主體位置變更時,對于以所述位置為中心的指定范圍內的各仿真場景,根據(jù)所述資源加載概率,選擇當前需要渲染的仿真場景,并對其資源進行加載。采用本發(fā)明能提高預加載資源的準確性,避免由于等待資源加載而導致的頓卡問題。
文檔編號G06F19/00GK102736940SQ20121021121
公開日2012年10月17日 申請日期2012年6月21日 優(yōu)先權日2012年6月21日
發(fā)明者藺甜甜 申請人:北京像素軟件科技股份有限公司