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

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

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

最新的Ogre穩(wěn)定版本是1.6.0RC1[shoggoth],在1.6.0版本中OgreFrameListener.h中的類FrameListener多出了一個叫virtual bool frameRenderingQueued( const FrameEvent& evt ) { return true; }的函數(shù)。這個函數(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)一幀將要開始渲染的時候被調(diào)用。
這個事件發(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)傳出他們的渲染命令之后,并且在渲染窗口被要求去釋放他們的幀之前。
這個事件的用途其實是為了把GPU處理的渲染命令推入隊列,這些只花費一點功夫去完成,
而就這一段時間cpu可以被用來處理一些有用的事情。一旦釋放幀這個時間發(fā)生,這條線程請求將要被
堵塞直到GPU準(zhǔn)備好了,這可能浪費了cpu的渲染時間,然而,作為回調(diào)函數(shù)去逐幀處理也是一個好注意。
當(dāng)然因為幀的渲染命令已經(jīng)被放出,任何你做的改變只對下一幀有效,但是大多數(shù)情況下這不是很明顯的。

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

//一個部件的類
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 閱讀(2234) 評論(2)  編輯 收藏 引用

評論

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

這是開了兩個線程嗎?
一個做DP和flip
另一個回調(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>
            欧美精品日韩| 一道本一区二区| 国内精品久久久久久久果冻传媒 | 亚洲一区免费| 欧美在线亚洲综合一区| 久久亚洲影院| 国产精品二区二区三区| 国产日韩视频一区二区三区| 在线日韩欧美视频| 亚洲欧美日韩精品久久奇米色影视| 午夜视黄欧洲亚洲| 欧美激情视频一区二区三区免费| 一区二区欧美激情| 久久久久国产精品一区二区| 国产精品第三页| 久久国产精彩视频| 亚洲无限av看| 欧美精品一区三区| 亚洲第一网站| 一本一道久久综合狠狠老精东影业| 欧美三区视频| 一本色道久久加勒比88综合| 亚洲一区久久久| 亚洲日本中文字幕免费在线不卡| 久久久天天操| 欧美一区二区三区免费在线看 | 看片网站欧美日韩| 国产在线精品一区二区中文| 欧美福利小视频| 久久蜜臀精品av| 在线午夜精品自拍| 亚洲裸体视频| 欧美国产欧美综合| 亚洲精品免费网站| 午夜日韩在线观看| 国产精品午夜电影| 亚洲一区二区三区中文字幕在线| 亚洲国产精品黑人久久久| 性欧美18~19sex高清播放| 亚洲精品久久在线| 欧美理论电影在线播放| 久久精品国产第一区二区三区最新章节| 日韩亚洲国产欧美| 国产精品毛片在线| 久久精品日韩| 国产精品v一区二区三区| 午夜久久电影网| 欧美激情成人在线| 欧美成人在线免费观看| 国产日韩欧美在线播放不卡| 夜色激情一区二区| 国产欧美亚洲视频| 久久综合色播五月| 久久在线观看视频| 久久婷婷综合激情| 久久久激情视频| 亚洲美女免费视频| 亚洲一区二区三区影院| av成人免费| 欧美精品一区二区蜜臀亚洲| 欧美国产日韩a欧美在线观看| 国产一区二区三区在线观看免费| 免费不卡在线观看| 欧美日韩国产高清| 久久精品日韩欧美| 国产日韩精品视频一区| 亚洲淫性视频| 久久国产欧美| 韩国成人精品a∨在线观看| 亚洲国产高清一区二区三区| 国产精品二区影院| 亚洲欧美精品中文字幕在线| 亚洲黄色av| 先锋影音久久久| 久久精品最新地址| 欧美日韩另类丝袜其他| 久久乐国产精品| 国内精品视频久久| 另类激情亚洲| 亚洲精品久久久久久久久久久久久| 日韩午夜视频在线观看| 欧美亚洲网站| 狂野欧美一区| 日韩性生活视频| 欧美午夜宅男影院在线观看| 亚洲一区二区三区高清不卡| 欧美一区二区女人| 国产精品扒开腿做爽爽爽视频| 亚洲网友自拍| 久久综合狠狠综合久久激情| 91久久久久久久久久久久久| 欧美一区视频在线| 欧美激情视频一区二区三区不卡| 日韩天堂在线视频| 国产免费亚洲高清| 正在播放亚洲一区| 亚洲少妇在线| 欧美精品导航| 欧美一级淫片aaaaaaa视频| 免费观看国产成人| 亚洲嫩草精品久久| 在线成人av.com| 久久人人97超碰精品888 | 中文久久乱码一区二区| 国产美女诱惑一区二区| 久久综合色播五月| 亚洲专区在线| 91久久国产综合久久| 亚洲日本一区二区三区| 国产精品天美传媒入口| 欧美成人黑人xx视频免费观看| 久久一本综合频道| 亚洲综合不卡| 国产精品福利影院| 蜜臀va亚洲va欧美va天堂| 欧美成人网在线| 欧美一级久久久| 99视频精品免费观看| 在线观看亚洲视频| 国产婷婷色一区二区三区在线| 欧美激情综合网| 麻豆成人综合网| 欧美在线视频导航| 这里只有精品丝袜| 亚洲精品视频在线| 亚洲国产成人午夜在线一区| 久久久噜噜噜久久| 欧美一区二区三区四区在线 | 亚洲一区二区少妇| 亚洲精品麻豆| 亚洲国产精品va| 欧美理论电影网| 欧美gay视频| 中国女人久久久| 亚洲六月丁香色婷婷综合久久| 男人插女人欧美| 一区二区三区欧美日韩| 亚洲欧洲视频| 亚洲大胆av| 亚洲国产成人av| 亚洲国产你懂的| 亚洲国产日韩一区| 亚洲国产精品久久久久秋霞蜜臀| 韩国福利一区| 激情综合在线| 欧美日韩亚洲一区| 欧美精品免费视频| 欧美日韩视频在线| 欧美色欧美亚洲另类二区| 欧美日韩色一区| 国产精品九九| 国产日韩亚洲| 亚洲第一中文字幕在线观看| 在线观看成人网| 日韩视频一区| 亚洲欧美日韩在线播放| 欧美在线视频播放| 久久在线播放| 91久久久精品| 亚洲午夜久久久久久久久电影网| 亚洲自拍偷拍麻豆| 久久久久久久91| 欧美大片网址| 国产精品久久久久毛片大屁完整版| 国产精品久久久久久久app| 国产欧美日韩综合一区在线播放| 国产午夜亚洲精品理论片色戒 | 免费久久99精品国产自| 欧美精品入口| 国产午夜精品久久久久久久| 伊人久久综合97精品| 亚洲免费精品| 欧美一区二区三区在线观看视频| 久久天堂成人| 日韩网站在线观看| 久久精品成人| 先锋影音久久久| 欧美国产丝袜视频| 国产精品人成在线观看免费| 国产自产v一区二区三区c| 亚洲另类一区二区| 欧美一区二区三区四区视频| 欧美福利精品| 亚洲男女自偷自拍| 欧美国产免费| 国产综合久久久久久| 一区二区电影免费在线观看| 欧美专区在线播放| 日韩系列欧美系列| 欧美在线播放一区| 欧美网站在线观看| 最新成人av网站| 久久精品国产一区二区三区| 亚洲欧洲三级| 久久免费视频观看| 国产午夜精品理论片a级大结局| 99re6热在线精品视频播放速度| 久久亚洲私人国产精品va| 一区二区精品| 欧美激情综合网|