• <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>
            http://hi.baidu.com/zyb_debug/blog/item/6719cde629879827b8382032.html

            在前一篇中,發(fā)現(xiàn)自己解析的不是max建模出來(lái)的模型。
            今天終于找到了問(wèn)題,原因就是因?yàn)槲矣昧薈EGUI。
            如果不用CEGUI的時(shí)候,模型完全正常。
            但是CEGUI一旦render,那么開始出現(xiàn)非議所思的效果。

            大家看看效果。
            開啟CEGUI狀態(tài)之前的




            開啟CEGUI繪制之后的






            我太汗了 究其原因。

            就是CEGUI在繪制的時(shí)候改變了D3D繪制狀態(tài)。

             

            1CEGUI::System::getSingleton().renderGUI();
            2
            3   float fps = DXUTGetFPS();  
            4   RenderFPS(fps);
            5
            6RenderMesh(fElapsedTime); 
            7


             

             

            所以要在繪制Mesh之前將d3d恢復(fù)至默認(rèn)狀態(tài)

            寫一個(gè)函數(shù)

             

             1//=========================================
             2    /**
             3    @brief        
             4    @param    建立此函數(shù)的目的主要是CEGUI在繪制的時(shí)候改了繪制狀態(tài)
             5    所以要把D3D所有的繪制狀態(tài)改回去
             6    @return
             7    */

             8    //=========================================
             9
            10    void zybResetRenderState(IDirect3DDevice9* device)
            11    {
            12
            13        device -> SetFVF(NULL);
            14
            15        //  set device states 
            16        device -> SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
            17        device -> SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID); 
            18        device -> SetRenderState(D3DRS_ALPHATESTENABLE, FALSE);
            19        device -> SetRenderState(D3DRS_ZWRITEENABLE, TRUE);
            20        device -> SetRenderState(D3DRS_FOGENABLE, FALSE);
            21        device -> SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW);
            22
            23
            24        //  setup texture addressing settings/* 
            25        device -> SetSamplerState(  0 , D3DSAMP_ADDRESSU, D3DTADDRESS_WRAP);
            26        device -> SetSamplerState(  0 , D3DSAMP_ADDRESSV, D3DTADDRESS_WRAP);
            27
            28        //  setup colour calculations 
            29        //device -> SetTextureStageState( 0 , D3DTSS_COLORARG1, D3DTA_TEXTURE);
            30        //device -> SetTextureStageState( 0 , D3DTSS_COLORARG2, D3DTA_CURRENT);
            31        //device -> SetTextureStageState( 0 , D3DTSS_COLOROP, D3DTOP_SELECTARG1);
            32
            33        ////  setup alpha calculations 
            34        //device -> SetTextureStageState( 0 , D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
            35        //device -> SetTextureStageState( 0 , D3DTSS_ALPHAARG2, D3DTA_CURRENT);
            36        //device -> SetTextureStageState( 0 , D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
            37
            38        ////  setup filtering 
            39        //device -> SetSamplerState( 0 , D3DSAMP_MINFILTER, D3DTEXF_POINT);
            40        //device -> SetSamplerState( 0 , D3DSAMP_MAGFILTER, D3DTEXF_POINT);
            41        ////  disable texture stages we do not need. 
            42        //device -> SetTextureStageState( 1 , D3DTSS_COLOROP, D3DTOP_DISABLE);
            43
            44        ////  setup scene alpha blending 
            45        //device -> SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE);
            46        //device -> SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ONE);
            47        //device -> SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ZERO); 
            48
            49    }


            最后繪制mesh的時(shí)候前面加個(gè)函數(shù)

            1   CEGUI::System::getSingleton().renderGUI();
            2
            3   float fps = DXUTGetFPS();  
            4   RenderFPS(fps); 
            5
            6   zyb::zybResetRenderState(DXUTGetD3D9Device());
            7   RenderMesh(fElapsedTime);
            8

             

            OK一切正常了

             

            Posted on 2009-08-15 20:00 zyb_debug 閱讀(1246) 評(píng)論(4)  編輯 收藏 引用

            Feedback

            # re: 解析xfile 結(jié)束 找出問(wèn)題了 恢復(fù)CEGUI渲染狀態(tài)  回復(fù)  更多評(píng)論   

            2009-08-15 22:29 by 柒笑俠
            原來(lái)是你啊,嘿嘿

            # re: 解析xfile 結(jié)束 找出問(wèn)題了 恢復(fù)CEGUI渲染狀態(tài)  回復(fù)  更多評(píng)論   

            2009-08-15 23:12 by zyb_debug
            @柒笑俠
            我暈
            百度空間人太少 我就維護(hù)2個(gè)blog

            # re: 解析xfile 結(jié)束 找出問(wèn)題了 恢復(fù)CEGUI渲染狀態(tài)  回復(fù)  更多評(píng)論   

            2009-08-16 10:57 by 戴爾筆記本
            不錯(cuò)啊

            # re: 解析xfile 結(jié)束 找出問(wèn)題了 恢復(fù)CEGUI渲染狀態(tài)  回復(fù)  更多評(píng)論   

            2009-09-12 10:23 by 支持
            寫的挺好,不錯(cuò)

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


            久久一区二区免费播放| 久久久WWW成人免费毛片| 亚洲欧美日韩久久精品第一区| 污污内射久久一区二区欧美日韩| 精品国产青草久久久久福利| 色综合久久久久网| 久久精品国产久精国产一老狼| 国内精品久久久久久野外| 日产久久强奸免费的看| 亚洲狠狠久久综合一区77777 | 日韩欧美亚洲综合久久影院Ds | 国产产无码乱码精品久久鸭| 无码8090精品久久一区| 久久久91精品国产一区二区三区| 国产69精品久久久久观看软件| 99久久无色码中文字幕| 伊人色综合久久天天人守人婷| 久久国产精品久久精品国产| 香蕉久久夜色精品升级完成| 久久精品无码一区二区三区日韩| 91精品国产高清久久久久久io| 亚洲国产精品无码成人片久久| 亚洲中文字幕伊人久久无码| 久久久精品日本一区二区三区| 99久久99久久精品国产| 日本免费久久久久久久网站| 精品久久人妻av中文字幕| 欧美亚洲色综久久精品国产 | 嫩草影院久久99| 国产精品久久毛片完整版| 91精品国产乱码久久久久久| 日韩人妻无码精品久久久不卡| 日产精品99久久久久久| 亚洲中文精品久久久久久不卡| 久久久久久久久久久| 新狼窝色AV性久久久久久| 无码国内精品久久人妻| 97精品久久天干天天天按摩 | 久久久亚洲欧洲日产国码是AV| 久久久久久久久久久精品尤物 | 国产精品久久久久久福利漫画 |