Xtreme3D 3.x by Gecko

Вы просматриваете архив старого форума. Новый форум по ссылке


Автор Сообщение

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 25-04-2016 23:34
https://github.com/xtreme3d/xtreme3d

Не знаю, конечно, пригодится ли это кому-нибудь - вряд ли сейчас кто-то всерьез пишет на GM. Но у меня все эти годы было некое странное чувство незавершенного дела, определенный энтузиазм, который некуда девать, вот и решил на досуге довести этот проект до конца. Просто из какого-то спортивного интереса, что ли. Все-таки не могу окончательно бросить то, чему отдал часть своей жизни.
Посмотрим, что в итоге получится...

Для тех, кто не в курсе - история этого проекта началась здесь.

Update (25.10.17) Поскольку работа над версией 3.6 затянулась, я решил выкладывать development-сборку xtreme3d.dll после каждого багфикса, чтобы все важные изменения можно было использовать уже сейчас. Самая свежая версия всегда доступна по ссылке http://xtreme3d.narod.ru/files/xtreme3d.dll. Она полностью обратно совместима с Xtreme3D 3.5, API не изменился, так что можно заменить ей релизную версию.

Update (17.12.17) Вышел Xtreme3D 3.6. Прочитать полный список изменений и скачать SDK можно на Гитхабе:
https://github.com/xtreme3d/xtreme3d/releases/tag/v3.6.0

Update (25.02.18) Добавлены биндинги к Xtreme3D 3.6 для D и Python, см. тут.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 12-05-2016 18:04
Потихоньку добрался до альфа-релиза:
https://github.com/xtreme3d/xtreme3d/releases/tag/3.0.0-alpha

Реализованы практически все функции, отсутствует только поддержка ODE. Надеюсь в течение ближайших месяцев добавить и ее, после чего будет окончательный релиз.
В архиве xtreme3d-3.0a-sdk.zip лежит скомпилированная xtreme3d.dll, пример, демонстрирующий сцену с бассейном, а также документация - CHM-справка, обновленная под Xtreme3D 3.0 (уроки, правда, все еще не написаны).

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 13-05-2016 18:21
Дорабатываю шейдер воды (сделаю, наверное, какую-нибудь демку с океаном):

http://s32.postimg.org/qd9sfq98h/sea1.jpg http://s32.postimg.org/e72pz86gx/sea2.jpg


Группа: Участники
Сообщений: 7
Добавлено: 15-05-2016 04:44
Gecko, возможно ли с использованием этих шейдеров сделать нечто подобное?


Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 15-05-2016 11:54
Конечно можно, я как раз на днях собирался сделать пример parallax mapping.

Кстати, новый пример с водой доступен тут: https://github.com/xtreme3d/demos.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 16-05-2016 15:13
Готов шейдер параллакса (см. в репозитории примеров):

http://s32.postimg.org/b477wiykx/parallax.jpg

С момента релиза альфы библиотека немного обновилась, так что лучше использовать самую свежую версию из репозитория.


Группа: Участники
Сообщений: 7
Добавлено: 17-05-2016 12:21
Великолепно!
Поддержка шейдеров позволит использовать движок для достаточно смелых задумок.
Для полного боекомплекта хотелось бы стенсильные тени)

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 17-05-2016 18:23
Сделал еще один пример, эффект bloom:

http://s32.postimg.org/q2v97b7ip/bloom.jpg

А стенсильные тени есть, ShadowVolume. Но они какие-то очень тормозные, так что я, наверное, буду пробовать реализовать shadow mapping.


Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 20-05-2016 11:34
Добавил пример bump mapping'а на анимированной модели:

http://s32.postimg.org/v3e9jjmpt/bump.jpg

Используется специальная техника, позволяющая обойтись без предрассчитанных тангент-векторов - все вычисляется в шейдере, чтобы не создавать дополнительную нагрузку на CPU.



Группа: Участники
Сообщений: 7
Добавлено: 20-05-2016 11:44
Отлично выглядит)

Вот методический материал для работы с тенями:

1. Основы создания мягких теней (GLSL)
2. Стенсильные тени изнутри (5 стр.)

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 20-05-2016 14:16
Ага, спасибо. В общем-то, я тени в своем движке уже писал - вся задача в том, чтобы портировать их на Delphi/GLScene:



Группа: Участники
Сообщений: 7
Добавлено: 22-05-2016 15:02
Ничего-себе) Это что за движок?
Продолжая тему шейдеров.. Хотел спросить, можно ли при помощи шейдеров реализовать self-illumination, при котором текстура становиться прозрачной в зависимости от степени освещения?

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 22-05-2016 21:50
Да, нужно просто передать в шейдер дополнительную текстуру с данными об освещенности, а потом просуммировать ее с основным цветом. Будет что-то вроде такого:

vec4 emit = texture2D(emitTexture, gl_TexCoord[0].st);
gl_FragColor = emit + ambient + diffuse + specular;

Это движок для игры, которую я пишу на языке D последние несколько лет. Вот тут все подробности: http://dlanggamedev.blogspot.ru/p/dgl.html

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 26-05-2016 13:11
Рад сообщить, что наконец-то сделал тени:

http://s33.postimg.org/ofx62j02z/shadow.jpg

Правда, есть проблема - почему-то они не рендерятся на Freeform-объектах, все закрашивается черным. На скриншоте тень падает на обычную плоскость.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 26-05-2016 14:56
Ну, в общем, вроде получилось. Оказалось, что нужно отключить индивидуальные материалы для мешей модели (видимо, где-то в недрах GLScene происходит переназначение текстурных блоков, пока не могу понять, где именно - в итоге, в шейдер передается не shadow map, а что-то другое). Придется в этом случае обходиться одним материалом на весь Freeform. Но это не так страшно, потому что можно составить уровень из отдельных объектов (lightmap все равно не нужен, раз есть динамические тени).

http://s33.postimg.org/abnpmyqsr/shadow3.jpg

Пример в репозитории.

