기초 튜토리얼 3-1

Ogre3D 삽질란/Basic Tutorial 3 2008. 11. 14. 13:29

기초 튜토리얼 3 (번역 : n_Sys)

입문자 튜토리얼 3: Terrain, Sky, Fog, and the Root object

튜토리얼 진행중 문제가 발생한다면 Help 포럼 문의하세요.

Contents

*                                  1 미리 알아두어야

*                                  2 소개

*                                  3 시작하기

*                                  4 Root 객체와 SceneManager 생성

*                                          4.1 Root

*                                          4.2 SceneManager 생성

*                                  5 지형

*                                          5.1 장면에 지형 추가하기

*                                          5.2 terrain.cfg 파일

*                                          5.3 형조명

*                                  6 하늘

*                                          6.1 SkyBoxes

*                                          6.2 SkyDomes

*                                          6.3 SkyPlanes

*                                          6.4 어느것을 써야 하나?

*                                  7 안개

*                                          7.1 안개 소개

*                                          7.2 안개 종류

*                                          7.3 안개와 하늘

*                                          7.4 안개를 어둠처럼 사용하기

 

미리 알아두어야  

튜토리얼은 독자가 C++ 프로그래밍이 가능하고 오우거 어플리케이션 설정 컴파일이 가능하다는 가정하에 진행됩니다. 튜토리얼은 이전 튜토리얼을 기초로 작성되었으며 독자는 이전 튜토리얼들을 거쳐왔다고 가정합니다.

 

소개

튜토리얼에서는 어떻게 지형, 하늘 그리고 안개를 조작하는지 안내 것입니다. 튜토리얼 이후에 여러분은 Skyboxes, Skyplanes 그리고 Skydomes 차이점을 알고 있게 것입니다. 종류에 따른 안개들의 차이점도 알게 것이며 어떻게 쓰는지도 알게 것입니다.

튜토리얼을 진행함에 있어서 여러분은 천천히 코드를 따라가며 입력하고 결과를 지켜볼 필요성이 있습니다. 튜토리얼의 최종 코드는 여기(http://www.ogre3d.org/wiki/index.php/BasicTutorial3Source) 얻을 있습니다. 만약 작성한 코드에 문제가 발생한다면 코드와 비교해 보세요.

 

시작하기

지난번 튜토리얼처럼 미리 작성된 코드를 기초로 시작할 입니다. 프로젝트를 생성하고 아래의 코드를 입력하세요 :

#include "ExampleApplication.h"

 

class TutorialApplication : public ExampleApplication

{

protected:

public:

    TutorialApplication()

    {

    }

 

    ~TutorialApplication()

    {

    }

protected:

    void chooseSceneManager(void)

    {

    }

 

    void createScene(void)

    {

    }

};

 

#if OGRE_PLATFORM == PLATFORM_WIN32 || OGRE_PLATFORM == OGRE_PLATFORM_WIN32

#define WIN32_LEAN_AND_MEAN

#include "windows.h"

 

INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)

#else

int main(int argc, char **argv)

#endif

{

    // Create application object

    TutorialApplication app;

 

    try {

        app.go();

    } catch(Exception& e) {

#if OGRE_PLATFORM == PLATFORM_WIN32 || OGRE_PLATFORM == OGRE_PLATFORM_WIN32

        MessageBox(NULL, e.getFullDescription().c_str(), "An exception has occurred!", MB_OK | MB_ICONERROR | MB_TASKMODAL);

#else

        fprintf(stderr, "An exception has occurred: %s\n",

                e.getFullDescription().c_str());

#endif

    }

 

    return 0;

}

만약 오우거SDK Windows 에서 사용한다면 "[OgreSDK_DIRECTORY]\samples\include" 디렉토리 (ExampleApplication.h 파일이 있는곳) include 가능하도록 프로젝트에 추가해 주세요. 만약 오우거엔진 소스를 직접 사용하신다면 [OgreSource_DIRECTORY]\Samples\Common\include" 추가해 주세요. 다음 진행을 위해서 컴파일이 에러없이 되도록 해두세요. 그러나 실행은 하지마세요! 나중에 코드에 추가할 계획입니다. 만약 컴파일에 문제가 생긴다면 Wiki 페이지에서 컴파일러별 설정 정보를 찾아보시고 문제가 지속된다면 Help 포럼에 문의하세요.

프로그램이 동작되면 WASD 키로 움직이고 마우스로 주변을 둘러보는 기능을 합니다. ESC 키는 종료키 입니다.  


: