Кіріспе

Irrlicht (неміс тілінде оқылады) – C++ тілінде жазылған ашық кодты ойын қозғалтқышы. Ол платформааралық, ресми түрде Windows, macOS, Linux және Windows CE жүйелерінде жұмыс істейді. Ашық архитектурасының арқасында FreeBSD, Xbox (Irrlicht 1.8.1 нұсқасына дейін), PlayStation Portable, Symbian, iPhone, AmigaOS 4, Sailfish OS (QT/Qml қаптамасы арқылы) және Google Native Client сияқты басқа да жүйелерге портталған. Irrlicht кішкентай көлемімен, жаңа және ескі аппараттық құралдармен үйлесімділігімен, оңай оқытылатындығымен және жандаған достар қоғамымен танымал. AutoIt, C++Builder, FreeBASIC, GameMaker Language, Java, Lua, .NET, Object Pascal (Delphi), Perl, Python және Ruby тілдері үшін ресми емес байланыстар бар, бірақ олардың көпшілігі бес жылдан астам уақыт бойы жаңартылмаған. Irrlicht-тің жасалуы 2003 жылы бір дамытушы, Николаус Гебхардт бастады. 2006 жылы Irrlicht 1.0 нұсқасы шыққаннан кейін команда 2011 жылға қарай он адамға дейін жетті, олардың көпшілігі бағдарламашылар еді. "Irrlicht" – неміс тілінде "самал" немесе "шашыраған от" деген мағына беретін сөз.

Ерекшеліктері

Irrlicht OpenGL, DirectX 8, 9 және ішкі бағдарламалық қамтамасыз ету растерлеушілер арқылы 3D рендерингті қолдайды. DirectX 8 нұсқасы 1.8.1-ден кейін қолдау көрсетілмейді, бұл Xbox қолдауының тоқтатылуына әкеледі. Сыртқы рендерлер және терезе жүйелері қарапайым интерфейстер арқылы қосылады, бұл Simple DirectMedia Layer (SDL) бейне драйверін және iPhone мен Symbian құрылғыларын қолдауға мүмкіндік береді. Қозғалтқыш стандартты материалдардың кітапханасымен бірге келеді, бұл пайдаланушының жабдығы озық әдістерді қолдай алмаған жағдайда материалдарды алмастыруға мүмкіндік береді. Жаңа материалдарды орындау уақытында қозғалтқышқа қосуға болады, бұл пайдаланушыларға қажет болған жағдайда өздері жасауға мүмкіндік береді. Ескі тұрақты функциялық құбыр материалдарынан басқа, бағдарламаланатын пиксел және вершина шадерлері (1.1–3.0 және 4.0 GLSL қолданып), ARB фрагмент және вершина бағдарламалары, HLSL, Cg және GLSL материалдары қолдау көрсетіледі. Irrlicht көптеген файл форматтарын қолдайды. Ол 3ds Max файлдарын, Quake 2 MD2 модельдерін, Wavefront obj нысандарын, Quake 3 bsp карталарын, Milkshape3D нысандарын және DirectX x файлдарын жүктейді және көрсетеді. Қосымша формат жүктеуіштері сыртқы плагиндер ретінде жазылған. Жарықтар, камералар және 3D нысандар сахналық түйіндер ағашы ретінде басқарылады, кездейсоқ топтастырылатын объектілер сахналық графқа біріктіріледі. Бұл түйіндер өздерінің мінез-құлқы үшін жауапты, бірақ оларды аниматорлар, бір-бірімен немесе пайдаланушылар қолмен басқара алады. Көптеген кіріктірілген түйін түрлері бар және оларды күрделі ішкі және сыртқы көріністерді жасау үшін бірге қолдануға болады. Жаңа түйіндерді жасау оңай және оларды орындау кезінде қосуға болады; қоғамдықтан көптеген қосымша түйін түрлері қол жетімді. Irrlicht-пен бірге келетін түйін түрлері: сыртқы рендеринг үшін жер бедері рендерлеушілер мен аспан күмбездері, ішкі рендеринг үшін екілік кеңістікті бөлу (BSP), сүйекке негізделген анимацияланған торлар, штамп көлеңкелері, билбордтар және бөлшектер жүйелері, су беттері және қарапайым геометриялық нысандар. 2D графикалық пайдаланушы интерфейсі (GUI) қол жетімді, көптеген басқару элементтерін қолдайды және пайдаланушылар өздерінің (немесе қоғамдық жасаған) бейімделген виджеттерін орындау кезінде қосу мүмкіндігіне ие. Irrlicht-тің ішкі оқиға жүйесі тышқан, пернетақта, джойстик және GUI оқиғаларын қосымша кітапханаларға сүйенбей қамтамасыз етеді. Файл жүйесіне қол жеткізу платформадан тәуелсіз файлдар мен қалталарға және ZIP архивтеріндегі файлдарға ашық қол жеткізуді қамтамасыз етеді. Басқа I/O мүмкіндіктеріне XML оқырман және жазу құралы, скриншоттарды түсіру, суреттер мен торларды өңдеу және оларды бірнеше түрлі файл форматтарында сақтау мүмкіндігі кіреді. Irrlicht қарапайым соқтығысуды анықтауды қолдайды, соның ішінде тышқанмен таңдауды, бірақ пайдаланушыларға бұл толыққанды физикалық қозғалтқыштың орнына емес екені ескертіледі.

Қозғалтқыштың ұзартулары

Irrlicht ағымдағы көріністі XML файлына жүктеу және сақтау мүмкіндігімен жасалған; бұл, қозғалтқыштың ашық кодты лицензиялық моделімен үйлесіп, әлемді құру процесін жеңілдету үшін Irrlicht үшін әртүрлі бағдарламашылар мен әзірлеушілерді әлем редакторларын жасауға ынталандырды. Мысалы, Николаус Гебхардт пен Ambiera компаниясының басқа мүшелері жасаған irrEdit әлем редакторын атауға болады. IrrEdit радиосипаттылық карта генераторымен және Squirrel скрипттерін қолданатын скрипттер интерфейсімен жабдықталған. Irrlicht өзі дыбысты қолдамайтындықтан, Ambiera сондай-ақ Irrlicht-ке ұқсас API-ға ие, бірақ тегін емес, меншік аудио кітапханасы irrKlang-ты әзірледі. Осы топ жасаған irrEdit, irrKlang мүмкіндігі қосылған компиляцияланған DLL-дермен пайдалану үшін irrEdit-те жасалған деңгейлерде дыбыстарды қолдауға мүмкіндік береді. Ambiera-ның өнімдерінің ішінде Irrlicht-тің XML талдаушысы irrXML де бар. Irrlicht үшін Nvidia PhysX, Bullet және Open Dynamics Engine сияқты көптеген физика кітапханаларына плагиндер мен орамалар жазылған. Қосымша кеңейтімдерді Irrlicht форумдарында және IrrExt жобасында табуға болады, ол Irrlicht-тің арнайы мақсаттағы қосымшалары үшін жасалған қосымша жоба. Форумдарда Deferred shading (кейінге қалдырылған көлеңкелеу) және Shadow mapping (көлеңкелік карталау) сияқты жаңа технологиялар да бар. Көптеген пайдаланушылар Compute Shaders (OpenGL 4.3) және Tessellation Shaders (Shader Model 5.0) сияқты кеңейтімдерді үлеседі.