И, кстати, я все-таки сделал возможность ручного рендеринга Viewer'а.


Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 27-05-2016 15:22
Вторая альфа-версия Xtreme3D 3.0

Включает все последние изменения, в том числе внеэкранные буферы, shadow mapping и много чего еще. В архиве SDK - все демки из репозитория примеров, а также обновленная справка.


Группа: Участники
Сообщений: 7
Добавлено: 29-05-2016 12:29
Ну вот)
Теперь он приятно выглядит)

Что касается авторендера, мое решение было не совсем правильным:

function ViewerDraw(viewer,mode: real): real; stdcall;
begin
if mode=0 then TGLSceneViewer(trunc64(viewer)).Buffer.Freeze;
if mode<>0 then TGLSceneViewer(trunc64(viewer)).Buffer.Melt;
result:=1;
end;

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 30-05-2016 15:44
У меня почему-то Freeze/Melt вообще не работают, я решил просто добавить в GLWin32Viewer новое свойство AutoRender и рендерить буфер в WMPaint, если оно равно true.

Мне еще хочется сделать систему частиц, более гибкую, чем FireFX, чтобы можно было назначать текстуры частицам, управлять из движением и т.д.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 02-06-2016 12:43
Добавил пример raycasting'а - взаимодействие с предметами в стиле RPG (The Elder Scrolls и др.). При наведении курсора на предмет, отображается его имя:

http://s33.postimg.org/o4sccc7vv/raycasting_rpg.jpg

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 15-06-2016 13:42
Добавил пример эффекта огня с использованием системы частиц FireFX:

https://s31.postimg.org/e29drpfqf/firefx.jpg

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 15-06-2016 17:54
Начал работу над функциями ODE. Важный момент: теперь Xtreme3D корректно передает меши в ODE, так что будет полноценная поддержка полигональной геометрии для статических тел. Также доведена до ума поддержка составных тел - при создании геометрий можно задавать не только размер, но и позицию относительно центра масс.

https://s32.postimg.org/l53zvaz29/ode3.jpg

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 16-06-2016 16:16
В ODE теперь можно использовать terrain:

https://s32.postimg.org/dzvjhwanl/ode_terrain.jpg

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 27-06-2016 11:14
Всем привет!

Очень интересно. Я все тоже возвращался к портированию, но увы не получилось когда-то привязать рендер к окну нового Game Maker Studio и я подумал, что на этом, пожалуй, стоит и остановится, хотя все равно хотелось доделать. Очень здорово, что ты решил закончить-таки, мои поздравления

Добавь, как-нибудь, в справку информацию о том, что md2 и остальные объекты без скелетной анимацией, то есть с по кадровой, жрут оперативную память (прилично) пропорционально количеству объектов на сцене.

Еще очень не хватало информации о самой сцене (или рендере, как хотите): сколько треугольников в кадре, отображение draw call и кол-ва используемых материалов - с этим можно было бы более эффективно оптимизировать игру.

P.S Вообщем, Gecko, ты как обычно крут!) Теперь переписывай старую IDE, чтобы отвязать пользователей от Game Maker и будет шикарный олдскульный инструмент разработки!

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 28-06-2016 10:21
О, привет, Hacker!
Да, по справке, конечно, еще много работы. Хочу уроки написать, добавить подробности по каждому из форматов моделей. По GLSL можно вообще написать отдельный цикл статей.
Насчет получения инфы по рендеру - постараюсь сделать, если в GLScene есть такая возможность.
Кстати, я даже не знаю, можно ли заставить X3D работать с GM Studio, у меня тоже не получилось. Вместо GM, в принципе, можно взять любой язык и написать биндинг. Есть мысль сделать биндинги для нескольких популярных языков (например, C и Python) + какую-нибудь легковесную standalone-версию со встроенными Lua и SDL, например.
Вообще, о том, какой язык взять за основу, если отказываться от GML, на нашем форуме уже много разговоров было, так ни к чему и не пришли. Таскать со средой компилятор C/С++ (или уж тем более весь рантайм Mono) как-то не очень изящно, а скриптовые языки не всех устраивают в плане скорости. Сам я сейчас продолжаю писать на D, но мне кажется, что игровую логику можно писать и на Lua/Python/..., особенно в данной ситуации, когда весь критичный к производительности код уже скомпилирован в DLL. Но лучше, конечно, чтобы была свобода выбора.

Кстати, если кому интересно: в последнее время заинтересовался модным сейчас physically-based rendering'ом, попробовал написать свой PBR-рендер: http://dlanggamedev.blogspot.ru/2016/06/pbr_25.html. В принципе, ничто не мешает встроить его в X3D, это просто один-единственный шейдер с кучей параметров. Хотя, конечно, без OpenGL 3/4 все равно далеко не уедешь - например, в OpenGL 2 нельзя передавать разные уровни размытости отражений в одной текстуре через mipmap'ы, но даже и без этого PBR позволяет сильно повысить уровень графики.

бывалый
Группа: Участники
Сообщений: 49
Добавлено: 28-06-2016 16:10
По GLSL можно вообще написать отдельный цикл статей.

Если писать статьи по GLSL, нужно определиться с версией, а то они отличаются. Лучше наверное всё-таки дать ссылки на готовые уроки по GLSL, а в справке достаточно написать, как эти шейдеры использовать. Всё-таки за прошедшие годы наверняка уроков по GLSL более чем достаточно.


Вообще, о том, какой язык взять за основу, если отказываться от GML, на нашем форуме уже много разговоров было, так ни к чему и не пришли. Таскать со средой компилятор C/С++ (или уж тем более весь рантайм Mono) как-то не очень изящно, а скриптовые языки не всех устраивают в плане скорости.

Рантайм Mono гораздо легче компилятора с его кучей хидеров и либ. Можно уместить в несколько мегабайт, причём вместе со стандартной библиотекой. А ещё можно урезать стандартную библиотеку, оставив в ней только то, что используется в конкретной игре. У тебя всё равно сишный API, сделай поддержку побольше языков.

