Xtreme3D 4.0


Xtreme3D 4.0 - это новая версия Xtreme3D, находящаяся в разработке с 2022 года. На данный момент она находится на финальной стадии разработки, и уже доступна юзабельная альфа-версия.

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

  • Переход на 64-битную архитектуру. 32-битная архитектура больше не поддерживается
  • Использование Delphi 11 и GLScene 2.2
  • Совместимость с современными версиями GameMaker Studio 2
  • Все строки в движке принимаются только в UTF-8, поддержка других кодировок удалена
  • Большинство функций не изменились, все мелкие изменения API перечислены ниже.
  • Проект осуществляется в два этапа. На первом были реализованы базовые функции-врапперы, основанные на встроенных классах GLScene, и выпущена первая альфа-версия. На втором были реализованы аналоги тех возможностей, для которых пришлось добавлять новые классы и менять методы встроенных. По итогам II этапа была выпущена вторая альфа-версия, на основе которой готовится к выпуску релиз Xtreme3D 4.0.0. Затем планируется версия 4.1, в которой будут добавлены врапперы некоторых новых классов GLScene 2.

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

  • Функция Update теперь называется EngineUpdate
  • Функция TrisRendered удалена
  • Функция ViewerRenderEx удалена
  • Новая функция ViewerRenderObject
  • Изменился смысл функции 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
  • Удалены функции 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
  • Переделаны тени ShadowMap. Удалены функции ShadowMapSetCaster, ShadowMapSetProjectionSize, ShadowMapSetZScale, ShadowMapSetZClippingPlanes, ShadowMapRender. Новые функции ShadowMapUpdate, ShadowMapSetViewer.
  • Добавлен новый объект ShadowCamera, который используется в ShadowMap. Новые функции ShadowCameraCreate, ShadowCameraSetProjectionSize, ShadowCameraSetZClippingPlanes
  • Новая функция GLSLShaderForceDisableStencilTest
  • Функция PtrToReal теперь называется PointerToReal
  • Авторы:

  • Gecko - основной разработчик
  • Скачать Xtreme3D 4.0.0 alpha2.

    Разработка ведется в ветке 4.0 репозитория на GitHub.

    Обсуждение проекта - в соответствующей теме форума.