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

隨筆 - 5, 文章 - 0, 評論 - 24, 引用 - 0
數(shù)據(jù)加載中……

Ogre在游戲開發(fā)中逐幀更新

最新的Ogre穩(wěn)定版本是1.6.0RC1[shoggoth],在1.6.0版本中OgreFrameListener.h中的類FrameListener多出了一個(gè)叫virtual bool frameRenderingQueued( const FrameEvent& evt ) { return true; }的函數(shù)。這個(gè)函數(shù)和virtual bool frameStarted( const FrameEvent& evt ) { return true; }有明顯的區(qū)別。
在源代碼中對frameStarted的注釋是:
        /** Called when a frame is about to begin rendering.
  @remarks
   This event happens before any render targets have begun updating.
            @return
                True to go ahead, false to abort rendering and drop
                out of the rendering loop.
        */
大體翻譯是:
當(dāng)一幀將要開始渲染的時(shí)候被調(diào)用。
這個(gè)事件發(fā)生在所有渲染目標(biāo)已經(jīng)開始更新之前。
而在源代碼中對frameRenderingQueued的注釋是:
  /** Called after all render targets have had their rendering commands
   issued, but before render windows have been asked to flip their
   buffers over.
  @remarks
   The usefulness of this event comes from the fact that rendering
   commands are queued for the GPU to process. These can take a little
   while to finish, and so while that is happening the CPU can be doing
   useful things. Once the request to 'flip buffers' happens, the thread
   requesting it will block until the GPU is ready, which can waste CPU
   cycles. Therefore, it is often a good idea to use this callback to
   perform per-frame processing. Of course because the frame's rendering
   commands have already been issued, any changes you make will only
   take effect from the next frame, but in most cases that's not noticeable.
  @return
   True to continue rendering, false to drop out of the rendering loop.
  */
翻譯為:
在所有渲染目標(biāo)已經(jīng)傳出他們的渲染命令之后,并且在渲染窗口被要求去釋放他們的幀之前。
這個(gè)事件的用途其實(shí)是為了把GPU處理的渲染命令推入隊(duì)列,這些只花費(fèi)一點(diǎn)功夫去完成,
而就這一段時(shí)間cpu可以被用來處理一些有用的事情。一旦釋放幀這個(gè)時(shí)間發(fā)生,這條線程請求將要被
堵塞直到GPU準(zhǔn)備好了,這可能浪費(fèi)了cpu的渲染時(shí)間,然而,作為回調(diào)函數(shù)去逐幀處理也是一個(gè)好注意。
當(dāng)然因?yàn)閹匿秩久钜呀?jīng)被放出,任何你做的改變只對下一幀有效,但是大多數(shù)情況下這不是很明顯的。

加入了這個(gè)函數(shù)也說明了Ogre1.6.0對gpu重視了。
在ogre自帶的例子中,幾乎都是用examplelistener來處理游戲循環(huán)。這明顯不符合比較大點(diǎn)的游戲開發(fā)。而如果
你想要在大型游戲中應(yīng)用這個(gè)游戲循環(huán)。我感覺首先應(yīng)該有一個(gè)單件的幀監(jiān)聽系統(tǒng)通過游戲主應(yīng)用程序來初始化。然后就是用設(shè)計(jì)模式中的Bridge的將聲明和執(zhí)行分開的功能來處理這個(gè)方法。
偽代碼:

//一個(gè)部件的類
class BrilyfWidgets
{
    
bool frameRenderingQueued( const FrameEvent& evt ); 
    
}
;


//類的前向聲明
class BrilyfApplication;

class BrilyfListenSystem : public Singleton<BrilyfListenSystem>public FrameListener
{
    
bool frameRenderingQueued( const FrameEvent& evt ) 
    
{
        
//一些系統(tǒng)缺省的設(shè)置
        
        
//關(guān)鍵部分
        BrilyfApplication::getSingletonPtr()->frameRenderQueued( const FrameEvent& evt );
        BrilyfApplication::getSingletonPtr()
->frameEnded( const FrameEvent& evt );
    }

    
bool frameEnded( const FrameEvent& evt );    
}
;