Хотя, конечно, без OpenGL 3/4 все равно далеко не уедешь - например, в OpenGL 2 нельзя передавать разные уровни размытости отражений в одной текстуре через mipmap'ы, но даже и без этого PBR позволяет сильно повысить уровень графики.

Почему нельзя? Функция textureCubeLod в GLSL 1.10 есть, что ещё надо?

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 28-06-2016 17:08
Если писать статьи по GLSL, нужно определиться с версией, а то они отличаются. Лучше наверное всё-таки дать ссылки на готовые уроки по GLSL, а в справке достаточно написать, как эти шейдеры использовать.

Можно и так. Версии там 1.10 и 1.20.

У тебя всё равно сишный API, сделай поддержку побольше языков.

Да, скорее всего, просто сделаю много биндингов.

Почему нельзя? Функция textureCubeLod в GLSL 1.10 есть, что ещё надо?

А, действительно, и правда есть. Видимо, перепутал с GL ES.

бывалый
Группа: Участники
Сообщений: 49
Добавлено: 28-06-2016 17:56
В GL ES тоже есть эта функция.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 28-06-2016 18:28
По-моему, там она какое-то расширение требует. GL_EXT_shader_texture_lod, если не ошибаюсь.

бывалый
Группа: Участники
Сообщений: 49
Добавлено: 28-06-2016 20:56
А ну да, в спеке же написано:
The built-ins suffixed with “Lod” are allowed only in a vertex shader. For the “Lod” functions, lod is
directly used as the level of detail.


И в GLES2, и GL2 эти строчки есть.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 28-06-2016 23:27
Интересно, какой толк от чтения текстуры в вершинном шейдере)

бывалый
Группа: Участники
Сообщений: 49
Добавлено: 28-06-2016 23:55
Например можно сделать симуляцию воды на GPU во фрагментном шейдере. Результат сохраняется в виде карты высот в текстуру. А в вершинном шейдере можно читать эту текстуру и смещать вершины на нужную высоту.
Или можно генерировать ландшафт на лету на видеокарте. А ещё, в отличие от атрибутов вершин, текстуру можно сжать в какой-нибудь BC1-BC7 и другие сжатые форматы. Можно даже нормали не хранить, а считать их в вершинном шейдере, читая соседние тексели текстуры.
Или например можно систему частиц считать на вершинном шейдере. Задать 1D текстурой произвольную зависимость параметров (размер, цвет или даже траекторию) частицы от времени и читать из неё в вершинном шейдере.
В общем, применений масса.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 29-06-2016 09:01
Точно, про невизуальные данные я как-то не подумал)

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 08-07-2016 11:14
Выпустил третью альфа-версию с поддержкой ODE:

https://github.com/xtreme3d/xtreme3d/releases/tag/v3.0.0-alpha.3

У кого-то могут быть проблемы с заходом на GitHub (опять какие-то блокировки, кажется), пользуйтесь прокси. В скором времени залью SDK на сайт.

Появилось два новых примера - собственно физика и эффективный рендеринг большого лесного массива при помощи мультипрокси (вдалеке от камеры меши деревьев заменяются на спрайты, что-то вроде paged geometry из Ogre):

https://s32.postimg.org/g7zllzk29/forest2.jpg

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 21-07-2016 14:06
Бета-релиз:

https://github.com/xtreme3d/xtreme3d/releases/tag/v3.0.0-beta.1

Добавил поддержку PNG и DDS, новый встроенный BumpShader (вместо родного из GLScene написал свой на GLSL), а также функции ObjectCheckCubeVsFace и ObjectCheckFaceVsFace. Исправлены баги с рейкастингом.

https://s32.postimg.org/49k1hqayp/parallax.jpg


Группа: Участники
Сообщений: 1
Добавлено: 10-09-2016 09:47
Привет.
Xtreme 3D 3.0 by Gecko всегда будет под LGPL?

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 11-09-2016 00:11
Скорее всего, да. Она совместима с MPL, лицензией GLScene.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 30-09-2016 14:07
Выпустил новую версию, 3.1. Скоро залью на сайт, пока можно скачать SDK с Гитхаба:

https://github.com/xtreme3d/xtreme3d/releases/tag/v3.1.0

Изменения с бета-версии включают новые функции для спрайтов и новый объект HUDShape для рендеринга 2D-фигур, подробности в этой теме. Также добавил новую демку, которая показывает, как настроить bump mapping с тенями и привязать тени к движущемуся источнику света.

https://s16.postimg.org/yfeiae99d/Untitled_1.jpg

Дополнительные демки и примеры (например, пример Ragdoll и ручной сборки моделей) постепенно будут выкладываться отдельно, чтобы не перегружать SDK.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 06-10-2016 13:16
Рад сообщить, что в следующей версии (3.2) будет поддержка FBO. Это позволит, например, реализовать SSAO (screen-space ambient occlusion):

https://s14.postimg.org/s7s3jokb1/ssao_compare.jpg https://s17.postimg.org/qptqhq6zv/ssao.jpg

Также можно будет применять любые эффекты пост-процессинга, где требуется доступ к Z-буферу в шейдерах (MemoryViewer, к сожалению, его не предоставляет, поэтому на нынешнем этапе SSAO не сделаешь).

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 17-10-2016 12:19
Помню, в какой-то теме на форуме был вопрос, можно ли реализовать depth of field (фокусное размытие) - в Xtreme3D 3.2 можно будет сделать и его:

https://s9.postimg.org/ulx1ug1nv/dof1.jpg https://s11.postimg.org/ypvmnbobz/dof2.jpg

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 28-10-2016 15:23
В одной теме как-то обсуждался эффект рассеивающегося света (так называемые крепускулярные лучи или god rays) - сейчас вот работаю над Xtreme3D 3.3, в котором можно будет его реализовать:

https://pictr.com/images/2016/10/28/21015dcdebb8cd5ee2c7e7019aa8ea01.th.jpg

