![]() |
|
[ На главную ] -- [ Список участников ] -- [ Правила форума ] -- [ Зарегистрироваться ] |
On-line: |
Форум движка Xtreme3D / Xtreme3D: разработка движка / Xtreme3D 3.x by Gecko |
Страницы: 1 2 3 4 5 6 Next>> |
![]() |
Автор | Сообщение |
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, см. тут. |
|
Gecko 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 (уроки, правда, все еще не написаны). |
|
Gecko Big Boss Группа: Администраторы Сообщений: 719 ![]() |
Добавлено: 13-05-2016 18:21 |
Дорабатываю шейдер воды (сделаю, наверное, какую-нибудь демку с океаном):![]() ![]() |
|
Ghost Группа: Участники Сообщений: 7 ![]() |
Добавлено: 15-05-2016 04:44 |
Gecko, возможно ли с использованием этих шейдеров сделать нечто подобное? |
|
Gecko Big Boss Группа: Администраторы Сообщений: 719 ![]() |
Добавлено: 15-05-2016 11:54 |
Конечно можно, я как раз на днях собирался сделать пример parallax mapping. Кстати, новый пример с водой доступен тут: https://github.com/xtreme3d/demos. |
|
Gecko Big Boss Группа: Администраторы Сообщений: 719 ![]() |
Добавлено: 16-05-2016 15:13 |
Готов шейдер параллакса (см. в репозитории примеров):![]() С момента релиза альфы библиотека немного обновилась, так что лучше использовать самую свежую версию из репозитория. |
|
Ghost Группа: Участники Сообщений: 7 ![]() |
Добавлено: 17-05-2016 12:21 |
Великолепно! Поддержка шейдеров позволит использовать движок для достаточно смелых задумок. Для полного боекомплекта хотелось бы стенсильные тени) |
|
Gecko Big Boss Группа: Администраторы Сообщений: 719 ![]() |
Добавлено: 17-05-2016 18:23 |
Сделал еще один пример, эффект bloom:![]() А стенсильные тени есть, ShadowVolume. Но они какие-то очень тормозные, так что я, наверное, буду пробовать реализовать shadow mapping. |
|
Gecko Big Boss Группа: Администраторы Сообщений: 719 ![]() |
Добавлено: 20-05-2016 11:34 |
Добавил пример bump mapping'а на анимированной модели:![]() Используется специальная техника, позволяющая обойтись без предрассчитанных тангент-векторов - все вычисляется в шейдере, чтобы не создавать дополнительную нагрузку на CPU. |
|
Ghost Группа: Участники Сообщений: 7 ![]() |
Добавлено: 20-05-2016 11:44 |
Отлично выглядит) Вот методический материал для работы с тенями: 1. Основы создания мягких теней (GLSL) 2. Стенсильные тени изнутри (5 стр.) |
|
Gecko Big Boss Группа: Администраторы Сообщений: 719 ![]() |
Добавлено: 20-05-2016 14:16 |
Ага, спасибо. В общем-то, я тени в своем движке уже писал - вся задача в том, чтобы портировать их на Delphi/GLScene:![]() |
|
Ghost Группа: Участники Сообщений: 7 ![]() |
Добавлено: 22-05-2016 15:02 |
Ничего-себе) Это что за движок? Продолжая тему шейдеров.. Хотел спросить, можно ли при помощи шейдеров реализовать self-illumination, при котором текстура становиться прозрачной в зависимости от степени освещения? |
|
Gecko 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 |
|
Gecko Big Boss Группа: Администраторы Сообщений: 719 ![]() |
Добавлено: 26-05-2016 13:11 |
Рад сообщить, что наконец-то сделал тени:![]() Правда, есть проблема - почему-то они не рендерятся на Freeform-объектах, все закрашивается черным. На скриншоте тень падает на обычную плоскость. |
|
Gecko Big Boss Группа: Администраторы Сообщений: 719 ![]() |
Добавлено: 26-05-2016 14:56 |
Ну, в общем, вроде получилось. Оказалось, что нужно отключить индивидуальные материалы для мешей модели (видимо, где-то в недрах GLScene происходит переназначение текстурных блоков, пока не могу понять, где именно - в итоге, в шейдер передается не shadow map, а что-то другое). Придется в этом случае обходиться одним материалом на весь Freeform. Но это не так страшно, потому что можно составить уровень из отдельных объектов (lightmap все равно не нужен, раз есть динамические тени).![]() Пример в репозитории. И, кстати, я все-таки сделал возможность ручного рендеринга Viewer'а. |
|
Gecko Big Boss Группа: Администраторы Сообщений: 719 ![]() |
Добавлено: 27-05-2016 15:22 |
Вторая альфа-версия Xtreme3D 3.0 Включает все последние изменения, в том числе внеэкранные буферы, shadow mapping и много чего еще. В архиве SDK - все демки из репозитория примеров, а также обновленная справка. |
|
Ghost Группа: Участники Сообщений: 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; |
|
Gecko Big Boss Группа: Администраторы Сообщений: 719 ![]() |
Добавлено: 30-05-2016 15:44 |
У меня почему-то Freeze/Melt вообще не работают, я решил просто добавить в GLWin32Viewer новое свойство AutoRender и рендерить буфер в WMPaint, если оно равно true. Мне еще хочется сделать систему частиц, более гибкую, чем FireFX, чтобы можно было назначать текстуры частицам, управлять из движением и т.д. |
|
Gecko Big Boss Группа: Администраторы Сообщений: 719 ![]() |
Добавлено: 02-06-2016 12:43 |
Добавил пример raycasting'а - взаимодействие с предметами в стиле RPG (The Elder Scrolls и др.). При наведении курсора на предмет, отображается его имя:![]() |
|
Gecko Big Boss Группа: Администраторы Сообщений: 719 ![]() |
Добавлено: 15-06-2016 13:42 |
Добавил пример эффекта огня с использованием системы частиц FireFX:![]() |
Страницы: 1 2 3 4 5 6 Next>> |
![]() |
Форум движка Xtreme3D / Xtreme3D: разработка движка / Xtreme3D 3.x by Gecko |