• <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>

            李錦俊(mybios)的blog

            游戲開(kāi)發(fā) C++ Cocos2d-x OpenGL DirectX 數(shù)學(xué) 計(jì)算機(jī)圖形學(xué) SQL Server

              C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              86 Posts :: 0 Stories :: 370 Comments :: 0 Trackbacks

            公告

            QQ:30743734
            EMain:mybios@qq.com

            常用鏈接

            留言簿(16)

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

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 371531
            • 排名 - 67

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            Ogre的Manager真是多啊,就象個(gè)官僚公司,干事的沒(méi)幾個(gè),一堆的Manager,個(gè)個(gè)丫還都是Singleton.說(shuō)自己是Singleton卻又public構(gòu)造函數(shù),讓人來(lái)new它.在第1次被new的時(shí)候,偷偷地將this賦給靜態(tài)成員ms_Singleton,第2次new它就要assert喊冤了,當(dāng)然這都是叫Singleton的模板基類(lèi)的那個(gè)構(gòu)造函數(shù)干的(典型的小人行徑,見(jiàn)不得光).Manager一多,本來(lái)不復(fù)雜的事,也變得復(fù)雜了.

            1.LogManager
            a.全局單體LogManager組合Log指針Map集合,控制有多個(gè)Log對(duì)象,1個(gè)Log對(duì)象表達(dá)對(duì)一個(gè)Log文件的輸入(老一套).
            b.同時(shí)LogManager維護(hù)1個(gè)當(dāng)前默認(rèn)主事的Log對(duì)象mDefaultLog,以展現(xiàn)Log對(duì)象功能而隱藏自己實(shí)際是個(gè)Manager的身份(邀功自賞,其心可誅).
            c.維護(hù)一個(gè)監(jiān)控者接口LogListener列表,以履行作為一個(gè)Manager受外部監(jiān)督的職責(zé)(實(shí)為推清責(zé)任).

            2.DynLibManager
            a.全局單體DynLibManager組合DynLib*指針Map集合,控制多個(gè)DynLib對(duì)象,1個(gè)Dynlib表達(dá)對(duì)動(dòng)態(tài)庫(kù)的裝載和卸載(典型的官僚主義,人浮于事,這點(diǎn)屁事都要有Manager).

            3.ResourceGroupManager
            ? a.全局單體ResourceGroupManager組合ResourceManager指針Map?Manager的Manager,靠,好大的官)
            ? b.一上任就安插了個(gè)親信Manager,建立個(gè)叫General的ResourceManager.

            4.SceneManagerEnumerator
            ? a.連它都是系統(tǒng)單體,一個(gè)迭代器,小人得志啊,不說(shuō)了,它可管著一堆SceneManager,惹不起.
            ? b.一開(kāi)始就安排了什么事都作不了的SceneManager(基類(lèi))作默認(rèn)SceneManager,大事小事都是它,室內(nèi)室外一手包.

            5.一堆中層干部,一堆的MaterialManager,MeshManager,ParticleSystemManager,SkeletonManager......,都是Singleton,有的還是ResourceManager的門(mén)生,一開(kāi)始都干了2件事.
            a.定名分:向ResourceGroupManager注冊(cè)說(shuō)自己是某方面的Manager,_registerResourceManager.
            b.要資源:向ResourceGroupManager要求控制對(duì)某種腳本的解析_registerScriptLoader(就是瓜分資源).
            c.有個(gè)OverlayManager,ArchiveManager最牛,手下還有幾個(gè)工廠給它干活,無(wú)非是自己作不了,又推給下級(jí).

            6.一堆插件外勞,開(kāi)始加載,這些外勞到系統(tǒng)中來(lái)當(dāng)然要注冊(cè).

            7.透明實(shí)體mTransparentObjects按z序排序,不透明實(shí)體按material分組.

            8.我一開(kāi)始認(rèn)為Materail是個(gè)很聰明的概念,后來(lái)才發(fā)現(xiàn)上當(dāng)受騙了,它管理了mTechniques數(shù)組,而Techniche管理了mPasses數(shù)組(Multipass render),最后實(shí)質(zhì)的內(nèi)容在Pass類(lèi)中,Pass類(lèi)表達(dá)了一個(gè)渲染的環(huán)境.由于這個(gè)官僚系統(tǒng)實(shí)在太官僚,所以按對(duì)象每次渲染是不可接受的(跨部門(mén)合作太多,相互扯皮),渲染狀態(tài)切換頻繁,效率極低,透明渲染z序混亂.所以需要按Materail分組和z軸分序,而RenderSystem的最重要方法接受RenderOperation參數(shù).

            9.Pass和RenderOperation是兩位最能干的勞動(dòng)人民,都是受人管制的對(duì)象,整個(gè)系統(tǒng)的靈魂和核心,Pass封裝了最重要的渲染狀態(tài)(即進(jìn)行g(shù)lDrawXXX時(shí)管線所處的狀態(tài),著色系統(tǒng)),RenderOperation封裝了帶紋理幾何渲染操作(glDrawElements幾何系統(tǒng)),兩者構(gòu)成一個(gè)完整的渲染.即,先,調(diào)用SceneManager的setPass(在其中其仍將調(diào)用RenderSystem以設(shè)置管線狀態(tài)),再,調(diào)用RenderSystem的_render.

            10.SceneManager的虛方法_findVisibleObjects是場(chǎng)景管理的核心,由它將Renderable分組,分透明和不透明分送入不同的渲染隊(duì)列,Renderable組合RenderOperation和Pass(但出頭的都是Materail),然后SceneManager對(duì)之排序,整理,送入RenderSystem渲染.

            11.SceneManager的_renderScene是基本渲染核心,它完成若干任務(wù)
            ?? a.幀動(dòng)畫(huà)驅(qū)動(dòng)_applySceneAnimations
            ?? b.場(chǎng)景圖更新_updateSceneGraph
            ?? c.渲染隊(duì)列更新,_findVisibleObjects更新主場(chǎng)景,_queueOverlaysForRendering更新上層主界面,_queueSkiesForRendering更新天空盒,最后_renderVisibleObjects.

            12.渲染隊(duì)列RenderQueue,維護(hù)std::map<RenderQueueGroupID, RenderQueueGroup*>對(duì)象,以表達(dá)其內(nèi)部的多個(gè)方面(世界,前景,背景)的渲染分隊(duì)列.RenderQueueGroup再往下分std::map<ushort, RenderPriorityGroup*, std::less<ushort> >,以表達(dá)其(如前景)內(nèi)部按ushort優(yōu)先級(jí)維護(hù)渲染分隊(duì)列.RenderPriorityGroup維護(hù)一個(gè)mTransparentPasses,若干個(gè)SolidRenderablePassMap.

            posted on 2006-11-19 08:40 李錦俊(mybios) 閱讀(3172) 評(píng)論(8)  編輯 收藏 引用 所屬分類(lèi): 數(shù)學(xué)、幾何和圖形學(xué)

            Feedback

            # re: 【轉(zhuǎn)貼】Ogre的官僚主義批判 2007-02-28 18:17 王一偉
            貌似看帖子的人都沒(méi)研究過(guò)OGRE,呵呵,不過(guò)現(xiàn)在模仿OGRE結(jié)構(gòu)寫(xiě)的引擎還是很多 呵呵  回復(fù)  更多評(píng)論
              

            # re: 【轉(zhuǎn)貼】Ogre的官僚主義批判 2007-06-12 09:59 zdl1016
            對(duì)OGRE才研究了一個(gè)月,不敢妄加評(píng)論。  回復(fù)  更多評(píng)論
              

            # re: 【轉(zhuǎn)貼】Ogre的官僚主義批判[未登錄](méi) 2007-06-12 12:51 FlyingBear
            主要是OGRE的Manager大都有很復(fù)雜的初始化,用一般的singleton實(shí)現(xiàn)靜態(tài)初始化不容易控制順序  回復(fù)  更多評(píng)論
              

            # re: 【轉(zhuǎn)貼】Ogre的官僚主義批判 2008-05-20 15:30 Welbon
            呵呵,LZ 這篇文章很有意思  回復(fù)  更多評(píng)論
              

            # re: 【轉(zhuǎn)貼】Ogre的官僚主義批判[未登錄](méi) 2009-02-10 13:17 hunter
            有點(diǎn)意思  回復(fù)  更多評(píng)論
              

            # re: 【轉(zhuǎn)貼】Ogre的官僚主義批判 2009-02-20 11:35 geng
            呵呵,一針見(jiàn)血  回復(fù)  更多評(píng)論
              

            # hyperc 2010-06-05 17:26 hyperc
            最?lèi)盒牡囊嬷?ogre 掛了不知道多少依賴(lài)庫(kù) 連boost都要給你強(qiáng)制掛上  回復(fù)  更多評(píng)論
              

            # re: 【轉(zhuǎn)貼】Ogre的官僚主義批判[未登錄](méi) 2011-01-12 14:25 111
            占在巨人肩膀上,難道你要自己去實(shí)現(xiàn)boost的東西?  回復(fù)  更多評(píng)論
              

            精品国产日韩久久亚洲| 性欧美丰满熟妇XXXX性久久久| 天天躁日日躁狠狠久久| 久久亚洲中文字幕精品有坂深雪| 亚洲国产欧洲综合997久久| 996久久国产精品线观看| 精品久久综合1区2区3区激情| 久久se这里只有精品| 久久91精品国产91久| 亚洲国产精品一区二区久久| 中文字幕无码久久精品青草 | 国产三级精品久久| 国产精品久久午夜夜伦鲁鲁| 国产精品热久久毛片| 久久天天躁狠狠躁夜夜网站| 精品国产乱码久久久久久浪潮| 伊人久久大香线蕉综合Av | 久久精品国产久精国产果冻传媒 | 久久人人爽人人爽AV片| 久久精品无码一区二区无码| 日韩精品久久无码人妻中文字幕| 一本色道久久99一综合| 亚洲性久久久影院| 亚洲欧美一区二区三区久久| 伊人久久大香线蕉av一区| 97久久婷婷五月综合色d啪蜜芽 | 久久久精品人妻一区二区三区蜜桃| 午夜视频久久久久一区| 日韩乱码人妻无码中文字幕久久 | 国产一区二区三精品久久久无广告| 久久精品亚洲乱码伦伦中文| 一本色道久久88综合日韩精品| 思思久久99热只有频精品66| 性高湖久久久久久久久| 国内精品久久久久久中文字幕| 久久久久国产精品嫩草影院| 人妻无码αv中文字幕久久琪琪布| 精品久久久久久成人AV| 一本久久a久久精品综合香蕉| 久久精品www| 97久久精品无码一区二区|