青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

flagship的理想與現(xiàn)實(shí)

創(chuàng)新+實(shí)踐

  C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
  8 Posts :: 0 Stories :: 27 Comments :: 0 Trackbacks

常用鏈接

留言簿(8)

我參與的團(tuán)隊(duì)

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

        資源異步加載恐怕是3D引擎中應(yīng)用最為廣泛的多線程技術(shù)了,特別是在無縫地圖的網(wǎng)絡(luò)游戲中,尤為重要,公司3D引擎的資源加載部分采用了硬盤->內(nèi)存->顯存兩級(jí)加載的模式,超時(shí)卸載也分兩級(jí),這樣雖然實(shí)際效果不錯(cuò),但代碼非常繁瑣,在FlagshipEngine中,我設(shè)法將其進(jìn)行了一定程度的簡化。

首先我們需要定義一個(gè)Resource基類,它大致上是這樣的:
class _DLL_Export Resource : public Base
    
{
    
public:
        Resource();
        
virtual ~Resource();

        
// 是否過期
        bool                IsOutOfDate();
       

    
public:
        
// 是否就緒
        virtual bool    IsReady();

        
// 讀取資源
        virtual bool    Load();

        
// 釋放資源
        virtual bool    Release();

        
// 緩存資源
        virtual bool    Cache();

        
// 釋放緩存
        virtual void    UnCache();

    
protected:
        
// 加載標(biāo)記
        bool            m_bLoad;

        
// 完成標(biāo)記 
        bool            m_bReady;
        

    
private:

    }
;
        在實(shí)際游戲中,加載資源的范圍大于視野,當(dāng)攝像機(jī)移動(dòng)到單元格邊緣(必須有一定的緩沖區(qū)),就應(yīng)將新的單元格中的對(duì)象加入到資源加載隊(duì)列中,喚醒資源加載線程調(diào)用Load接口進(jìn)行加載,完成后將該資源的加載標(biāo)記設(shè)為true。而通過可視剪裁所得到的最終可視實(shí)體,則需要調(diào)用Cache接口構(gòu)建圖像API所需對(duì)象,當(dāng)Load和Cache都完成后IsReady才會(huì)返回true,這時(shí)該資源才能開始被渲染。
        卸載方面,在加載新的單元同時(shí),卸載身后舊的單元,對(duì)單元內(nèi)所有資源調(diào)用Release,Load/Release帶有引用計(jì)數(shù),仍被引用的資源不會(huì)被卸載。當(dāng)某一資源長時(shí)間沒有被看見,則超時(shí),調(diào)用UnCache釋放VertexBuffer等資源。
        為了實(shí)現(xiàn)超時(shí)卸載功能,我們需要一個(gè)ResourceManager類,每幀檢查幾個(gè)已Cache的資源,看起是否超時(shí),另外也需對(duì)已加載的資源進(jìn)行分類管理,注冊(cè)其資源別名(可以為其文件名),提供查找資源的接口。
        另外為了方便使用,我們需要一個(gè)模板句柄類ResHandle<T>,設(shè)置該資源的別名,其內(nèi)部調(diào)用ResourceManange的查找方法,看此資源是否已存在,如不存在則new一個(gè)新的,GetImpliment則返回該資源對(duì)象,之后可以將該資源添加到實(shí)體中,而無需關(guān)心其是否已被加載,代碼如下:
template <class T>
    
class _DLL_Export ResHandle
    
{
    
public:
        ResHandle() 
{ m_pResource = NULL; }
        
virtual ~ResHandle() {}

        
// 設(shè)置資源路徑
        void            SetPath( wstring szPath )
        
{
            Resource 
* pResource = ResourceManager::GetSingleton()->GetResource( Key( szPath ) );
            
if ( pResource != NULL )
            
{
                m_pResource 
= (T *) pResource;
            }

            
else
            
{
                m_pResource 
= new T;
                m_pResource
->SetPath( szPath );
                ResourceManager::GetSingleton()
->AddResource( m_pResource );
            }

        }


        
// 模板實(shí)體類指針
        T *             GetImpliment() return (T *) m_pResource; }

        T 
*             operator-> () return (T *) m_pResource; }

    
protected:
        
// 模板實(shí)體類指針
        Resource *      m_pResource;

    
private:
    }
;

