|
[ На главную ] -- [ Список участников ] -- [ Правила форума ] -- [ Зарегистрироваться ] |
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 |