Вы не вошли.
В этой теме я буду отписываться по прогрессу в разработке Xtreme3D 3.7. Можно высказывать идеи и пожелания.
Что уже готово:
+ Система LightFX для поддержки более 8 источников света на сцене
+ Интеграция физического движка Kraft
+ Выводятся сообщения об ошибке при загрузке моделей и текстур
+ Функция ObjectGetScale
+ ObjectDestroy работает для всех типов объектов Xtreme3D
+ Поддержка формата FBX для Freeform (пока без материалов)
+ Функция ViewerResetPerformanceMonitor
+ Функции ActorProxyObjectSetAnimationRange, ActorProxyObjectSetInterval
+ Дополнительные функции для работы с окнами (WindowSetIcon, WindowIsShowing)
+ Функции редактирования и сохранения BmpHDS (BmpHDSCreateEmpty, BmpHDSSetHeight, BmpHDSGetHeight, BmpHDSSave). Функция, возвращающая позицию пикселя BmpHDS в заданной точке на ландшафте (TerrainGetHDSPosition)
+ Функции для чтения и распаковки PAK-архивов (PakGetFileCount, PakGetFileName, PakExtract, PakExtractFile). Функция SetPakArchive теперь возвращает id PAK-файла, который необходим для вышеперечисленных функций. Также теперь поддерживаются сжатые PAK-архивы.
+ Функция HUDSpriteGetMouseOver для проверки, находится ли курсор над спрайтом (это максимум, что я могу сделать для упрощения создания GUI).
Что планируется:
- Написать пример игры от третьего лица с анимацией персонажа и столкновениями для камеры.
28.07.18 Выпустил SDK для GM8, см. ссылку ниже.
21.07.18. Выпустил source-релиз Xtreme3D 3.7.
Доступен SDK для Python, SDK для GM8 будет в ближайшее время.
https://github.com/xtreme3d/xtreme3d/re … tag/v3.7.0
В SDK добавлены новые примеры:
lightfx (демонстрация новой системы освещения)
kraft (физ. движок Kraft, создание тел и контроллера персонажа)
terrain (редактирование ландшафта)
interactiveui (порт примера Interactive UI для X3D 3.6)
Offline
Добавь функц о которой я говорил , что бы fps не подымался а сразу 600 .
добавь функц для роботы с окном открытое ли оно или закрытое и изменение названия его .
И дай совет как сделать редактор который сохраняет в json и загружает )
..//(((
(((•.•))) YOU TUBE இ}~ڿڰۣ-ڰۣ~—
..◢█◣
_./..I
Offline
Да, эту функцию как раз собирался добавить. И для окон тоже.
Насчет json - можно использовать готовый парсер, они почти для всех языков есть. Для загрузки на стороне игры я могу, теоретически, встроить парсер в Xtreme3D, если сумею разобраться с каким-нибудь из парсеров для Delphi.
Offline
Как обычно, я полон идеями и кровью.
- Редактирование ландшафта в Real time,и геометрии и текстуры.
- Gui, очень не хватает
- буквально недавно понял что очень не хватает RayCast'a, что бы можно было вернуть как-то ID объекта,или тег,и конечно же кординаты конечной точки столкновения.
- Можно было бы сделать Xtreme3D Editor, для построения карты, что бы она была не просто статическая как freeform, а с картой можно было как-то взаимосвязыватся , физика, подбор предметов итд (а вообще бы я имея твои знания свой движок бы сделал типа godot,unity)
- Изменение текстуры анимированной модели, добавление несколько текстур для модели/uw, всегда делаю в своих играх костумизацию персонажа,смена одежды,смена скина, ввел такой "ChangeTextureExt (model1,"hairTexture",newTexHair)" и поменял текстуру или цвет волос, было бы полезно.
(Жду ужасно FBX )
Редактировался FireRun (2018-06-11 06:52:28)
Программист,Художник
музыкальный продюсер (FIRERUN): https://soundcloud.com/djfirerun
Xtreme3D Editor (Xtreme3D с графическим интерфейсом): https://vk.com/x3deditor
Offline
1)Редактирование ландшафта есть в glscene , но xtreme3d не все возможности использует - но думаю все со временем будет .
2)Gui - пример есть на форуме .
3)RayCast - есть читай справку.
Редактировался van88268 (2018-06-12 16:59:16)
..//(((
(((•.•))) YOU TUBE இ}~ڿڰۣ-ڰۣ~—
..◢█◣
_./..I
Offline
Насчет ландшафта да, я хочу сделать ручное редактирование BmpHDS - по сути, рисование карты высот. Это можно сделать методами TBitmap.
Встроенного GUI пока нет, и я не уверен, что удастся его сделать - обычно интерфейс делают путем назначения действий неким событиям (нажата кнопка - выполняется функция). Назначить событию из DLL функцию среды, которая вызывает DLL, можно только при помощи указателей на функции, но с динамическими языками типа GML или Python это практически невозможно (во всяком случае, не с таким простым API, как в Xtreme3D). Всеми событиями и действиями проще управлять в вызывающей среде - а это означает, что нет большого смысла в каких-то дополнительных объектах GUI поверх спрайтов и объектов текста, если ими все равно придется управлять вручную.
Raycast есть - функции ObjectRaycast и ObjectSceneRaycast, они возвращают ID объекта. ObjectGetCollisionPosition и ObjectGetCollisionNormal возвращают точку и нормаль пересечения последней проверки.
Насчет редактора я и сам подумываю, но это очень уж грандиозная затея. Да и не факт, что получившийся редактор будет универсальным - у меня, конечно, есть определенное понятие о том, каким он должен быть для моих собственных задач, и сделать такое я мог бы, но аналог Unity написать в одиночку, думаю, нереально.
Текстуры можно менять, если модель состоит из нескольких мешей/фейсгрупп. Можно фейсгруппе назначить отдельный материал функцией ActorFaceGroupSetMaterial.
FBX вот на днях только начал разбирать. Думаю реализовать сначала ASCII-версию формата. Бинарную пока не обещаю, потому что так и не нашел к ней полную спецификацию, но, в принципе, можно покопаться в экспортере из Blender.
Offline
Как там успехи с FBX? Поддержка морфов(Morphs) будет?.
Чем Kraft лучше нынешнего физического движка? И не будет ли проблем с Ragdoll?. Кстаати FBX тоже будет поддерживать Ragdoll?
Какая разница между бинарным и ASCII форматом fbx?
(Прошу прощение что столько много вопросов по fbx, просто это единственная проблема, из за которой я пока боюсь писать игру на X3D3)
Редактировался FireRun (2018-07-02 00:19:14)
Программист,Художник
музыкальный продюсер (FIRERUN): https://soundcloud.com/djfirerun
Xtreme3D Editor (Xtreme3D с графическим интерфейсом): https://vk.com/x3deditor
Offline
Сейчас доделываю интеграцию Kraft - реализовал все типы геометрий и статические меши, создание тел, чтение и запись свойств тел, рейкаст. Остались только сочленения.
Kraft лучше, в первую очередь, нормальной проверкой столкновений, которая хорошо работает с мешами. Также в нем легче сделать контроллер персонажа (с ODE написать нормальный у меня так и не получилось, движения очень неестественные). В целом мне он пока нравится больше, чем ODE.
Ragdoll, скорее всего, пока можно будет создавать только вручную, задавая все размеры коллайдеров и параметры сочленений. Я попробую портировать встроенный Ragdoll GLScene на Kraft, но это уже долгосрочный план на Xtreme3D 3.8.
FBX, как уже говорил, только начал разбирать. ASCII-версия - это просто текстовое описание данных, его проще распарсить, потому что не требуется подробная документация по формату - там все человекочитаемо и интуитивно. Я думаю, любой экспортер позволяет выбрать версию.
Насчет поддержки каких-то расширенных возможностей FBX пока не думал. Скорее всего, в 3.7 будет реализована только загрузка геометрии. Я вообще не думаю, что получится сделать полноценную интерпретацию всех поддерживаемых фич FBX. Например, в GLScene нельзя смешивать вершинную и скелетную анимацию в одной модели, так что поддержка морфов точно отпадает.
Offline
Рад сообщить, что продвинулся с поддержкой FBX. Решил использовать готовую библиотеку для чтения бинарных FBX (OpenFBX), написал к ней минимальный C-враппер, скомпилированный в виде DLL, чтобы можно было использовать в Delphi. Уже работает загрузка статичных мешей, осталось реализовать иерархию, так что релиз Xtreme3D 3.7 не за горами.
Библиотека, кстати, поддерживает загрузку скелета, так что в перспективе можно будет загружать и анимированные меши.
Также добавил новые функции для окон и ActorProxy (см. первый пост).
Offline
Добавил функции для редактирования карты высот:
BmpHDSCreateEmpty(width, height, fillHeight)
BmpHDSSetHeight(hds, x, y, height)
BmpHDSGetHeight(hds, x, y)
BmpHDSSave(hds, filename)
TerrainGetHDSPosition(terrain, x, y, z, index)
На их основе можно сделать редактор ландшафта, пример которого будет в SDK.
Offline
Ура
Программист,Художник
музыкальный продюсер (FIRERUN): https://soundcloud.com/djfirerun
Xtreme3D Editor (Xtreme3D с графическим интерфейсом): https://vk.com/x3deditor
Offline
FBX и Kraft это круто , кстати добавь эти функции )
Советую использовать программу milkshape3d для importa и exporta почти в любой формат , удобная и быстрая .
function WindowGetShow(w: real): real; stdcall;
var
frm: TForm;
show: Boolean;
begin
frm := TForm(trunc64(w));
result := Integer(frm.Showing);
end;
function WindowGetHeight(w: real): real; stdcall;
var
frm: TForm;
show: Boolean;
begin
frm := TForm(trunc64(w));
result := Integer(frm.Height);
end;
function WindowGetWidth(w: real): real; stdcall;
var
frm: TForm;
show: Boolean;
begin
frm := TForm(trunc64(w));
result := Integer(frm.Width);
end;
Редактировался van88268 (2018-07-21 05:33:51)
..//(((
(((•.•))) YOU TUBE இ}~ڿڰۣ-ڰۣ~—
..◢█◣
_./..I
Offline
Выпустил Xtreme3D 3.7. Доступен SDK для Python, SDK для GM будет немного позже.
Offline
Боже, я дожил до этого дня! Жду SDK для GM и пример по FBX)
Редактировался FireRun (2018-07-21 14:13:44)
Программист,Художник
музыкальный продюсер (FIRERUN): https://soundcloud.com/djfirerun
Xtreme3D Editor (Xtreme3D с графическим интерфейсом): https://vk.com/x3deditor
Offline
SDK будет уже на днях Просто я сейчас все тестирую на Python, а в GM делаю привязки в последнюю очередь, так гораздо проще.
Насчет примера FBX даже не знаю, он грузится привычным FreeformCreate - нужен ли отдельный пример для этого?
Offline
1 ) fbx поддержка идет только меша или например анимации юзать можно ? )
2)Подключил новую версию xtreme3d в Develnext , релизну после тебя ))
3) добавь функ для зажатой клавишы и клика
4) почему только 8 источников света ?
Редактировался van88268 (2018-07-22 08:35:25)
..//(((
(((•.•))) YOU TUBE இ}~ڿڰۣ-ڰۣ~—
..◢█◣
_./..I
Offline
Библиотека, кстати, поддерживает загрузку скелета, так что в перспективе можно будет загружать и анимированные меши.
Синоним слова более - Больше
+ Система LightFX для поддержки более 8 источников света на сцене
Редактировался FireRun (2018-07-22 09:27:07)
Программист,Художник
музыкальный продюсер (FIRERUN): https://soundcloud.com/djfirerun
Xtreme3D Editor (Xtreme3D с графическим интерфейсом): https://vk.com/x3deditor
Offline
Да, поддержки анимации пока нет, но я обязательно ей займусь в 3.8.
Насчет клика по спрайтам подумаю. Пока не определился, как это лучше реализовать.
Источников света при использовании LightFX можно создать сколько угодно - в примере для Python создается 64. Если создать больше, у меня приложение начинает подтормаживать, сказывается необходимость вызывать qsort в каждом кадре.
Offline
А как же официальный FBX SDK от Autodesk ?
SDK FBX
Программист,Художник
музыкальный продюсер (FIRERUN): https://soundcloud.com/djfirerun
Xtreme3D Editor (Xtreme3D с графическим интерфейсом): https://vk.com/x3deditor
Offline
Выпустил SDK для GM8, скачать можно на GitHub.
А как же официальный FBX SDK от Autodesk ?
Мне просто не хочется вставлять зависимости от закрытых библиотек и SDK. Все компоненты движка доступны под свободными лицензиями, хотелось бы, чтобы так было и в будущем.
Offline
Урааа!!! . Жалко FBX не до конца реализован, а так супер, пример с ландшафтом вообще удивил, Gecko умница
На этом разработка 3.7 закончена ?
Редактировался FireRun (2018-07-29 08:25:42)
Программист,Художник
музыкальный продюсер (FIRERUN): https://soundcloud.com/djfirerun
Xtreme3D Editor (Xtreme3D с графическим интерфейсом): https://vk.com/x3deditor
Offline