Основная задача в том, чтобы рендерить группы объектов с заданным материалом, который замещает собственные материалы объектов. Таким образом, в буфер можно отрендерить и источник света (белым цветом), и объекты-препятствия (черным), сквозь которые лучи не должны проходить. Затем элементарно рендерится экранный спрайт с аддитивным смешиванием и шейдером, радиально размывающим изображение относительно позиции источника света на экране.

Теоретически, данная возможность позволит реализовать и deferred rendering - надо будет попробовать.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 01-12-2016 14:28
Портирую свой PBR-шейдер на Xtreme3D - задействовать его можно будет в следующей версии, 3.4. Может быть, PBR-рендеринг даже станет частью движка.

https://s12.postimg.org/vwexto25l/pbr_gold.jpg https://s17.postimg.org/3q2akemnv/pbr_porcelain.jpg
https://s17.postimg.org/nhmhwrbrf/pbr_rubber.jpg https://s18.postimg.org/c61bxejk5/pbr_plastic.jpg

Для тех, кто не в курсе: PBR (physically based rendering) - это совокупность техник рендеринга и способ описания материалов, позволяющий рендерить реалистичные материалы, включая металлы и диэлектрики, с учетом освещения среды. Вот здесь неплохая вводная статья на русском.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 01-12-2016 14:36
Еще будет поддержка блиттинга FBO в главный кадровый буфер, что позволяет легко реализовать эффект искажения (например, в рельефном стекле, при мареве от жары и т.д.):

https://s13.postimg.org/g5um4zx5v/distortion.jpg

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 02-12-2016 12:07
Новые скрины PBR-шейдера:

https://s15.postimg.org/peey82xjr/pbr_textures.jpg https://s13.postimg.org/55grz01ar/pbr_textures2.jpg https://s16.postimg.org/ir9lba1s1/pbr_textures4.jpg https://s14.postimg.org/5m877pd7h/pbr_textures5.jpg

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 04-12-2016 11:54
PBR + мягкие тени + SSAO + FXAA:

https://s14.postimg.org/hx2e9hdf1/pbr_007.jpg https://s12.postimg.org/40z11jrzt/pbr_008.jpg https://s16.postimg.org/64zeoe5a9/pbr_009.jpg https://s12.postimg.org/7tzmp9o2x/pbr_010.jpg

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 15-12-2016 18:18
Выглядит крайне заманчиво и с каждым разом все круче. Но как я понимаю, это все для Game Maker 8? Не планируешь ли переходить ан Game Maker Studio, все же разница в производительности там приличная

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 15-12-2016 21:41
Пробовал GMS, он тормознутый какой-то (сам редактор). Хотя движок, наверное, действительно быстрее, не сравнивал. Да и интерфейс какой-то вырвиглазный, по сравнению со старыми версиями. Мне GM8 больше нравится - он ламповый, а я ведь только из чувства ностальгии этим занимаюсь

Всерьез, конечно, на GM я ничего сейчас не делаю. X3D использую только для прототипирования, обкатки всяких шейдеров и технологий, которые затем переношу в свой движок на D. Кстати, еще почерпнул для себя много полезного, изучая внутренности GLScene и разных паскалевских библиотек, там очень много замечательных архитектурных решений. Есть чему поучиться.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 29-12-2016 14:05
Рад сообщить, что в следующей версии X3D будет поддержка TTF-шрифтов и Юникода для экранного и плоского трехмерного текста - таким образом, давняя проблема с выводом кириллицы будет окончательно решена. Я реализовал такую же систему рендеринга текста, как и в моем движке DGL - то есть, текстуры для символов хранятся в хэш-таблице, первые 128 символов загружаются заранее, а остальные динамически, по необходимости - если они нужны для отрисовки пользовательской строки. Таким образом, можно одновременно использовать любые алфавиты, хоть китайские иероглифы (если, конечно, они есть в шрифте).

https://s29.postimg.org/i9ybtas43/text.jpg

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 05-01-2017 13:57
В следующей версии (3.5) появится поддержка плоскостей отсечения, благодаря чему наконец-то можно будет сделать воду со screenspace-отражением и преломлением, как в Ultimate3D (демка Fire and Water) и GMOgre (демка Fresnel). Также, благодаря доступу к буферу глубины, можно реализовать неполную прозрачность воды.

https://s27.postimg.org/z8qanvkhb/ss_water1.jpg https://s30.postimg.org/pqaqenzb1/ss_water2.jpg https://s23.postimg.org/fjugor8mf/ss_water5.jpg https://s23.postimg.org/68gl5u63b/ss_water4.jpg

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 07-01-2017 20:44
Хроматическая аберрация для преломления (разложение света на составляющие, что придает объектам под водой радужные оттенки - чем больше искажение, тем сильнее эффект):

https://s24.postimg.org/clviraqzl/ss_water13.jpg https://s27.postimg.org/lcus9hwa7/ss_water8.jpg

Скачать демку

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 27-01-2017 20:49
Работаю над реализацией Cascaded Shadow Maps - техники рендеринга теней, которая решает проблему баланса качества и охвата проекции теневых карт. Рендерятся три теневые карты вместо одной, с разными размерами проекции, и затем выборка из них интерполируется в зависимости от координат текущего пикселя. В результате охват сцены тенями возрастает в разы: получаются качественные тени вблизи от камеры и пикселизированные - вдалеке (благодаря PCF-фильтрации пикселизацию можно ослабить).

https://s30.postimg.org/wrfot5rjx/Untitled_1.jpg https://s30.postimg.org/nry5h3ybh/Untitled_2.jpg https://s23.postimg.org/squssiho7/Untitled_3.jpg https://s29.postimg.org/mczyz71pf/Untitled_4.jpg

Скачать демку

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 29-01-2017 21:12
На основе демки с тенями пишу новый улучшенный PBR-шейдер:

