참.. 네이버카페에 번역강좌올려주시는분 참 고마울따름
여튼 이번에 하면서 삼각형 좌표입히기가 역시도..
난해하진않지만 성가셨다 ㅋ
#include <windows.h>
#include <irrlicht.h>
#pragma comment(lib, "Irrlicht.lib")
//네임스페이스를 미리지정해서 매번 긴 이름을 기술하는것을 피한다.
using namespace irr;
using namespace core;
using namespace video;
using namespace scene;
void makeScene(IVideoDriver *driver)
{
matrix4 mat; //d3d의 MATRIX와 같다.
SMaterial Material;
Material.Lighting = false; //라이트는 없이간다.
driver->setMaterial(Material); //재질값을 넣주는거겟지.
//삼각형작성
u16 triList[] = {0,1,2};
//이 S3DVertex구조체는 xyz좌표, nxnynz의 법선값,컬러,텍스쳐좌표가 들어있다.
S3DVertex triVer[3];
triVer[0] = S3DVertex(0,1,0, 0,0,0, SColor(1,255,0,0), 0,0);
triVer[1] = S3DVertex(1,-1,0, 0,0,0, SColor(1,255,0,0), 0,0);
triVer[2] = S3DVertex(-1,-1,0, 0,0,0, SColor(1,255,0,0), 0,0);
mat.setTranslation(vector3df(-2,0,0));
driver->setTransform(ETS_WORLD, mat); //윌드에 반영
driver->drawIndexedTriangleList(triVer, 3, triList, 1);
}
int main()
{
// d3d와 마찬가지로 최초 디바이스 설정
// 어떤 드라이브? 윈도우사이즈? 풀스크린 on off?,
IrrlichtDevice *device = createDevice(EDT_OPENGL, dimension2d<s32>(640,480),16, false, false, false, false);
//디바이스타입,윈도사이즈, bit심도, 풀스크린?, 수직동기?(풀스크린때만), 이벤트받을 오브젝트?
// 이 드라이브라는것을 그림그리는 화가로 생각한다. 화가가없으면 그림그리는것도 불가능
IVideoDriver *driver = device->getVideoDriver();
//이건 윈도우 타이틀 설정이라고 보면 되겠다.
device->setWindowCaption(L"Hello Irrlicht");
//신매니저를 설정하고 카메라를 추가한다 (보기위해서)
ISceneManager* smgr = device->getSceneManager();
smgr->addCameraSceneNode(0, vector3df(0,0,-5), vector3df(0,0,0));
//카메라의 부모?, 카메라위치, 카메라보는위치, 카메라의 아이디(생략)
//run은 윈도가 실행해 있는 동안이라 생각하고
while(device->run())
{
//d3d처럼 begin과 end사이에서 렌더해주면 되겠다. 버퍼클리어, z버퍼를 클리어?, 바탕색지정
driver->beginScene(true, true, SColor(0,0,0,255));
makeScene(driver);
smgr->drawAll();
driver->endScene();
}
//뒷정리
device->drop();
return 0;
}
'프로그래밍 > 일리히트' 카테고리의 다른 글
배경을 위해 띄워주는 텍스쳐정도? (0) | 2009.12.25 |
---|---|
중간 영상1 (0) | 2009.12.19 |
일리히트 콘솔창 없애기 (0) | 2009.11.23 |
Irrlicht] 짬나는 시간동안 했던것들 10%단계에서 중간점검 (0) | 2009.11.02 |
1. 윈도우 띄우기 (0) | 2009.09.03 |