Xtreme3D 4.x


Xtreme3D 4.x - это новая ветка Xtreme3D, созданная для современных 64-битных версий GameMaker.

На сегодняшний день это наиболее мощная и функциональная версия Xtreme3D, намного превосходящая все существовавшие ранее аналоги. А главное - это единственный активно разрабатывающийся 3D-движок для GameMaker. На основе Xtreme3D 4.x можно создавать игры с графикой уровня 2005-2010 гг. - теоретически, можно сделать что-то наподобие Doom 3, Half-Life 2, TES4: Oblivion и т.д. Дальнейшее развитие графических возможностей Xtreme3D затруднено, поскольку библиотека GLScene, на которой он основан, ограничена функциональностью OpenGL 2.0.

Xtreme3D 4.x является полностью автономным движком. Его можно использовать в любом языке, поддерживающем вызовы из DLL. Xtreme3D может рендерить в предоставленное средой окно, либо создать собственное окно, имея также функции для обработки пользовательского ввода.

Xtreme3D 4.x работает только под 64-битной Windows, другие платформы не поддерживаются.


Скачать Xtreme3D 4.1.0 SDK для GameMaker (64-bit)

Скачать Xtreme3D 4.1.0 SDK для Python 3 (64-bit)

Страница релиза на GitHub

Репозиторий с исходниками


Основные особенности:

  • Переход на 64-битную архитектуру. 32-битная архитектура больше не поддерживается
  • Использование Delphi 10+ и GLScene 2.2
  • Совместимость с современными версиями GameMaker
  • Все строки в движке принимаются только в 8-битном представлении (ASCII/UTF-8), поддержка других кодировок удалена
  • Большинство функций не изменились, все мелкие изменения API перечислены ниже
  • Реализованы привязки к Python 3 и C/C++
  • Обновлена и актуализирована справка, сделан новый дизайн HTML-страниц.

  • Изменения и нововведения:

  • Функция Update теперь называется EngineUpdate
  • Функция TrisRendered удалена
  • Функция ViewerRenderEx удалена
  • Новые функции ViewerBeginRender, ViewerClear, ViewerRenderObject, ViewerEndRender
  • Изменился смысл функции EngineSetMaxLights. Теперь она задает максимальное количество источников света, которые учитываются основной системой освещения и системой LightFX. По умолчанию это количество равно 8 (максимум для основной системы освещения). Если вы хотите использовать больше источников света для системы LightFX, нужно использовать эту функцию
  • Функция ViewerGetPickedObjectsList теперь работает с объектами-списками PickList, которые нужно создавать вручную
  • Новые функции PickListCreate, PickListClear, PickListGetCount, PickListGetHit
  • Функция ViewerRenderToFilePNG удалена - сохранение в PNG теперь поддерживается в ViewerRenderToFile
  • Поддерживаются новые константы для ViewerSetAntiAliasing: aa6x = 6, aa8x = 7, aa16x = 8, csa8x = 9, csa8xHQ = 10, csa16x = 11, csa16xHQ = 12
  • Функция CameraZoomAll теперь требует указания Viewer во втором параметре
  • Новая функция MaterialLibraryGetTextureByName
  • Функция SpriteNoZWrite удалена, используйте вместо нее MaterialSetDepthWrite
  • Функция MaterialCullFrontFaces удалена
  • Функция MaterialSetZWrite теперь называется MaterialSetDepthWrite
  • Новая функция MaterialSetDepthTest
  • Переделана система TextureEx у материалов. Удалены функции MaterialLoadTextureEx, MaterialSetTextureEx, MaterialSetTextureExFromLibrary, MaterialGenTextureEx, MaterialEnableTextureEx
  • Новая функция MaterialSetTextureFormatEx
  • Новая константа для MaterialSetTextureFormat: tfExtended = 12
  • Новая константа для MaterialSetTextureImageAlpha: tiaBottomRightPointColorTransparent = 9
  • Новые функции MaterialSetTextureCompareMode, MaterialSetTextureDepthCompareFunc
  • Удалены функции ObjectGetCollisionPosition, ObjectGetCollisionNormal - вместо них теперь EngineGetLastRaycastPosition, EngineGetLastRaycastNormal, которые делают то же самое
  • Функции Polygon удалены
  • Функции TTFontSetEncoding, TTFontLoadCodePage удалены
  • Шрифты TTFont теперь работают на базе SDL_ttf вместо Freetype
  • Функции TextRead, TextConvertANSIToUTF8 удалены
  • Функция OdeAddCone удалена
  • Новая функция BaseMeshBuildSilhouetteConnectivityData
  • Новая функция ActorSetReference
  • Новые функции ObjectNotifyChange, ObjectStructureChanged, ObjectClearStructureChanged
  • Новые функции ObjectListCreate, ObjectListAdd, ObjectListGetCount
  • Переделана система FBO. Объект FBO теперь является частью графа сцены. Удалены функции FBOSetViewer, FBORenderObject, FBORenderObjectEx, FBOSetOverrideMaterial, FBOSetColorTextureFormat. Новые функции FBOSetActive, FBOSetAspect, FBOSetPickableTarget, FBOSetSize, FBOSetRootObject, FBOSetBackgroundColor, FBOSetEnabledRenderBuffers, FBOSetSceneScaleFactor, FBOSetTargetVisibility, FBOSetMaterialLibrary, FBOSetColorTextureName, FBOSetDepthTextureName, FBOSetClearOptions, FBOSetStencilPrecision, FBOSetShadowMapMode
  • Переделаны тени ShadowMap. Удалены функции ShadowMapSetCaster, ShadowMapSetProjectionSize, ShadowMapSetZScale, ShadowMapSetZClippingPlanes, ShadowMapRender. Новые функции ShadowMapUpdate, ShadowMapSetViewer
  • Добавлен новый объект ShadowCamera, который используется в ShadowMap. Новые функции ShadowCameraCreate, ShadowCameraSetProjectionSize, ShadowCameraSetZClippingPlanes
  • Новые функции GLSLShaderForceDisableStencilTest, GLSLShaderSetOptions
  • Новые функции LoggerCreate, LoggerEnable, LoggerLog
  • Функция PtrToReal теперь называется PointerToReal

  • Авторы:

  • Gecko - основной разработчик