https://s29.postimg.org/ob4sroj0j/Untitled_9.jpg https://s27.postimg.org/w4vma85v3/Untitled_11.jpg https://s24.postimg.org/veenbh68h/Untitled_12.jpg https://s23.postimg.org/9p6mrzlsn/Untitled_1.jpg

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 31-01-2017 00:07
https://s28.postimg.org/k940h3gll/002.jpg https://s30.postimg.org/w25y39a3x/003.jpg https://s23.postimg.org/o3h47w3av/004.jpg https://s23.postimg.org/kkcbd8yp3/009.jpg

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 31-01-2017 14:03
https://s28.postimg.org/b8bu5zi49/Untitled_1.jpg https://s23.postimg.org/55npja3x3/Untitled_3.jpg https://s23.postimg.org/94mmf342f/Untitled_6.jpg https://s29.postimg.org/bclicq0cj/Untitled_2_2.jpg

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 06-07-2017 18:37
В Xtreme3D 3.6, кроме встроенной поддержки Lua, будет новый тип прокси-объектов - ActorProxyObject. Hacker как-то говорил (в том числе в этой теме), что Actor'ы при дублировании жрут много памяти - так вот, прокси решают эту проблему. Данные о модели/скелете хранятся в единственном экземпляре, а каждый прокси рисует заданного Актера со своим кадром анимации и со своей трансформацией.

https://s10.postimg.org/h2xo55e9h/actorproxy.jpg https://s9.postimg.org/o5eq3nz2j/actorproxy2.jpg

hk = ActorCreate('hellknight.md5mesh', matlib, global.scene);
ActorAddObject(hk, 'idle.md5anim');
ActorAddObject(hk, 'attack.md5anim');
ActorSwitchToAnimation(hk, 0, true);

proxy = ActorProxyObjectCreate(hk, global.scene);
ObjectSetPosition(proxy, 4, 0, 0);
ActorProxyObjectSwitchToAnimation(proxy, 2);

Таким образом, ActorProxyObject пригодится, если у вас в игре много однотипных персонажей.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 07-07-2017 11:09
Также я наконец-то решил проблему кириллицы в GM. С версии 3.4 в Xtreme3D есть поддержка TTF-шрифтов и Юникода, но в GM8 строки кодируются системной кодировкой Windows, и конвертировать их в UTF-8 не очень удобно. Теперь можно будет сделать так:

font = TTFontCreate('font.ttf', 12);
TTFontSetEncoding(font, teWindows); // или teUTF8
text = HUDTextCreate(font, 'Привет, мир!', global.front);

По умолчанию используется Windows-1251, но можно загрузить свой маппинг для перевода 8-битных символов (128-255) в Юникод:

TTFontLoadCodePage(font, 'codepage.txt');

Преимущество такого подхода в том, что игра будет выводить правильные символы вне зависимости от языка системы. Также, если необходимо, можно вообще создать свою собственную 8-битную кодировку.

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 07-07-2017 13:28
Gecko Эх, жаль, что Xtreme3D лет 7 назад так активно не развивался, было бы просто шикарно

У меня вопрос тут назрел. Я когда писал свою реализацию, старался уделить внимание обработке ошибок. Очень раздражало в свое время окошко о "неожиданная ошибка".

Я тогда делал проверки через try, по сути мы используем такое только в процедурах типа Create, а значит это всего лишь увеличит время загрузки, но в итоге не повлияет на производительность. Что об этом скажешь? Больше информативности появится.

И смотрю я на прогресс и так и тянет меня сделать демку-презентацию в стиле Doom 3, такой себе мини шутер с демонстрацией всех возможностей Xtreme3D. Только не знаю зачем

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 07-07-2017 14:55
Я тогда делал проверки через try, по сути мы используем такое только в процедурах типа Create, а значит это всего лишь увеличит время загрузки, но в итоге не повлияет на производительность. Что об этом скажешь? Больше информативности появится.

Да, наверное, так и сделаю. Где-то обработку исключений уже поставил - при загрузке шейдеров, например.

И смотрю я на прогресс и так и тянет меня сделать демку-презентацию в стиле Doom 3, такой себе мини шутер с демонстрацией всех возможностей Xtreme3D. Только не знаю зачем

Демку, кстати, как раз собираюсь сделать. Шутер или что-то вроде RPG. После релиза 3.6, наверное, займусь.
Я тоже не знаю, зачем снова занимаюсь всем этим) Какая-то ностальгия охватила... Хотя нельзя сказать, что это совсем бесцельный труд - Xtreme3D удобен для создания прототипов, я на нем тестирую шейдеры и разные техники, которые потом портирую в свой движок. Да и gadmaker вот его использует в привязке для Lua. Еще был Ghost с его игрой по мотивам "Балто", но я не знаю, в каком состоянии сейчас этот проект.

А вообще я не один такой - недавно на меня вышли авторы MAEngine, у них тоже интересный двиг - правда, под GMS, но они не исключают возможность поддержки GM8.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 09-07-2017 15:29
Еще несколько скринов:

https://s10.postimg.org/6emmenx7p/Untitled_7.jpg https://s9.postimg.org/unj9l42u3/Untitled_8.jpg https://s15.postimg.org/x25j837pj/Untitled_9.jpg

Скорее всего, этот пример и станет основой для техно-демки.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 10-07-2017 17:19
То же самое, но с блумом:

https://s12.postimg.org/kogkfg0tl/Untitled_6.jpg https://s9.postimg.org/8vwmxfz8r/Untitled_3.jpg https://s12.postimg.org/4uee2y9t5/Untitled_1.jpg

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 10-07-2017 17:48
А вообще я не один такой - недавно на меня вышли авторы MAEngine

Интересный движок. Я хочу тебе подкинуть идею, так как в Xtreme нет встроенного поиска пути, предлагаю взять Recast библиотеку из их проекта (Если я правильно понял, это NavMesh чистой воды), только для него придется добавить несколько новых функций в сам Xtreme.

Это было очень кстати для будущей Dem'ки

Еще несколько скринов:

Ну и вопросик есть о производительности, судя по скриншотам ( а они крутые ), fps скачет достаточно заметно. Как там в общем дела с этим, после добавления постэффектов, теней новых и прочего?

Я просто помню, на форуме посвященному GlScene кто-то пилил на основе него продвинутую версию, но форум заглох и я потерял этот проект.

