Версия 4.0 наконец-то готова! 🎉
Напомню основные особенности:
Скачать Xtreme3D 4.0.0 SDK для GameMaker
Страница релиза на GitHub
Страница Xtreme3D 4.0 на сайте
В SDK три примера:
1. Анимация актеров + BumpShader + простые тени + физика Kraft + рейкаст
2. Каскадные тени
3. Вода, частично портированная с Xtreme3D 3.9 (пока только с отражением, без преломлений).
Изменения и нововведения в API xtreme3d.dll:
Напомню основные особенности:
- Переход движка на 64 бита. 32-битная архитектура больше не поддерживается
- Переход на современный Delphi и GLScene 2.2 (как обычно, собственный форк с доработкой напильником
)
- Совместимость с современными 64-битными версиями GameMaker
- Совместимость с Python 3. Также, по просьбам пользователей, актуализировал привязку для C/C++, которая много лет не развивалась - вскоре подготовлю соответствующие SDK
- Большинство функций не изменились, все изменения API перечислены ниже
- Обновлена и актуализирована справка, исправлена куча ошибок, сделан новый дизайн HTML-страниц. Некоторые функции пока остаются незадокументированными, но надеюсь, что временно. Новые уроки пока не добавлял, но не исключено, что найду время и для этого. Из справки удален глоссарий, он будет полностью перенесен в вики.
Скачать Xtreme3D 4.0.0 SDK для GameMaker
Страница релиза на GitHub
Страница Xtreme3D 4.0 на сайте
В SDK три примера:
1. Анимация актеров + BumpShader + простые тени + физика Kraft + рейкаст
2. Каскадные тени
3. Вода, частично портированная с Xtreme3D 3.9 (пока только с отражением, без преломлений).
![[Изображение: animation.jpg]](https://xtreme3d.ru/gallery/original/animation.jpg)
![[Изображение: shadows.jpg]](https://xtreme3d.ru/gallery/original/shadows.jpg)
![[Изображение: water3.jpg]](https://xtreme3d.ru/gallery/original/water3.jpg)
Изменения и нововведения в API xtreme3d.dll:
- Функция 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 у материалов
- Новая функция MaterialSetTextureFormatEx со множеством констант расширенных форматов (подробности см. в справке)
- Новая константа для MaterialSetTextureFormat: tfExtended = 12
- Новая константа для MaterialSetTextureImageAlpha: tiaBottomRightPointColorTransparent = 9
- Новые функции MaterialSetTextureCompareMode, MaterialSetTextureDepthCompareFunc
- Удалены функции ObjectGetCollisionPosition, ObjectGetCollisionNormal - вместо них теперь EngineGetLastRaycastPosition, EngineGetLastRaycastNormal, которые делают то же самое
- Функции Polygon удалены
- Функции TTFontSetEncoding, TTFontLoadCodePage удалены. Шрифты TTFont теперь работают на базе SDL_ttf вместо чистого Freetype
- Функции TextRead, TextConvertANSIToUTF8 удалены. Все строки в движке теперь принимаются только в 8-битном представлении (ASCII / UTF-8), другие кодировки не поддерживаются
- Функция OdeAddCone удалена
- Новая функция BaseMeshBuildSilhouetteConnectivityData
- Новая функция ActorSetReference
- Новые функции ObjectNotifyChange, ObjectStructureChanged, ObjectClearStructureChanged
- Новые функции ObjectListCreate, ObjectListAdd, ObjectListGetCount
- Переделана система FBO. Объект FBO теперь является частью графа сцены, подробности см. в справке
- Переделаны тени ShadowMap. Удалены функции ShadowMapSetCaster, ShadowMapSetProjectionSize, ShadowMapSetZScale, ShadowMapSetZClippingPlanes, ShadowMapRender. Новые функции ShadowMapUpdate, ShadowMapSetViewer
- Добавлен новый объект ShadowCamera, который используется в ShadowMap. Новые функции ShadowCameraCreate, ShadowCameraSetProjectionSize, ShadowCameraSetZClippingPlanes
- Новые функции GLSLShaderForceDisableStencilTest, GLSLShaderSetOptions
- Добавлены функции логгера: LoggerCreate, LoggerEnable, LoggerLog
- Функция PtrToReal теперь называется PointerToReal