일리히트 엔진 시작하기

Posted 2007/09/15 21:39 by 수달


원문 : http://irrlicht.sourceforge.net/docu/index.html


일리히트 엔진

- 소개

Irrlicht Engine API 문서에 온걸 환영한다. 여기 당신은 Irrlicht Engine 엔진과 함께 프로그램을 개발하기 위해
필요할 많은 정보를 찾을 것이다. 만약 어떻게 시작하는지 튜토리얼을 찾을려면, 당신은 irrlicht.sourceforge.net 에서
이곳의 홈페이지 또는 examples 디렉토리의 SDK에서 찾을수 있을것이다.

Irrlicht Engine 은 3d엔진을 쉽게 사용할수 있도록 의도되어서,이 문서는 그중에서 중요하다. 만약 당신이
다른 질문이나 제안이 있다면, 엔진의 개발자에게 메일을 보내라, Nikolaus Gebhardt (niko (at) irrlicht3d.org).


- 링크들

Namespaces: 문서를 읽기 시작하기 아주 좋은 곳
Class list: 설명이 포함된 모든 클래스들의 리스트
Class members: 기능이 생각나지 않을때 찾을수 있는 좋은곳


- 짧은 예제

간단한 프로그램, 엔진 시작하기, Quake 2의 에니메이팅된 모델파일과 일치하는 텍스쳐 로딩하기,
블루 배경화면의 앞에 그것을 애니메이팅하고 출력하는것, 유저가 제어할수 있는 3d 카메라를 위치시키는것은
다음에 설명하는 코드처럼 하면 될것이다. 나는 이 예제가 엔진의 사용을 아주 잘 보여준다고 생각한다.

------------------------------------------------------------------------------------------------
#include <irrlicht.h>
using namespace irr;

int main()
{
// start up the engine (엔진을 시작한다)
IrrlichtDevice *device = createDevice(video::EDT_DIRECT3D8,
core::dimension2d<s32>(640,480));

video::IVideoDriver* driver = device->getVideoDriver();
scene::ISceneManager* scenemgr = device->getSceneManager();

device->setWindowCaption(L"Hello World!");

// load and show quake2 .md2 model (quake2 .md2 모델을 로딩하고 보여준다)
scene::ISceneNode* node = scenemgr->addAnimatedMeshSceneNode(
scenemgr->getMesh("quake2model.md2"));

// if everything worked, add a texture and disable lighting
// (만약 모든것이 다 되었다면, 텍스쳐를 추가하고 라이팅을 해제한다)
if (node)
{
node->setMaterialTexture(0, driver->getTexture("texture.bmp"));
node->setMaterialFlag(video::EMF_LIGHTING, false);
}

// add a first person shooter style user controlled camera
// (FPS 스타일 유저조종카메라를 추가한다)
scenemgr->addCameraSceneNodeFPS();

// draw everything (모든것을 그린다)
while(device->run() && driver)
{
driver->beginScene(true, true, video::SColor(255,0,0,255));
scenemgr->drawAll();
driver->endScene();
}

// delete device (장치를 지운다)
device->drop();
return 0;
}

---------------------------------------------------------------------------------

Irrlicht 는 많은 파일포맷들을 자동적으로 로드할수 있고, 상세한 리스트를 위해
irr::scene::ISceneManager::getMesh() 를 볼수 있다.
그래서 만약 당신이 단순한 블루 스크린 배경을 cool Quake 3 Map으로 바꾸고 싶으면,
옥트리에의해 최적화되고, while 루프전 어딘가에 이 코드를 삽입하면 된다.

-----------------------------------------------------------------------
// add .pk3 archive to the file system (.pk3 파일을 파일시스템에 추가한다)
device->getFileSystem()->addZipFileArchive("quake3map.pk3");

// load .bsp file and show it using an octtree
// (.bsp file 을 읽고 옥트리를 사용하여 그것을 보여준다)
scenemgr->addOctTreeSceneNode(
scenemgr->getMesh("quake3map.bsp"));
--------------------------------------------------------------------------

당신이 볼수 있었던 것처럼, 엔진은 네임스페이스들을 사용한다. 엔진의 모든것은 네임스페이스 'irr'에 위치된지만,
또 5개의 서브 네임스페이스들이 있다. 당신은 namespaces page 에서 모든 네임스페이스들의 리스트를 찾을수 있다.
이것은 또 문서를 읽어서 시작하기에 좋은 곳이다. 만약 당신이 항상 네임스페이스 이름들을 쓰는것을 원하지 않는다면
밑의 코드처럼 모든 네임스페이스들을 사용하면 된다.
--------------------------------------------------------------------------
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
--------------------------------------------------------------------------

엔진이 할수 있는게 더 많이 있지만, 나는 이것이 엔진의 기본적인 짧은 개요가 되기를 희망한다.
더 많은 예제들을 원한다면, SDK의 examples directory 안을 보면된다.

'기본 카테고리' 카테고리의 다른 글

인생 반전 연습  (0) 2009.03.20
irrEdit 는  (0) 2009.03.19
Irricht엔진튜토리얼 15. LoadIrrFile  (0) 2009.03.19
Irricht엔진튜토리얼 14. Win32Window  (0) 2009.03.19
Irricht엔진튜토리얼 13. RenderToTexture (+06.08.04)  (0) 2009.03.19

+ Recent posts