Да и человек этот вряд ли его еще делает, но если есть исходники, может стоит что-то использовать оттуда? Или это уже перебор для ностальгической разработки?

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 10-07-2017 19:22
Да, насчет Recast интересная идея, это можно.

Как там в общем дела с этим, после добавления постэффектов, теней новых и прочего?

Эффекты, конечно, тяжеловатые (для моей видеокарты, по крайней мере) - в этом примере у меня максимум 40-45 fps. Но там столько всего понавешано, что и неудивительно - думаю, что в реальной игре столько постэффектов вряд ли потребуется. Тени, кстати, на производительность не влияют, самые тяжелые шейдеры - это SSAO и motion blur.

Я просто помню, на форуме посвященному GlScene кто-то пилил на основе него продвинутую версию, но форум заглох и я потерял этот проект.

Про такой проект не слышал, надо поискать. Я заглядывал в исходники последней версии Сцены, в целом мой форк примерно соответствует ему по функциональности. Некоторые модули я оттуда себе уже взял.
У них теневых карт, кстати, вроде бы нет до сих пор.

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 10-07-2017 19:35
Про такой проект не слышал, надо поискать

Кажется проект назывался VBOMesh вот исходный код и собственно сам блог

А можно демки собирать сразу в exe и хранить на гите, а то посмотреть хочется примеры, а ставить Гм ради этого как-то немного лень

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 10-07-2017 20:00
Ага, спасибо, сейчас гляну)

А можно демки собирать сразу в exe и хранить на гите, а то посмотреть хочется примеры, а ставить Гм ради этого как-то немного лень

Ну я могу ее на сайт выложить. На Гитхабе малость неудобно хранить бинарники, потому что они загромождают историю коммитов, и локальная копия неприлично разрастается в размерах. Я там только библиотеки храню, которые не пересобираются.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 10-07-2017 21:37
Вот:

http://xtreme3d.narod.ru/files/x3d3/x3d-3.6-superdemo2.zip

Остальные потом тоже скомпилирую.

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 11-07-2017 12:11
Gecko, Спасибо! Интересная демонстрация, только этот странный счетчик fps Тогда я с ним ничего не мог поделать, но делать определенно надо, больно на него смотреть) У меня он добежал до 55.

На счет fps. В самом же GLScene есть множитель на deltaTime всех трансформаций?

Просто подсчет кадров в секунду работает в демках GLScene иначе, я тогда еще долго возился с кадансером, мы точно не упускаем что-то при инициализации сцены?

Ну и с трепетом буду ждать полноценную демо

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 11-07-2017 12:21
Я в Update делаю так:

cadencer.FixedDeltaTime := delta;
cadencer.Progress;

Сравнивал вывод ViewerGetFramesPerSecond с собственным счетчиком на SDL (в версии для D), вроде расхождений не было. Обычно fps примерно равен 1.0 / delta, но в тяжелых демках, конечо, падает. Но да, не совсем понятно, почему он повышается постепенно)

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 18-08-2017 13:45
Какие новости? Что-то давно ничего не слышно о новой версии и демке)

А у кадансера только fixedDelta, расчетной нету для каждого кадра?


Группа: Участники
Сообщений: 5
Добавлено: 19-08-2017 13:39
спрошу здесь. биндинг D, xtreme3d 3.5.0

к примеру:

double levelMlib = MaterialLibraryCreate();
string pathLevelTextures = "data/textures/";
MaterialLibrarySetTexturePaths(levelMlib, pathLevelTextures.strPtr);
string pathLevel = "data/map/test.b3d";
double level = FreeformCreate(pathLevel.strPtr, levelMlib , levelMlib , scene);

вылетает на ViewerRender с First-chance exception: 0x0eedfade: Win32 Exceptions после компиляции.

если указать библиотеки как 0:

double level = FreeformCreate(pathLevel.strPtr, 0, 0, scene);

то работает, но приходится вручную потом возиться с текстурами

***
UPD вопрос закрыт. нельзя использовать одну и ту же библиотеку материалов для текстур и карт освещения.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 22-08-2017 11:22
Я сейчас в отъезде, так что особого прогресса пока нет, но надеюсь уже в сентябре выпустить 3.6 и начать работу над демкой.
Расчетную дельту, наверное, можно добавить - я просто решил, что пользователю удобнее будет привязать ее к скорости окна GM.

Что касается проблемы с библиотеками материалов: по идее, должна быть возможность хранить лайтмапы и текстуры в одной, похоже на баг GLScene. Обязательно проверю, как будет возможность.

бывалый
Группа: Участники
Сообщений: 36
Добавлено: 23-08-2017 00:52
Я сейчас в отъезде, так что особого прогресса пока нет, но надеюсь уже в сентябре выпустить 3.6 и начать работу над демкой.
Расчетную дельту, наверное, можно добавить - я просто решил, что пользователю удобнее будет привязать ее к скорости окна GM.

Что касается проблемы с библиотеками материалов: по идее, должна быть возможность хранить лайтмапы и текстуры в одной, похоже на баг GLScene. Обязательно проверю, как будет возможность.



Круто будем ждать, хотел спросить ты есть в соц сетях ?

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 28-08-2017 12:46
Да, ВКонтакте:
https://vk.com/tgafarov

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 03-10-2017 18:31
Вернулся к работе над версией 3.6. Есть проблема с материалами Freeform и шейдерами (подробности в этой теме) - сейчас вот ввожу способы ее обойти. Добавил функции MaterialSetTextureExFromLibrary и FreeformMeshFaceGroupGetLightmapIndex для ручного присваивания лайтмапов материалам. Вкратце, это позволяет использовать в шейдере автоматически загружаемые лайтмапы модели. На скрине показан шейдер для карты B3D, использующий одновременно лайтмап и динамические тени:

https://s1.postimg.org/6eh69gpz7v/screen.jpg

