📜 ⬆️ ⬇️

Basics of Irrlicht Engine for newbies

I would like to talk about such an interesting thing as Irrlicht Engine. For a start, let's decide what it is all about. Irrlicht is a powerful 3D graphics engine written in C ++. This miracle is suitable for developing both simple 2D and 3D applications, and for games. Like any other engine, Irrlicht has a number of features, the main of which is platform independence, that is, the programmer who wrote the game for Windows does not need to rewrite a single line of code to transfer it to a device running Linux or OSX.

Installation


Since this lesson is designed for beginners, we will use the simplest way to install the engine. For this we need code :: blocks. Irrlich is not very good friends with the latest versions of the block, so download from here and install the verified version 10.05. Code :: blocks already contains a compiler in its installer, so you don’t need to download it separately. Next, create a folder on your hard disk where our projects will be stored (I have “D: / IrrlichtDev”). Now download the latest version of Irrlicht from here and unzip it into the directory we created.

Project creation


We have everything we need, it’s time to create a project. Open the Code: blocks, then “File> New> Project”, then select “Irrlicht project”. Following the instructions set the name of our project, select the directory for storage, specify the “GNU GCC Compiler” as a compiler and, if requested, tell us where the engine is.

Everything, the project is created, the minimum code is generated automatically, but if you try to compile it, we get 2 errors in response. It's okay, just in the 70 line we replace dimension2d dimension2du . , , .

, Irrlicht. ( , ) :

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }

, . :

IMeshSceneNode * wall = smgr->addCubeSceneNode();

, , . , .
, , :

wall->setMaterialFlag(EMF_LIGHTING,false);

.
, , . :

wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .

.
, ? :

wall->setRotation(wall->getRotation() + vector3df(0,1,0));

, .

, .
"i", , 256, . R, G B . , while :

while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }

, .
:

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }
dimension2d dimension2du . , , .

, Irrlicht. ( , ) :

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }

, . :

IMeshSceneNode * wall = smgr->addCubeSceneNode();

, , . , .
, , :

wall->setMaterialFlag(EMF_LIGHTING,false);

.
, , . :

wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .

.
, ? :

wall->setRotation(wall->getRotation() + vector3df(0,1,0));

, .

, .
"i", , 256, . R, G B . , while :

while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }

, .
:

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }
 dimension2d  dimension2du . ,    ,     . 

, Irrlicht. ( , ) :

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }

, . :

IMeshSceneNode * wall = smgr->addCubeSceneNode();

, , . , .
, , :

wall->setMaterialFlag(EMF_LIGHTING,false);

.
, , . :

wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .

.
, ? :

wall->setRotation(wall->getRotation() + vector3df(0,1,0));

, .

, .
"i", , 256, . R, G B . , while :

while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }

, .
:

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }
dimension2d dimension2du . , , .

, Irrlicht. ( , ) :

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }

, . :

IMeshSceneNode * wall = smgr->addCubeSceneNode();

, , . , .
, , :

wall->setMaterialFlag(EMF_LIGHTING,false);

.
, , . :

wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .

.
, ? :

wall->setRotation(wall->getRotation() + vector3df(0,1,0));

, .

, .
"i", , 256, . R, G B . , while :

while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }

, .
:

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }
 dimension2d  dimension2du . ,    ,     . 

, Irrlicht. ( , ) :

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }

, . :

IMeshSceneNode * wall = smgr->addCubeSceneNode();

, , . , .
, , :

wall->setMaterialFlag(EMF_LIGHTING,false);

.
, , . :

wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .

.
, ? :

wall->setRotation(wall->getRotation() + vector3df(0,1,0));

, .

, .
"i", , 256, . R, G B . , while :

while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }

, .
:

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }
dimension2d dimension2du . , , .

, Irrlicht. ( , ) :

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }

, . :

IMeshSceneNode * wall = smgr->addCubeSceneNode();

, , . , .
, , :

wall->setMaterialFlag(EMF_LIGHTING,false);

.
, , . :

wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .

.
, ? :

wall->setRotation(wall->getRotation() + vector3df(0,1,0));

, .

, .
"i", , 256, . R, G B . , while :

while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }

, .
:

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }
 dimension2d  dimension2du . ,    ,     . 

