| 
 | 
 
使用盖莫游戏引擎做的天空面例子(当然可以使用天空盒,天空顶) 
代码如下: 
#include <cstdlib> 
#include <iostream> 
#include <GEngine/Main.hpp> 
 
using namespace std; 
 
core::RefPtr<core::Image>   skyimage[1]; 
core::RefPtr<core::Texture> skytexture[1]; 
core::RefPtr<core::Image>   terrainimage[2]; 
core::RefPtr<core::Texture> terraintexture[2]; 
  
int main(int argc, char *argv[]) 
{    
    core: evice* device = core::InitDevice("盖莫引擎场景测试"); 
     
    //! 获取资源管理器 
    core::ResourceManager *resourcemanager = device->GetResourceManager(); 
     
    //! 获取场景管理器  
    core::RefPtr<core::SceneManager> scenemanager = core::SceneManager::GetSceneManager();  
     
    //! 获取新的摄像机并设置为活动摄像机 
    core::RefPtr<core::Camera> camera = scenemanager->CreateCamera("mycamera", 
                                                                   Vector3f(500,20,400), 
                                                                   Vector3f(503,20,400), 
                                                                   Vector3f(0,1,0)); 
      
    //! 设置当前活动摄像机  
    scenemanager->SetActiveCamera(camera); 
     
    //! 获取天空面图形和纹理  
    skyimage[0] = resourcemanager->GetImage("sky_image","..\\image//sky//top.jpg"); 
    skytexture[0] = resourcemanager->GetTexture("sky_texture",skyimage[0]);   
    core::RefPtr<core::SkyPlane> skyplane = scenemanager->GetSkyPlane(32,500,900,skytexture[0]);  
    skyplane->SetRotationStep(0.03f); 
    
    //! 设置地形数据 
    terrainimage[0] = resourcemanager->GetImage("terrain_image","..\\terrain//terrain.bmp"); 
    terrainimage[1] = resourcemanager->GetImage("terrain_detail","..\\terrain//terrainflat.jpg"); 
    terraintexture[0] = resourcemanager->GetTexture("terrain_texture1",terrainimage[0]); 
    terraintexture[1] = resourcemanager->GetTexture("terrain_texture2",terrainimage[1]); 
      
    core::RefPtr<core::Terrain> terrain = scenemanager->GetTerrain("terrain1"); 
    bool flag = terrain->Load("..\\terrain//terrain2.raw",1024); 
    terrain->SetStepSize(16); 
    terrain->SetTexture(terraintexture[1],terraintexture[0]); 
     
    //! 设置摄像机数据  
    camera->SetViewport(0,0,640,480); 
    camera->SetPerspective(45,640.0f/480.0f,0.1f,1000); 
                    
    //! 获取输入系统指针 
    core::Input* input = device->GetInput();  
     
    //! 获取雾指针 
    core::RefPtr<core::Fog> fog = scenemanager->GetFog();  
    fog->SetColor(core::Color(0.3f,0.3f,0.2f)); 
    fog->SetDensity(0.001f); 
    fog->SetQuality(0.003f); 
    fog->SetBound(0.1f,1000.0f); 
    fog->Render(); 
                    
    BEGIN_LOOP(device) 
        camera->SetPerspective(45,640.0f/480.0f,0.1f,1000); 
        camera->Render(); 
        skyplane->Render();  
        terrain->Render(); 
    END_LOOP(device) 
     
    terrain->Deinit(); 
  
    device->Close(); 
    device->Drop(); 
     
    system(" AUSE"); 
    return EXIT_SUCCESS; 
} 
  
 
 贴图如下: 
 
 
 
编译:devc++,vc2003 
如果对盖莫引擎感兴趣可以通过邮件和我联系ccsdu2009@sohu.com  
  |   
 
 
 
 |