бывалый
Группа: Участники
Сообщений: 36
Добавлено: 22-10-2017 15:22
Привет Gecko,
1.Поковырялся в Glscene и понял что там возможностей ещё много, можно ли как то вносить свои новые функции в Xtreme3d именно на главный гит , что бы не создавать отдельный движок.
2.Можно ли обновить opengl в Glscene ?
3.Какие планы на будущее движка ?)
4.Подключил xtreme3d к Develnext ссылка на пост)

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 22-10-2017 18:32
1. Добавлять новые функции очень просто, посмотри папку source/xtreme3d, там реализации всех функций. Можно просто добавить новый файл, затем в source/xtreme3d.dpr добавить его в список включений: {$I 'xtreme3d/myfunctions'} и в конце добавить функции в список экспорта (инструкция exports). Чтобы в репозиторий что-то вносить, надо сделать форк, внести изменения в него, а потом сделать pull request. Или можешь просто мне отправить свои изменения, я их сам добавлю.
2. Насчет этого сильно сомневаюсь. В новых версиях OpenGL (3 и выше) очень многое убрали - фиксированный конвейер, встроенное освещение, glBegin/glEnd, display list'ы и т.д., а в GLScene все это используется на каждом шагу. Проще новый движок с нуля написать.
3. После выпуска 3.6 у меня есть план сделать встроенную поддержку физ. движка Kraft для альтернативу ODE. Еще есть идея написать новую систему частиц.
4. Посмотрел видео, очень круто! Про DevelStudio слышал, но работать не доводилось. Добавлю новость на сайт.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 25-10-2017 14:16
Поскольку работа над версией 3.6 затянулась, я решил выкладывать development-сборку xtreme3d.dll после каждого багфикса, чтобы все важные изменения можно было использовать уже сейчас. Самая свежая версия всегда доступна по ссылке http://xtreme3d.narod.ru/files/xtreme3d.dll. Она полностью обратно совместима с Xtreme3D 3.5, API не изменился, так что можно заменить ей релизную версию. Думаю также сделать упрощенный SDK со всеми новыми функциями. Предупреждаю, что сборка нестабильна, в ней что-то может внезапно перестать работать, пользуйтесь осторожно.

бывалый
Группа: Участники
Сообщений: 36
Добавлено: 30-10-2017 07:36
1.Чем ODE плоха ?
2.Можно ли анимации использовать на других объектах кроме Actor ?
3.Насчет функции , я решил создать файл и потом кинуть тебе и ещё можно ли список exports писать не в главном файле а в своем ?
4.Почему фпс подымается а не сразу максимум ?(
5.Можно ли как то каденцер сделать быстрее тем самым повысить фпс , в unity3d есть fixed update он выполняет быстрее код, он для физики там используется и не только, даж скорость задать можно вроде)

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 30-10-2017 11:12
1. ODE не развивается (последняя версия была в 2014 году), к тому же версия, которая используется в Xtreme, сильно устарела и имеет много ограничений. Например, не все типы геометрий друг с другом сталкиваются. Теоретически, можно обновить привязку, как-нибудь попробую. Но Kraft все же поинтереснее.
2. Нет. А ты сам подумай, как? Для анимации нужна инфа о том, какие вершины модели к каким костям прикреплять (т.е., развесовка). Она предусмотрена только для Actor.
3. Да, экспорт можно из любого модуля сделать. Я просто решил отделить модули, расширяющие GLScene, от собственно функций Xtreme3D, поэтому у меня один большой exports.
4. Это я сам до сих пор не понимаю.
5. Не думаю, что fixed update имеет отношение к скорости. Ну, то есть, имеет, но косвенное. То, что он для физики используется, это да, но там просто фиксированный шаг времени, не привязанный к fps. Он обычно наоборот, меньше реальной кадровой частоты приложения. А в Xtreme вообще можно как хочешь обновлять - нужен fixed update, делай таймер своими средствами, и вызывай Update когда нужно. В GM, например, можно просто выставить ограничение в 60 fps и не беспокоиться. Можно, теоретически, сделать функцию FixedUpdate, со встроенным таймером, но ведь для физики OdeManagerStep все равно придется вызывать вручную.
Мне кажется, надо бы вообще убрать каденсер и сделать полностью ручное обновление (может, это решило бы и проблему с повышением fps), но в GLScene есть объекты, которые от него зависят, так что это не так просто.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 30-10-2017 11:18
Добавлю насчет fixed update, чтобы стало яснее. Я в своем движке вот как его делаю:

timer += realDeltaTime;
if (timer >= fixedDeltaTime)
{
timer -= fixedDeltaTime;

//тут идет обновление физики и логики
}

fixedDeltaTime равно 1/60.

Теоретически, шаг времени для fixed можно сделать больше, чем шаг для рендеринга (например, 1/120 против 1/60), но это просто искусственное ограничение. Его нельзя сделать больше, если реальный fps низкий (если приложение физически не может быстрее обновляться, как в нем сделаешь более быстрый таймер?)

бывалый
Группа: Участники
Сообщений: 36
Добавлено: 05-12-2017 15:15
1.Привет Gecko , можешь посоветовать норм физ движок, что бы работало с мешем xtreme3d.
2.будешь ли ты дописывать свой физ движок GMTech ...
3.Подключил к DevelNext вроде все норм работает и хотел сделать примеры типо шутера и платформера но физики нету норм и спрос думаю будет на него так что надо физику новую нормальную ))
4.Видел ты пишешь свой двиг новый на языке D, можно ли сделать библиотеку типо xtreme3d ибо графон там по лучше и возможности .

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 07-12-2017 21:37
К сожалению, пока ничего, кроме ODE, для Xtreme3D нет. Как я уже говорил, у меня есть мысль интегрировать Kraft, но это пока не более чем идея. Если есть интерес к GMDMech, могу его доработать - в данный момент это будет намного проще. Но и возможностей там не сказать чтобы много. Динамических мешей, к примеру, нет.