posted on 2009-01-03 21:37 flagship 閱讀(3558) 評(píng)論(0)  編輯 收藏 引用 所屬分類: FlagshipEngine
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩国产限制| 午夜宅男久久久| 欧美日韩爆操| 亚洲一区中文字幕在线观看| 一本久久综合亚洲鲁鲁五月天| 国产精品久久久久久久浪潮网站| 欧美一二区视频| 久久免费视频这里只有精品| 亚洲精品视频一区| 中文日韩在线| 精品99视频| 亚洲欧洲精品一区二区三区波多野1战4| 免费观看成人网| 亚洲男人的天堂在线观看| 亚洲欧美在线免费| 亚洲精品国产系列| 亚洲一级网站| 亚洲国产精品va在线观看黑人| 亚洲精品视频在线观看免费| 国产精品日韩欧美一区二区三区| 快射av在线播放一区| 欧美日韩成人在线播放| 久久久久中文| 欧美三级小说| 免费美女久久99| 国产精品久久999| 欧美成人一区二区三区片免费| 欧美三区在线观看| 男男成人高潮片免费网站| 欧美视频一区在线观看| 欧美a级在线| 国产精品视频免费| 亚洲国产精品高清久久久| 国产欧美日韩另类一区| 亚洲国产一区二区三区在线播| 国产一区在线观看视频| 一区二区不卡在线视频 午夜欧美不卡'| 黑人中文字幕一区二区三区| 亚洲精品乱码久久久久久日本蜜臀 | 亚洲人午夜精品免费| 国产一区二区三区久久悠悠色av| 亚洲日本成人| 亚洲激情视频在线观看| 久久成人精品无人区| 亚洲欧美一区二区精品久久久| 久久久久久久久久久一区| 欧美一区成人| 欧美日韩一区二区三区在线视频| 欧美成年人视频| 激情视频一区二区三区| 香蕉亚洲视频| 欧美在线亚洲综合一区| 国产精品男女猛烈高潮激情| 99精品视频免费观看视频| 亚洲精品乱码久久久久久日本蜜臀 | 欧美亚洲视频在线观看| 亚洲一级二级| 欧美三区免费完整视频在线观看| 亚洲激情小视频| 日韩写真在线| 欧美精品一区二区三| 亚洲欧洲视频在线| 日韩一区二区免费看| 欧美精品午夜| 日韩一级精品视频在线观看| 一本色道久久加勒比88综合| 欧美日韩高清在线观看| 亚洲人成毛片在线播放女女| 亚洲免费大片| 欧美日韩精品久久久| 日韩视频在线免费| 亚洲欧美日韩综合| 国产精品久久久久久久午夜片| 亚洲午夜精品久久| 欧美一区午夜视频在线观看| 国模 一区 二区 三区| 久久美女性网| 亚洲国产一区二区三区高清| 中日韩在线视频| 国产精品一区二区久久久久| 久久成人免费视频| 欧美成年人视频网站欧美| 亚洲精选一区二区| 国产精品久久久久一区二区| 午夜精品一区二区在线观看| 免费黄网站欧美| 亚洲精品午夜精品| 国产精品日本欧美一区二区三区| 欧美一区综合| 欧美激情视频在线播放| 一区二区三区毛片| 国产人成精品一区二区三| 久久综合伊人77777尤物| 亚洲免费电影在线观看| 久久久久久网站| 亚洲美女一区| 国产自产精品| 欧美日韩高清在线播放| 久久精品成人| 国产精品mm| 久久久久久久成人| 日韩视频在线免费观看| 玖玖玖国产精品| 中文网丁香综合网| 亚洲第一中文字幕| 国产精品黄视频| 蜜桃av综合| 久久爱www| 中文网丁香综合网| 亚洲国产美女久久久久| 久久精品国产精品亚洲精品| 夜夜精品视频| 亚洲国产欧美一区| 国产欧美欧美| 欧美人与禽猛交乱配视频| 久久久最新网址| 亚洲欧美在线一区| 日韩视频精品在线| 欧美激情视频网站| 久久中文精品| 欧美在线播放视频| 亚洲免费网站| 在线视频一区观看| 日韩视频免费| 亚洲国产精品热久久| 狠狠色狠狠色综合日日小说 | 亚洲午夜精品17c| 亚洲伦理精品| 91久久精品一区二区别| 欧美a级片一区| 免费久久精品视频| 免费短视频成人日韩| 久久男人av资源网站| 久久久久国产一区二区三区四区 | 欧美激情一二三区| 男女精品视频| 欧美成人a∨高清免费观看| 久久影院午夜片一区| 久久亚洲精品欧美| 久久久天天操| 欧美成人综合网站| 欧美3dxxxxhd| 亚洲国产合集| 亚洲精品少妇30p| 亚洲毛片av在线| 一区二区三区四区五区精品| 夜夜嗨一区二区| 亚洲一区在线免费| 欧美一区二区三区视频在线 | 欧美高清成人| 欧美日韩欧美一区二区| 欧美四级在线| 国产乱码精品一区二区三| 国产欧美在线观看| 激情亚洲成人| 亚洲免费播放| 亚洲男女自偷自拍| 久久久久久网站| 欧美激情视频一区二区三区不卡| 亚洲经典一区| 亚洲欧美日韩第一区| 久久久久91| 欧美日韩亚洲另类| 国产日韩三区| 亚洲精品少妇| 欧美影院午夜播放| 欧美成人免费小视频| 一区二区毛片| 久久精品一区二区| 欧美精品一区在线播放| 国产精品私拍pans大尺度在线 | 亚洲黄色在线看| 中文久久精品| 亚洲黄色一区二区三区| 亚洲第一在线综合在线| 欧美一区二区三区免费视频| 亚洲精品久久久久久久久久久久久| 欧美激情第六页| 欧美国产精品久久| 亚洲综合成人在线| 欧美成人嫩草网站| 欧美日韩免费观看一区| 国产日韩欧美一区| 亚洲精品美女| 久久久久网站| 亚洲乱码一区二区| 久久最新视频| 国产欧美日韩亚洲| 正在播放欧美视频| 免费在线欧美视频| 亚洲欧美日韩久久精品| 欧美日本精品一区二区三区| 狠狠色丁香久久综合频道 | 欧美日韩国产成人在线| 国内精品久久久久久久影视麻豆 | 国产亚洲欧美在线| 亚洲一区二区三区视频播放| 亚洲国产第一页| 久久视频一区二区| 国内精品视频在线观看|