• <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>
            Cpper
            C/C++高級工程師 Android高級軟件工程師 IT集成工程師 音頻工程師 熟悉c,c++,java,c#,py,js,asp等多種語言 程序猿

            這是使用蓋莫游戲引擎2.1.1的天空面功能
            很簡單的
            先說天空面描述符(引入這個的目的在于減少很多不相關(guān)的函數(shù)和代碼)

             1 ////////////////////////////////////////////////////////
             2 /// 定義引擎天空面描述符
             3 ////////////////////////////////////////////////////////
             4 struct SkyPlaneDesc
             5 {   
             6     SkyPlaneDesc():divisions(32),  
             7                    pradius(1200.0f),
             8                    aradius(1800.0f),
             9                    rate(2.5f),
            10                    axisx(0.0f),
            11                    axisy(1.0f),
            12                    axisz(0.0f)
            13                    {
            14                    }
            15                  
            16     ///////////////////////////////////////////////////////
            17     /// 檢查描述符是否合法 
            18     ///////////////////////////////////////////////////////
            19     bool IsValid()const
            20     {
            21         return image && 
            22                divisions > 1 &&
            23                pradius > 1.0f &&
            24                aradius > 1.0f
            25     }
            26     
            27     //! 天空面的圖形
            28     RefPtr<Image> image;
            29     int   divisions;  
            30     float pradius;
            31     float aradius;
            32     //! 天空轉(zhuǎn)速(角度/秒)
            33     float rate;
            34     //! 天空旋轉(zhuǎn)軸
            35     float axisx;
            36     float axisy;
            37     float axisz;  
            38     
            39     COPY_OBJECT(SkyPlaneDesc) 
            40 };

            其中天空面參數(shù)有天空面分割數(shù)division
            2個半徑(面半徑和空間半徑)
            一個天空圖形
            4個關(guān)于旋轉(zhuǎn)的參數(shù)

            下面是使用蓋莫游戲引擎天空面的例子如下所示:
            #include <GEngine/Gaimo.hpp>

            using namespace std;
            using namespace core; 

            int Main()
            {
                
            //! 初始化引擎設(shè)備并得到設(shè)備指針
                RefPtr<Device> device = InitDevice("天空面測試");
                
            //! 得到引擎場景指針
                RefPtr<SceneManager> scenemanager = device->GetSceneManager();
                
            //! 得到引擎資源指針
                RefPtr<ResourceManager> resourcemanager = device->GetResourceManager();
                
            //! 獲取圖形管理器指針
                RefPtr<ImageManager> imagemanager =  resourcemanager->GetImageManager();
                
            //! 得到視頻驅(qū)動器指針
                RefPtr<VideoDriver> videodriver = device->GetVideoDriver();

                
            //! 得到天空圖形
                RefPtr<core::Image>   image = imagemanager->CreateObject("sky","..\\image\\sky\\top.jpg");
                
            //! 得到天空盒指針
                SkyPlaneDesc desc;
                desc.image 
            = image;
                desc.divisions 
            = 32;
                desc.pradius 
            = 1200.0f;
                desc.aradius 
            = 1800.0f;
                RefPtr
            <Renderable> sky = scenemanager->CreateSkyPlane(desc);
                
                
            //! 獲取攝像機(jī)指針
                RefPtr<Camera> camera = scenemanager->GetCameraManager()->CreateCamera("camera",
                                                                                       Vector3f(),
                                                                                       Vector3f(
            100,13,0));
                camera
            ->SetViewPort(Recti(0,0,640,480));
                camera
            ->SetPerspective(45.0f,640.0f/480.0f,0.1f,600.0f);

                
            //! 獲取霧指針
                RefPtr<Fog> fog = resourcemanager->GetFog("..\\script//fog.lua","fog");
                fog
            ->Render();
                BEGIN_LOOP(device)
                   videodriver
            ->SetClearBuffer(ENGINE_CLEAR_COLOR | ENGINE_CLEAR_DEPTH);
                   camera
            ->Render();
                   sky
            ->Render();
                END_LOOP(device)
                
            return 0;
            }
            代碼并沒有引入地形等其他不相關(guān)的東西
            只是簡單的天空面渲染
            代碼雖然很多但是核心無非就是:
             1     //! 得到天空盒指針
             2     SkyPlaneDesc desc;
             3     desc.image = image;
             4     desc.divisions = 32;
             5     desc.pradius = 1200.0f;
             6     desc.aradius = 1800.0f;
             7     RefPtr<Renderable> sky = scenemanager->CreateSkyPlane(desc);
             8     
             9     //! 獲取攝像機(jī)指針
            10     RefPtr<Camera> camera = scenemanager->GetCameraManager()->CreateCamera("camera",
            11                                                                            Vector3f(),
            12                                                                            Vector3f(100,13,0));
            在循環(huán)過程中無非就是她的Render了
            下面是貼圖:

            t天真的是蔚藍(lán)蔚藍(lán)的
            posted on 2010-04-08 17:19 ccsdu2009 閱讀(952) 評論(0)  編輯 收藏 引用 所屬分類: Game引擎
             
            久久久久久免费一区二区三区| 久久WWW免费人成—看片| 久久综合精品国产一区二区三区| 久久青草国产手机看片福利盒子| 色欲久久久天天天综合网精品| 无码国内精品久久综合88 | 精品熟女少妇AV免费久久| 欧美日韩精品久久久久| 一级女性全黄久久生活片免费 | 久久久久久久尹人综合网亚洲| 久久青青草原综合伊人| 国产精品热久久毛片| 伊人久久大香线蕉综合网站| 99久久国产宗和精品1上映| 久久久久亚洲AV成人片| 国产精品久久久天天影视香蕉| 午夜精品久久久久久久无码| 久久人人爽人人爽人人AV| 精品综合久久久久久888蜜芽| 久久久久久狠狠丁香| 怡红院日本一道日本久久 | 精品久久久久久久无码| 久久国产精品国产自线拍免费| 久久精品国产亚洲AV不卡| 久久久久久久久波多野高潮| 国产亚洲精久久久久久无码| 久久久久无码国产精品不卡| 久久久久亚洲AV无码永不| 久久久久噜噜噜亚洲熟女综合| 青青草原精品99久久精品66| 久久精品国产一区二区三区| 久久精品国产网红主播| 国产欧美久久久精品影院| 国产69精品久久久久99| 久久久久人妻一区二区三区vr| 欧美粉嫩小泬久久久久久久| 91精品国产乱码久久久久久| 综合网日日天干夜夜久久| 久久青青国产| 久久国产成人| 精品久久久久久无码人妻蜜桃|