Irrlicht

Материал из База знаний проекта Russian Fedora

Перейти к: навигация, поиск

Irrlicht (Irrlicht Engine) — трёхмерный графический движок, который является бесплатным свободным программным продуктом и распространяется на условиях лицензии zlib.

«Irrlicht» использует возможности OpenGL, DirectX и нескольких собственных рендереров. Пользователю предоставляются различные функциональные возможности по загрузке и управлению трёхмерными (3D) объектами (сцены, модели и т. п.), немногими спецэффектами и графическим интерфейсом пользователя. Рекомендуется для ознакомления с процессом разработки игр (Gamedev — «игростроительная индустрия»; «разработка игр») и создания несложных игр и демосцен (Irrlicht поддерживает форматы популярных игр и движков, в частности модели quake 2, quake 3, карты уровней и др.). Не требует подключения сторонних модулей для реализации высокоуровневых функций (есть простейшая физика, GUI (графический интерфейс пользователя) и т. д.). Существует три официальных дополнения для Irrlicht: IrrKlang (аудиобиблиотека), IrrXML (загрузка и обработка XML-файлов), IrrEdit (редактор сцен). Для использования расширенных функций физики существует физический движок ChronoEngine (по причине того, что в Irrlicht встроена примитивная физическая система).

Одна из важных особенностей Irrlicht его кроссплатформенность — то есть способность работать на различных платформах. Платформонезависимая прослойка обеспечивает лёгкую портируемость (то есть перенос движка) на различные не поддерживаемые официально платформы, в частности существуют порты под android, iPhone и пр.


Установка движка Irrlicht

Устанавливаем необходимые библиотеки

sudo dnf install xorg-x11-server-devel xorg-x11-proto-devel mesa-libGL-devel mesa-libGLU-devel irrlicht irrlicht-devel



Запускаем Codeblocks и создаем новы пустой проект

кликаем правой клавишей на проекте и выбираем Build options

далее по вкладкам

Linker Settings

Irrlicht GL Xxf86vm  Xext X11 

Search Directories/Linker

/usr/lib64

Search Directories/Compiler

/usr/include/irrlicht и /usr/lib64


все, теперь создаем файл main.cpp и пробуем какой нибудь пример

#include <irrlicht.h>
#include <driverChoice.h>

using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;

extern int main(int argc, char** argv)
{

       video::E_DRIVER_TYPE driverType=driverChoiceConsole();
       if (driverType==video::EDT_COUNT)  return 1;
       
       IrrlichtDevice *device = createDevice(driverType, core::dimension2d< u32 >(640, 480), 16, false);
       if (device == 0) return 1;
       
       IVideoDriver* driver = device->getVideoDriver();
       ISceneManager* smgr = device->getSceneManager();

       while(device->run())
       if (device->isWindowActive())
       {
               
               driver->beginScene(true, true, SColor(0,3,243,250));
               smgr->drawAll();
               driver->endScene();
       }

       device->drop();

       return 0;
}