//所有的其他一些部件的初始化都要通過BrilyfApplication,它就是游戲的主管道,控制著所有部件的生命周期,提供了
//frameRenderingQueued和frameEnded的接口供其他的部件來填充。
class BrilyfApplication : public Singleton<BrilyfApplication>
{
    
//一些對于單件初始化的處理
    
    
    
//對應(yīng)的事件
    bool frameRenderingQueued( const FrameEvent& evt ) 
    

        
for ( int i = 0; i < 16; i++ )
            BrilyfWidgets.frameRenderingQueued(  );
    }

    
bool frameEnded( const FrameEvent& evt );

    BrilyfWidgets mWidgets[
16];
}
;

posted on 2008-09-24 22:11 brilyf 閱讀(2232) 評論(2)  編輯 收藏 引用

評論

# re: Ogre在游戲開發(fā)中逐幀更新  回復(fù)  更多評論   

這是開了兩個(gè)線程嗎?
一個(gè)做DP和flip
另一個(gè)回調(diào)frameRenderingQueued
2008-09-25 08:49 | LOGOS

# re: Ogre在游戲開發(fā)中逐幀更新  回復(fù)  更多評論   

呵呵,ogre系統(tǒng)好象是這樣的.
2008-09-25 10:35 | brilyf

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲永久免费精品| 久久久亚洲综合| 欧美日韩一区二区三区在线| 亚洲美女在线国产| 最近看过的日韩成人| 免费看亚洲片| 一区二区三区不卡视频在线观看 | 亚洲综合欧美日韩| 国产精品性做久久久久久| 欧美与欧洲交xxxx免费观看 | 亚洲黄色小视频| 欧美日韩国产91| 亚洲欧美制服中文字幕| 欧美一区二区三区久久精品茉莉花| 国产亚洲综合性久久久影院| 久热精品在线| 欧美激情视频一区二区三区在线播放 | 免费观看成人网| 在线综合亚洲| 欧美在线观看视频在线| 亚洲精品一区二区三区蜜桃久| 日韩视频在线观看国产| 国产亚洲综合精品| 亚洲第一精品夜夜躁人人躁| 欧美日韩一区二区精品| 久久久免费av| 欧美日韩国产综合视频在线观看| 欧美伊人久久大香线蕉综合69| 久久一区精品| 亚洲欧美日韩一区二区三区在线观看 | 亚洲电影免费在线观看| 国产精品视频九色porn| 欧美成人激情视频免费观看| 欧美四级在线| 亚洲第一二三四五区| 国产麻豆综合| 亚洲美女毛片| 亚洲福利国产精品| 亚洲欧美不卡| 一区二区三区欧美成人| 久久久久久有精品国产| 香蕉成人久久| 欧美日本韩国在线| 牛牛影视久久网| 国产日韩精品一区| 99视频+国产日韩欧美| 亚洲国产欧美一区二区三区同亚洲 | 一本色道久久88精品综合| 黄色亚洲大片免费在线观看| 一本色道久久综合亚洲二区三区| 亚洲福利在线视频| 欧美一区网站| 亚洲调教视频在线观看| 欧美风情在线| 欧美国产第一页| 国内精品久久久久伊人av| 亚洲一区视频| 午夜精品视频在线观看一区二区| 免费不卡中文字幕视频| 猛男gaygay欧美视频| 国内一区二区三区| 久久精品国产精品亚洲| 久久精品欧洲| 红桃av永久久久| 久久精品国产免费| 另类欧美日韩国产在线| 国内精品久久久久影院薰衣草| 午夜国产欧美理论在线播放| 欧美一级精品大片| 国产三级欧美三级| 久久国产成人| 欧美成人福利视频| 亚洲毛片播放| 欧美日韩综合精品| 亚洲一区二区在线视频| 久久激情网站| 精东粉嫩av免费一区二区三区| 久久不见久久见免费视频1| 久久久久九九九九| 亚洲国产精品成人久久综合一区| 毛片基地黄久久久久久天堂| 亚洲二区在线视频| 亚洲天天影视| 国产视频在线观看一区| 久热re这里精品视频在线6| 免费人成精品欧美精品| 99re6热在线精品视频播放速度| 欧美精品黄色| 亚洲午夜三级在线| 久久久国产成人精品| 亚洲国产天堂久久国产91| 欧美另类视频| 亚洲综合日本| 欧美激情欧美狂野欧美精品| 一区二区三区精品| 国产欧美一级| 免费看精品久久片| 亚洲一区二区成人在线观看| 久久躁日日躁aaaaxxxx| 亚洲精一区二区三区| 国产精品一区二区你懂的| 美腿丝袜亚洲色图| 中文在线资源观看网站视频免费不卡 | 欧美精选在线| 亚洲欧美日本国产专区一区| 欧美福利一区| 欧美在线影院| 一区二区三区高清在线观看| 国产在线不卡精品| 欧美日韩黄色大片| 久久久99爱| 亚洲图片欧洲图片日韩av| 欧美 日韩 国产 一区| 亚洲一区二区在线| 亚洲高清色综合| 国产亚洲精久久久久久| 欧美人与禽猛交乱配| 久久精品视频99| 亚洲午夜小视频| 91久久精品久久国产性色也91 | 亚洲精品国产精品国产自| 国产日韩在线看| 欧美日韩免费看| 欧美大片18| 久久久一区二区三区| 亚洲尤物在线视频观看| 99在线热播精品免费99热| 欧美91视频| 久久日韩精品| 久久se精品一区精品二区| 亚洲欧美日韩高清| 中国成人在线视频| 99综合电影在线视频| 最新成人av在线| 在线观看日韩| 在线精品国产欧美| 亚洲大片在线观看| 亚洲第一狼人社区| 在线国产亚洲欧美| 黄色成人免费观看| 黄色成人av网| 永久555www成人免费| 国色天香一区二区| 在线观看精品一区| 亚洲福利视频二区| 亚洲日本免费| 一二三区精品| 亚洲伊人伊色伊影伊综合网| 亚洲欧美美女| 欧美中文字幕第一页| 久久久久久久成人| 久久在线免费观看| 欧美国产第二页| 91久久综合| 亚洲五月婷婷| 欧美影视一区| 老司机免费视频一区二区三区| 免费久久99精品国产自| 欧美激情精品久久久久久变态| 欧美另类高清视频在线| 欧美色中文字幕| 国产一区二区成人久久免费影院| 韩国一区电影| 亚洲人成网站在线观看播放| 一区二区91| 欧美影片第一页| 免费视频久久| 日韩视频在线免费观看| 午夜国产精品影院在线观看| 久久精品中文字幕一区二区三区| 麻豆国产精品va在线观看不卡| 欧美激情精品久久久六区热门 | 欧美一区免费视频| 久久伊人免费视频| 亚洲国产小视频| 亚洲淫性视频| 美女视频一区免费观看| 国产精品久久久久久久9999| 国产一区二区三区高清| 亚洲精品视频在线播放| 欧美在线播放一区| 亚洲福利av| 欧美一区二区三区视频在线| 欧美 日韩 国产 一区| 国产精品午夜春色av| 亚洲三级免费观看| 久久av一区二区| 最近看过的日韩成人| 久久精品日产第一区二区| 欧美日韩精品一区二区| 精品动漫3d一区二区三区| 亚洲午夜久久久| 欧美国产在线电影| 性欧美8khd高清极品| 欧美日韩国产丝袜另类| 在线观看一区| 久久不射2019中文字幕| 一区二区高清在线观看| 男人的天堂亚洲在线| 韩国精品在线观看|