, Irrlicht. ( , ) :

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }

, . :

IMeshSceneNode * wall = smgr->addCubeSceneNode();

, , . , .
, , :

wall->setMaterialFlag(EMF_LIGHTING,false);

.
, , . :

wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .

.
, ? :

wall->setRotation(wall->getRotation() + vector3df(0,1,0));

, .

, .
"i", , 256, . R, G B . , while :

while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }

, .
:

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }
dimension2d dimension2du . , , .

, Irrlicht. ( , ) :

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }

, . :

IMeshSceneNode * wall = smgr->addCubeSceneNode();

, , . , .
, , :

wall->setMaterialFlag(EMF_LIGHTING,false);

.
, , . :

wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .

.
, ? :

wall->setRotation(wall->getRotation() + vector3df(0,1,0));

, .

, .
"i", , 256, . R, G B . , while :

while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }

, .
:

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }
 dimension2d  dimension2du . ,    ,     . 

, Irrlicht. ( , ) :

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }

, . :

IMeshSceneNode * wall = smgr->addCubeSceneNode();

, , . , .
, , :

wall->setMaterialFlag(EMF_LIGHTING,false);

.
, , . :

wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .

.
, ? :

wall->setRotation(wall->getRotation() + vector3df(0,1,0));

, .

, .
"i", , 256, . R, G B . , while :

while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }

, .
:

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }
dimension2d dimension2du . , , .

, Irrlicht. ( , ) :

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }

, . :

IMeshSceneNode * wall = smgr->addCubeSceneNode();

, , . , .
, , :

wall->setMaterialFlag(EMF_LIGHTING,false);

.
, , . :

wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .

.
, ? :

wall->setRotation(wall->getRotation() + vector3df(0,1,0));

, .

, .
"i", , 256, . R, G B . , while :

while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }

, .
:

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }
 dimension2d  dimension2du . ,    ,     . 

, Irrlicht. ( , ) :

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }

, . :

IMeshSceneNode * wall = smgr->addCubeSceneNode();

, , . , .
, , :

wall->setMaterialFlag(EMF_LIGHTING,false);

.
, , . :

wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .

.
, ? :

wall->setRotation(wall->getRotation() + vector3df(0,1,0));

, .

, .
"i", , 256, . R, G B . , while :

while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }

, .
:

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }
dimension2d dimension2du . , , .

, Irrlicht. ( , ) :

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }

, . :

IMeshSceneNode * wall = smgr->addCubeSceneNode();

, , . , .
, , :

wall->setMaterialFlag(EMF_LIGHTING,false);

.
, , . :

wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .

.
, ? :

wall->setRotation(wall->getRotation() + vector3df(0,1,0));

, .

, .
"i", , 256, . R, G B . , while :

while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }

, .
:

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }
 dimension2d  dimension2du . ,    ,     . 

, Irrlicht. ( , ) :

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }

, . :

IMeshSceneNode * wall = smgr->addCubeSceneNode();

, , . , .
, , :

wall->setMaterialFlag(EMF_LIGHTING,false);

.
, , . :

wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .

.
, ? :

wall->setRotation(wall->getRotation() + vector3df(0,1,0));

, .

, .
"i", , 256, . R, G B . , while :

while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }

, .
:

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }
dimension2d dimension2du . , , .

, Irrlicht. ( , ) :

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }

, . :

IMeshSceneNode * wall = smgr->addCubeSceneNode();

, , . , .
, , :

wall->setMaterialFlag(EMF_LIGHTING,false);

.
, , . :

wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .

.
, ? :

wall->setRotation(wall->getRotation() + vector3df(0,1,0));

, .

, .
"i", , 256, . R, G B . , while :

while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }

, .
:

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }
 dimension2d  dimension2du . ,    ,     . 

, Irrlicht. ( , ) :

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }

, . :

IMeshSceneNode * wall = smgr->addCubeSceneNode();

, , . , .
, , :

wall->setMaterialFlag(EMF_LIGHTING,false);

.
, , . :

wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .

.
, ? :

wall->setRotation(wall->getRotation() + vector3df(0,1,0));

, .

, .
"i", , 256, . R, G B . , while :

while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }

, .
:

#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }

')

Source: https://habr.com/ru/post/191994/


All Articles