====== Xtreme3D ====== **Xtreme3D** - внешний 3D-[[движок]] для [[Game Maker]] (DLL), основанный на библиотеке [[GLScene]]. Написан на Delphi. Ранние версии были несвободными, ветка 3.x распространяется по лицензии [[https://ru.wikipedia.org/wiki/Mozilla_Public_License|Mozilla Public License]]. ===== История ===== История Xtreme3D началась в 2003 году. Изначальный автор движка - [[Xception]]. Возможности первой стабильной версии Xtreme3D (**0.9**) были довольно скромными: поддерживались только анимированные модели [[MD2]] и [[MD3]], статичные [[3DS]], [[MS3D]] и [[OBJ]], встроенные примитивы, спрайты, двумерный и трехмерный текст, lensflare, частицы и небесный купол. Основной целью проекта было создание движка для трехмерной RPG наподобие Dungeon Master. И, хотя автор движка изначально не планировал дальнейшее развитие Xtreme3D, в более поздних версиях функционал движка быстро перерос потребности конкретного жанра. Так, в версии **1.7** (2004 г.) появилась динамическая вода. Однако куда более серьезным прорывом стала версия **2.0** (2006 г.): тотальный пересмотр API, поддержка видов, библиотек материалов и карт освещения, динамический cubemapping, поддержка новых форматов моделей, рендеринг в текстуру, загрузка ресурсов из сжатого архива, аппаратные [[шейдер|шейдеры]] (bump mapping, cel shading), мультитекстурирование, [[octree]] и [[quadtree]], поддержка [[DDS]], а также, что особенно важно, интегрированный физический движок [[ODE|Open Dynamics Engine (ODE)]]. Последний релиз от Xception (**2.0.2.0**), помимо многочисленных багфиксов, содержал два важных нововведения: отрисовщик ландшафта и движок проверки столкновений [[DCE]]. Функциональность движка была на уровне коммерческих игр 1997-2003 годов - Xtreme3D 2.0 позволял создавать что-то похожее в плане графики на Quake 2-3, Half-Life, GTA 3, The Elder Scrolls: Morrowind и т.д. - все, что относится к "дошейдерной" эпохе. К сожалению, после этого Xception забросил свою разработку. С 2009 года в русскоязычном сообществе Xtreme3D постоянно витала идея воссоздать движок с нуля, исправить баги и добавить недостающую функциональность - учитывая, что Xtreme3D является весьма тонкой оберткой над GLScene, эта задача казалась несложной и чисто технической. Однако возникли непредвиденные проблемы, и дело затянулось. В итоге, проект, начавшийся в 2009 году и переживший долгий период стагнации и несколько вспышек активности, был завершен лишь в 2016-м. Так появился Xtreme3D **3.0**. {{ ::parallax.jpg?300|}} Эта версия Xtreme3D, как и оригинал, написана на Delphi с использованием [[GLScene]]. В основе Xtreme3D 3.0 лежит форк GLScene 1.0.0.0714. Из главных новшеств Xtreme3D 3.0 стоит отметить поддержку шейдеров GLSL, тени shadow mapping, антиалиасинг, поддержку форматов [[LOD]] и [[B3D]], многочисленные улучшения в физическом движке ODE. В последующие годы вышло несколько обновлений в ветке 3.0, включающих множество интересных нововведений, таких как [[FBO]], новая система освещения, улучшенный API для объектов [[Freeform]] и экранных объектов, TrueType-шрифты и текст в Юникоде, Ragdoll в ODE, новый физический движок [[Kraft]], физика мягких тел, прокси-актеры, новые инструменты для работы с ландшафтами, а также функции для создания окон и управления ими. Последняя на данный момент стабильная версия - **3.9.2**. С 2022 года сообществом ведется разработка [[Xtreme3D 4.0]]. Разработчики Xtreme3D 3.x - [[Gecko]], [[FireRun]], [[Rutraple]] aka Hacker, [[Ghost]], [[gadmaker]]. ===== Возможности ===== Создание объектов-примитивов, загрузка моделей форматов [[3DS]], [[OBJ]], [[FBX]] (ASCII), [[LWO]], [[ASE]], [[BSP]], [[MS3D]], [[B3D]], [[MD2]], [[MD3]], [[MD5]], [[MDC]], [[SMD]], [[X]], [[LOD]], [[CSM]], [[DXS]], [[OCT]], [[NMF]], [[WRL]], [[PLY]], [[GTS]], [[TIN]], [[STL]], [[GLSM]], вершинная и скелетная анимация, освещение, туман, скайбоксы, процедурный небесный купол, отрисовка 2D-графики и текста, дискретный LOD, мультитекстурирование, шейдеры на [[GLSL]], [[cel shading]], [[normal mapping]], [[parallax mapping]], отрисовка контуров, [[теневой объем|теневые объемы]], [[теневая карта|теневые карты]], ландшафты, частицы, RTT, антиалиасинг, динамическая вода с волнами, зеркальные отражения, процедурные деревья, отрисовка кривых, встроенные физические движки [[ODE]] и [[Kraft]], симулятор мягких тел, [[octree]] и [[quadtree]], функции для создания окон и чтения пользовательского ввода. ===== Преимущества и недостатки ===== По сравнению с другими движками для GM, Xtreme3D отличает легковесность (основная библиотека занимает всего 2 Мб), низкие системные требования (большая часть функций работает на видеокартах эпохи OpenGL 1.x-2.0), простая для понимания архитектура. К недостаткам (актуальным для версии 3.9.2) можно отнести отсутствие поддержки x64, отсутствие универсальной системы частиц, теневых карт для точечных источников света, устаревший графический конвейер с фиксированным количеством источников света, отсутствие возможности воспроизводить видео. ===== Ссылки ===== * [[https://web.archive.org/web/20080614222649/http://home.tiscalinet.de/xception|Сайт оригинального Xtreme3D (заархивирован)]] * [[https://xtreme3d.ru|Сайт Xtreme3D 3.x]] * [[https://xtreme3d.ru/forum|Русскоязычный форум]] * [[https://github.com/xtreme3d/xtreme3d|Xtreme3D на GitHub]] ===== См. также ===== [[Ultimate3D]], [[GMIrrlicht]], [[GMOgre]], [[GMHorde3D]]