這是使用蓋莫游戲引擎2.1.1做的簡單球面映射
比較簡單的不說什么
獻上貼圖:

再上代碼
1 using namespace std;
2 using namespace core;
3
4 int main(int argc, char **argv)
5 {
6 //! 初始化引擎設備并得到設備指針
7 RefPtr<Device> device = core::InitDevice("球面映射");
8 //! 得到引擎場景指針
9 RefPtr<SceneManager> scenemanager = device->GetSceneManager();
10 //! 得到引擎資源指針
11 RefPtr<ResourceManager> resourcemanager = device->GetResourceManager();
12 //! 獲取引擎紋理管理器指針
13 RefPtr<TextureManager> texturemanager = resourcemanager->GetTextureManager();
14 //! 獲取引擎圖形管理器
15 RefPtr<ImageManager> imagemanager = resourcemanager->GetImageManager();
16 //! 獲取引擎視頻驅動器
17 RefPtr<VideoDriver> videodriver = device->GetVideoDriver();
18
19 //! 得到圖形和其紋理
20 core::RefPtr<Image> image1 = imagemanager->CreateObject("background","..\\image//spheremap//tree.jpg");
21 core::RefPtr<Texture> background = texturemanager->CreateObject("background",image1);
22
23 core::RefPtr<Image> image2 = imagemanager->CreateObject("reflect","..\\image//spheremap//tree1.jpg");
24 core::RefPtr<Texture> reflect = texturemanager->CreateSphereMap("reflect",image2);
25
26 background->Generate();
27 reflect->Generate();
28
29 //! 獲取全局攝像機,設置攝像機參數
30 core::RefPtr<core::Camera> camera = scenemanager->GetActiveCamera();
31 camera->SetPosition(Vector3f(0,0,30));
32 camera->SetView(Vector3f(0,0,0));
33 camera->SetDirection(Vector3f(0,1,0));
34 camera->SetViewPort(Recti(0,0,640,480));
35 camera->SetPerspective(50.0f,640.0f/480.0f,0.1f,1000.0f);
36 videodriver->EnableCulling();
37
38 BEGIN_LOOP(device)
39 videodriver->SetClearBuffer(ENGINE_CLEAR_COLOR | ENGINE_CLEAR_DEPTH);
40 videodriver->SetClearColor(core::Color::Blue);
41 camera->Render();
42
43 background->AttachRenderTarget();
44 glBegin(GL_QUADS);
45 glNormal3f( 0.0f, 0.0f, 1.0f);
46 glTexCoord2f(0.0f, 0.0f); glVertex3f(-13.0f, -12.0f, 10.0f);
47 glTexCoord2f(1.0f, 0.0f); glVertex3f( 13.0f, -12.0f, 10.0f);
48 glTexCoord2f(1.0f, 1.0f); glVertex3f( 13.0f, 12.0f, 10.0f);
49 glTexCoord2f(0.0f, 1.0f); glVertex3f(-13.0f, 12.0f, 10.0f);
50 glEnd();
51
52 reflect->AttachRenderTarget();
53 videodriver->RenderSphere(12,32,32);
54 videodriver->RenderSphere(9,32,32);
55 videodriver->RenderSphere(6,32,32);
56 reflect->Destroy();
57 END_LOOP(device)
58
59 return 0;
60 }
題外話:截止目前引擎支持2d紋理,球面映射和立方體紋理
其它相關的映射和紋理會陸續加入