OGRE執行個體分析之BSP

來源:互聯網
上載者:User

在OGRE內建的例子中有一個BSP的例子,該例子是為了示範BSP的。下面我們看一下BSP資源的載入以及在渲染時如何找到該資源進行渲染的過程。

我們都知道,OGRE中在檔案級所有的資源管理都是通過一系列設定檔來描述其定位的,BSP資源也不例外。首先,在setupResources中要載入BSP資源的配置資訊,就是下面兩行代碼,ConfigFile cf;  cf.load("quake3settings.cfg");然後要找到要載入的BSP檔案

mQuakePk3=cf.getSetting("Pak0Location");//首先找到PK3壓縮檔
mQuakeLevel = cf.getSetting("Map");//找到具體的BSP檔案名稱

 

由此以來,通過BSP的資源設定檔,就得到了要載入的BSP資源所在的路徑(mQuakePk3)以及資源檔名(mQuakeLevel )。接下來就要把BSP資源的搜尋路徑添加到資源群組管理器,ResourceGroupManager::getSingleton().addResourceLocation(
            mQuakePk3, "Zip", ResourceGroupManager::getSingleton().getWorldResourceGroupName(), true);

到此為止,系統已經知道了要載入的具體的BSP資源,以及到哪找這個資源。

 

接下來我們進入void loadResources(void),在這裡需要將BSP資源與世界地圖關聯起來,ResourceGroupManager::getSingleton().linkWorldGeometryToResourceGroup(
            ResourceGroupManager::getSingleton().getWorldResourceGroupName(),
            mQuakeLevel, mSceneMgr);

通過上面的調用,系統把世界地圖資源名稱(BSP檔案名稱mQuakeLevel)以及要渲染世界地圖的情境管理器設定給世界地圖資源群組(預設是將世界地圖放在預設分組中)。

 

接下來需要將BSP世界地圖資源群組(包括BSP資源)中的資源載入到記憶體ResourceGroupManager::getSingleton().loadResourceGroup(
            ResourceGroupManager::getSingleton().getWorldResourceGroupName(),
            false, true);

經過以上過程,系統就具備了要渲染的世界地圖資源。下面我們看看在什麼地方渲染該世界地圖(BSP資源)。

待續....

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.