일리히트엔진 해부학 3강. 버텍스의 란

|

0. 그냥 일단 변명부터 ㅜ.ㅜ;

안녕하세요 마감일을 지키려했지만 결국 실패한듯하네요. 원래는 21일날 올리려한 글이지만 6일로 미뤄서 오픈합니다.
작년 12월23일부터 4주간 매일 8시간 html5 수업을 강행군을 했더니 몸과 마음이 모두 지친거같네요 ㅜ.ㅜ; 

이번 시간에는 화면에 간단한 도형을 띄워보는 예제를 다뤄가면서 일리히트의 기본 랜더링 파이프라인 대해서 알아보겠습니다.

1. 디바이스 생성하기

일단 일리히트엔진의 시동을 걸기위해서 다음과 같이 한줄의 코드가 필요합니다.

    irr::IrrlichtDevice *pDevice = irr::createDevice(irr::video::EDT_OPENGL);


방금 여러분은 오픈지엘 랜더러를 사용하는 디바이스(게임기 비스므리?)를 생성한것입니다.
자~ 그럼 일단 시동을 걸어야하는데 일단 연료를 주입할 먼가가있어야 하겟죠?
연료 주입구라고 할수 있는 비디오드라이버 객체를 얻는것입니다.

irr::video::IVideoDriver *pVideo = pDevice->getVideoDriver();

pVideo 이것이 바로 연료 주입구 입니다.

게임엔진을 차에 비유해서 굳이 억지로 설명하자면 일단 엔진을 돌리기위해선 연료가 필요한데 그게 바로 그래픽 데이터들입니다. 엔진을 그것을 먹고 결과를 출력하죠 자동차엔진이 화석연료를 태워 스피드라는 결과 물을 출력하듯이요.

여기서 우리의 약간의 딜래마가 있습니다. 엔진의 성능이라는 이슈인데요.

좀허접한 엔진에 최고급 항공유를 넣은것과 완전 최고급엔진에 허접한 유사 휴발유를 쓰는 것인데요.

성능이 좋은 엔진이라면 유사휘발유를 먹고도 아주 좋은 스피드를 내길 바래야겟죠. ^^?
머 아님말구요.

그러나 현실은 좀 엔진이 허접하더라도 연료가 우수(폭팔성강한)하면 결과가 거의 무조건 일반인들(스피드라는 것..)이 보기엔 만족 스럽다는겁니다.(이건 자동차 애기입니다. 게임엔진은 알아서 생각하시고요^^) 물론 나중에 엔진이 터지고말겠지만 머 당장은 그럴듯하죠.

그리고 또 어떤게 성능일것이냐 하는 문제도 있습니다. 즉 얼마나 폭발성 강한 연료를 잘소비하느냐에 관점을 둔 엔진이 있겠고 얼마나 연료를 아껴가며 연비를 최대한 높이려는 관점의 엔진이있을 수 있습니다.
게임엔진도 비슷합니다. 상용엔진은 전자의 경구겠고 일리히트엔진처럼 오픈소스 공개엔진의 경우엔 후자에 좀 가깝습니다. 전자에 가까운 공개엔진도있고 후자에 가까운 사용엔진도 물론있습니다. 그냥 그런 경향이 있다는 것이라 생각하시면 될듯합니다.




 
And