Что касается моего движка, я не думаю, что для него будет легко сделать библиотеку-враппер. Там очень многое завязано на ООП, на системе событий. Для библиотеки по типу Xtreme нужна более простая архитектура. У меня когда-то была мысль написать такой двиг (Phantom3D), но я отказался от этой затеи - собственно, как раз тогда я и перешел на D.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 17-12-2017 20:57
Выпустил Xtreme3D 3.6. Решил все-таки Lua не интегрировать, поскольку есть проект Blaze - лучше развивать его.
Прочитать полный список изменений и скачать SDK можно на Гитхабе:
https://github.com/xtreme3d/xtreme3d/releases/tag/v3.6.0
В скором времени выложу и на сайт.


Группа: Участники
Сообщений: 5
Добавлено: 12-01-2018 19:36
Будет dlang биндинг или обновленный скрипт? Из исходников 3.6 не получается сделать..

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 12-01-2018 20:36
Да, скрипт сейчас неработоспособен, надо немного поправить структуру исходников. На днях займусь этим.

частый гость
Группа: Участники
Сообщений: 17
Добавлено: 19-01-2018 15:39
А поддержка в ENIGMA уже полная или еще не проверялось?

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 20-01-2018 12:01
В Энигме все еще остается проблема с теневыми картами (могут быть и другие, проверял не все примеры). Жаль, конечно - так была бы хорошая замена GM.

бывалый
Группа: Участники
Сообщений: 36
Добавлено: 08-02-2018 13:29
Привет Gecko , вот решил проблему с поднятием fps
Функция ResetPerformanceMonitor.
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Caption:=Format('%.2f FPS', [GLSceneViewer1.FramesPerSecond]);
GLSceneViewer1.ResetPerformanceMonitor;
end;

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 09-02-2018 12:36
Спасибо, в ближайшее время проверю.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 23-02-2018 14:41
Рад сообщить, что биндинг Xtreme3D для языка D теперь поддерживает Xtreme3D 3.6. Биндинг был перенесен в основной репозиторий движка: https://github.com/xtreme3d/xtreme3d/tree/master/bindings/dlang.

Я также обновил скрипт-генератор - теперь для того, чтобы сгенерировать биндинг из исходников, нужно просто запустить genbinding.py (при условии, что не нарушена структура локальной копии репозитория). Биндинг, как и прежде, основан на Derelict, а демонстрационное приложение работает на SDL2.

Готовый биндинг можно скачать отдельно тут.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 25-02-2018 13:49
Готов биндинг Xtreme3D для Python (2.7 и 3.2+) со скриптом-генератором: https://github.com/xtreme3d/xtreme3d/tree/master/bindings/python. Демка также использует SDL2 (PySDL2). Скачать биндинг отдельно можно на странице релиза.

частый гость
Группа: Участники
Сообщений: 17
Добавлено: 02-03-2018 02:21
А что с производительностью? По сравнению с нативным для движка ГМ, есессно )

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 02-03-2018 11:44
Детально не сравнивал, но на глаз Python быстрее (особенно в тяжелых демках), fps ниже 60 не падал. Сейчас портирую примеры из SDK, в скором времени выложу.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 13-03-2018 16:06
Обновил SDK для Python, скачать можно тут. Архив теперь включает 4 примера и класс-фреймворк, облегчающий работу с SDL (создание окна, считывание ввода и т.д.).

https://s10.postimg.org/tvija2679/screenshot.jpg

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 19-03-2018 14:20
Прогресс по Xtreme3D 3.7:
- Теперь выводятся сообщения об ошибке при загрузке ресурсов (для Freeform, Actor и текстур). Вывод сообщений можно отключить функцией EngineShowLoadingErrors, в этом случае движок будет просто игнорировать ошибку и работать дальше.
- Добавил поддержку более 8 источников света (обсуждалось в этой теме). Теперь можно создать любое количество источников - при рендеринге объекта учитываются 8 ближайших. Для этого надо добавить объекту эффект LightFX (функция LightFXCreate). При этом направленные источники имеют более высокий приоритет, чем точечные и конусные. Система совместима со встроенными шейдерами, также эффект учитывается и для всех потомков объекта.
Главный недостаток - большие объекты, типа плоскостей, ландшафта и геометрии уровня, все так же учитывают лишь 8 источников света вокруг их центра, так что для освещения уровней остается только lightmapping.

https://s14.postimg.org/bb51j5mjx/screenshot2.jpg

- Добавил функцию ObjectGetScale.

частый гость
Группа: Участники
Сообщений: 10
Добавлено: 19-03-2018 16:24
Вау. Картинка почти на уровне топовых движков

частый гость
Группа: Участники
Сообщений: 17
Добавлено: 20-03-2018 12:26
Добавил поддержку более 8 источников света

Я так понимаю, это 8 ближайших к рендерящемуся объекту?

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 20-03-2018 16:54
Я так понимаю, это 8 ближайших к рендерящемуся объекту?

Ага, именно так.

частый гость
Группа: Участники
Сообщений: 17
Добавлено: 21-03-2018 00:21
Огонь! Жду следующую версию )

бывалый
Группа: Участники
Сообщений: 36
Добавлено: 26-05-2018 11:36
Хотелось бы норм движок с физикой ибо платформер нормальный не сделать на dce.
я не говорю об других типах игер даж ((

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 26-05-2018 12:24
Физика - это да. Нужен нормальный встроенный физ. движок с хорошей поддержкой кинематики. Наверное, буду смотреть в сторону Kraft.

бывалый
Группа: Участники
Сообщений: 36
Добавлено: 28-05-2018 20:48
Круто , возможностей тож достаточно ждем крафт в новом обновлении ))

http://youtu.be/42Q9vp-r7Ec

частый гость
Группа: Участники
Сообщений: 10
Добавлено: 29-05-2018 22:58
Давно не чего не было слышно о обновлении, что сейчас в процессе разработки ?
FBX формат еще долек от версии 3.7 ?

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 30-05-2018 01:22
Сейчас работаю над интеграцией Kraft. FBX пока не занимался.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 01-06-2018 00:48
Реализовал базовую поддержку Kraft. Готово создание тел, присваивание геометрий (пока поддерживаются плоскость, бокс, сфера, капсула), автоматическая синхронизация тел Kraft с объектами Xtreme3D: