Войти
ПроектыФорумУтилиты

кроссплатформенный 2D движок ZenGL [GNU/Linux, Windows, MacOS X, iOS, Android]

Страницы: 1 2 311 12 Следующая »
#0
19:00, 13 ноя 2010
Изображение

ZenGL - кроссплатформенная библиотека для разработки игр, предоставляющая необходимый функционал для вывода 2D-графики, обработки ввода, воспроизведения звука и пр.

Официальная веб-страничка(рус.): zengl.org
Официальный форум: http://zengl.org/forum
Документация(англ.): wiki

Лицензия: zlib
Поддерживаемые ОС: GNU/Linux, Windows, MacOS X, iOS, Android
Совместимые компиляторы: FreePascal 2.4+, Delphi 7+
Графический API: OpenGL, Direct3D 8/9, OpenGL ES 1.x
Звуковой API: OpenAL, DirectSound

Общее
- возможность использования в виде so/dll/dylib библиотеки так и непосредственно исходный код
- рендеринг как в собственное, так и в заранее подготовленное окно
- логирование событий
- загрузка ресурсов непосредственно из файлов, памяти и zip архивов
- многопоточная загрузка ресурсов
- возможность расширить количество поддерживаемых форматов данных
Настройки
- управление антиалиасингом, разрешением экрана, частотой развертки и вертикальной синхронизацией
- коррекция пропорций выводимого изображения относительно заданных размеров
- управление заголовком и размером окна, наличие автоматического центрирования
- управление видимостью курсора в пределах окна
Ввод
- обработка событий клавиатуры, мыши и джойстика
- обработка ввода Unicode-текста
- возможность ограничить ввод латинским алфавитом
Текстуры
- поддержка форматов tga, png, jpg и pvr
- корректная работа с NPOT текстурами
- управление параметрами фильтрации
- работа с масками
- наличие render targets для рендеринга в текстуру
Текст
- текстурные Unicode-шрифты
- вывод форматированного текста в кодировке UTF-8 либо ANSI
- управление отступами, размером, цветом вершин и количеством символов в тексте
2D-подсистема
- batch render для повышения производительности
- рендеринг основных видов примитивов
- наличие менеджера спрайтов
- рендеринг статичных спрайтов, спрайтов с анимацией и тайлов
- рендеринг трансформирующейся сетки
- рендеринг спрайтов с ручным указанием текстурных координат(с пиксельной размерностью и обычным 0..1)
- управление режимом блендинга и смешивания цвета
- возможность назначения цвета и альфы отдельным вершинам спрайтов и примитивов
- дополнительные трансформации спрайтов(зеркальное отражения, увеличение, смещение вершин)
- быстрое отсечение спрайтов выходящих за пределы видимости
- наличие камеры с возможностью увеличения и поворота содержимого сцены
Звук
- работа посредством OpenAL или DirectSound в зависимости от настроек сборки или ОС
- корректная работа при отсутствии звуковой карты
- поддержка wav и ogg в качестве сэмплов
- потоковое воспроизведение ogg аудио-файлов
- управление параметрами громкости и скорости воспроизведения
- трехмерное позиционирование источника звука
Видео
- декодирование кадров в текстуру
- поддержка кодека theora в контейнере ogv
Математика
- базовый набор вспомогательных мат. функций
- необходимый набор функций для триангуляции
- базовый набор collision-функций
Дополнительно
- работа с ini-файлами
- вспомогательные функции для работы с файлами и памятью

Изображение Изображение Изображение Изображение

#1
20:29, 13 ноя 2010

УАУ!!! Надо себе на лазарус поставить =)! Прикольно бы иметь такую библиотеку.
А через что создаются окно, через виджеты?
А можно её использовать со своим окном, т.е. просто подключать к нему графику?
Можно ли использовать отдельно графику (без звука, или наоборот)?
Блин, стока вопросов позадавал, пойду лучше исходники сам копать)))

#2
20:33, 13 ноя 2010

>> А через что создаются окно, через виджеты?
Нет, никаких VCL/LCL. Чистый API для каждой из ОС.

>> А можно её использовать со своим окном, т.е. просто подключать к нему графику?
В описании вроде об этом сказано :) Сегодня-завтра выложу обновленный генератор шрифтов, собранный при помощи Lazarus'а. Там как раз встраивание рнедера в отдельное окно.

>> Можно ли использовать отдельно графику (без звука, или наоборот)?
В файлах настройки сборки(zgl_config.cfg) можно отключить некоторы вещи. На этот счет есть дока.

#3
20:33, 13 ноя 2010

есть возможность работать с заархивироваными ресурсами?

#4
20:40, 13 ноя 2010

>> есть возможность работать с заархивироваными ресурсами?
Встроенных средств на данный момент нет(правда дергают меня довольно часто с этим вопросом 8)). Но если есть какая своя реализация распаковки своих архивов, то пристроить его не сложно - из файлов в памяти ресурсы грузятся.

#5
20:48, 13 ноя 2010

Andru
> Нет, никаких VCL/LCL.
Ну, я не это имел ввиду...
> Чистый API для каждой из ОС.
Ясно.
> В описании вроде об этом сказано :)
Точно, не заметил)

Andru
А вот интересно, на ГНУПаскале будет работать ^_^?

#6
20:59, 13 ноя 2010

ExeLord
>> А вот интересно, на ГНУПаскале будет работать ^_^?
GNU Pascal загнулся много лет назад(год эдак 2005?), и мне даже не удалось его завести у себя из под ArchLinux'а... посему проверить совместимость так и не удалось :)

#7
15:17, 14 ноя 2010

Исправил некоторые ляпы в старом врапере для Magic Particles, с минорным апдейтом ZenGL будет доступен и врапер.

Изображение

#8
17:10, 19 ноя 2010

А можно к движку как-то прикрутить шейдеры? Если да, то можно какую-нить простенькую демку на этот счет?

#9
11:24, 20 ноя 2010

Tortugas
Шейдеры... еще одна "больная" тема :) Ладно, откопал свой старый корявый модуль для ASM/GLSL шейдеров, чуток подправил для ZenGL. Скачать можно тут. Там лежат два файла шейдеров(fp_glsl.txt и vp_glsl.txt), их закинь в bin(директория demos). Модуль zgl_shaders.pas закинь в директорию с исходникам какой-нить демки. Исходники самой демки замени на содержимое demo07.pas(да, за основу я взял демку с Miku и прикрутил туда шейдеры grayscale, как смог :)). Отличия думаю ты найдешь. Единственный минус этих сорцов - во всех shader_Begin/End выполняется batch2d_Flush, от чего оптимизации по DIP'ам нет.

PS: Если используешь Delphi ниже 2009 версии, обязательно удали строку zgl_Enable( APP_USE_UTF8 ).

#10
1:16, 22 ноя 2010

ZenGL 0.2 RC5

Список изменений:
- [Direct3D]исправлены tex_GetData и scr_ReadPixels, которые предоставляли данные в виде BGRA вместо RGBA
- исправлена ошибка Range Check Error в PasJPEG
- исправлен порядок обработки тайлов в tiles2d_Draw
- исправлен рендеринг текста используя шрифты с несколькими страницами
- функция fx_SetColorMask теперь корректно работает при использовании batch2d_Begin/batch2d_End
- исправлены расчёты позиции текста при использовании флагов TEX_VALIGN_* и Scale аргумента функции text_DrawInRect
- render targets больше не пустые на видеокартах серии GeForce FX
- [Direct3D]добавлена константа APP_D3D_DEVICE для использования с функцией zgl_Get
- добавлены константы APP_WND_HANDLE и APP_OGL_CONTEXT для использования с функцией zgl_Get
- добавлены флаги RT_USE_DEPTH и RT_CLEAR_DEPTH, RT_CLEAR_SCREEN заменен на RT_CLEAR_COLOR
- добавлена функция text_GetHeight

Ссылки в нулевому посте обновил.

Врапер для Magic Particles доступен по этой ссылке. Еще библиотека обзавелась доменом в зоне org :)

#11
21:43, 22 ноя 2010

Andru
7я Делфа не хочет компилить пример с шейдерами.
Сделал всё по инструкции. Делфа ругалась на незнание типа DWORD, заменил его везде на integer. Ругается на несовместимость System.Char и zgl_shader.Char

#12
23:07, 22 ноя 2010

Tortugas
Пофиксил и проверил с Delphi 7 и Delphi 2010. Обновил архив(скачать можно по старой ссылке). В архив положил уже dpr и dproj файлы проектов. Правда этот модуль такой ужас... 8)

#13
13:47, 23 ноя 2010

а планируется хеадер для c++?

#14
14:11, 23 ноя 2010

>> а планируется хеадер для c++?
Нет, ввиду того, что не думаю отказываться от удобства String'ов. Да и писать врапер-функции тоже не доставляет fun'а, так что подобные не кошерные языки оставлю на откуп всяким HGE и т.д.

Страницы: 1 2 311 12 Следующая »
ПроектыФорумУтилиты