![]() |
Ответ: C3D Engine
У кого есть андроид 2.3.3 и выше? Что бы пощупать демо...
ВЫложу как сделаю вывод текста с FPS на экран... |
Ответ: C3D Engine
у меня есть galaxy note, с андором 4.0.3
|
Ответ: C3D Engine
о ништяк, как вывод текста сделаю я выложу сюда пощупать демку. и напишу результаты тестирования на моих девайсах...
|
Ответ: C3D Engine
как будешь выводить текст? через фритайп?
|
Ответ: C3D Engine
а кто-то вообще делал нормальный рендер через фритайп ? мы битмап шрифты только юзаем ибо вектор сложно растеризировать нормально на лету http://www.antigrain.com/research/font_rasterization/
|
Ответ: C3D Engine
Битмапы рулят... хотя памяти немного жалко на них.
|
Ответ: C3D Engine
Могу потестить тоже на Tegra 3: HTC One X и Asus Transformer 1, также есть доступ к Samsung Galaxy Nexus (там уже попроще видео, но мощное тоже).
Имхо, если писать двиг под андройды, то фокусируйся на будущее железо, т.к. развивается рынок очень шустро, следственно пока твой движок будет пригоден для использования и пока разработчик закончит свою игру на нём, у всех почти уже будут Android 4+. |
Ответ: C3D Engine
Цитата:
|
Ответ: C3D Engine
http://rghost.ru/39173999 (20 метров архив) - fps видно плохо черный шрифт на темном фоне :D, некогда допиливть, сегодня уже времени нет, а результаты тестирования узнать хочется
Просьба за тестировать. Там папку медиа поместить в /sdcard/ocge/ короче создать каталог ocge в карте памяти, установить apk и написать сюда fps, если не запускается то прикрепить лог, он в корне карты памяти образуется ocge.log apk файл для armv7 http://rghost.ru/39177842 ![]() |
Ответ: C3D Engine
Итак:
LG P500 - 15 fps (video: adreno 200) EXPLAY 701 - 34 fps (video: mali 400) мой комп 600+ fps (video: NV GT240 DDR3) |
Ответ: C3D Engine
galaxy note.
зеленый экран и ничего не происходит лог тоже не появился. |
Ответ: C3D Engine
проверь муть к media
/sdcard/ocge/media/ если нет лога, то возможно, у тебя путь не sdcard. Вот на планшете у меня флешка это /extsd, а внутренняя память /sdcard, может и у тебя так? короче нужно держать медию по пути /sdcard/ocge/media проверь каким нибудь продвинутым эксплорером |
Ответ: C3D Engine
у меня флешка /sdcard/external_sd/ я положил во внутреннюю память.
путь к медия /sdcard/ocge/media/ (во внутренней памяти. может приложению нужны дополнительные права на работу со внутренней памятью?) |
Ответ: C3D Engine
права в манифесте прописаны. У мня на 2 девайсах работает, проверь /sdcard/ocge.log
|
Ответ: C3D Engine
есть какой-то log.log
Код:
Init application |
Ответ: C3D Engine
походу старый бинарник попробуй это http://rghost.ru/39177842
в новом ocge.log походу эклипс тупит а я понял! я для арм 7 не компилил новую версию щас погоди |
Ответ: C3D Engine
Axelynx вот попробуй http://rghost.ru/39177842
Заработало? |
Ответ: C3D Engine
да. работает. шустренько - 24 fps (это при разрешении 1280 x 720)
|
Ответ: C3D Engine
Супер! Спасибо... Да там есть еще че ускорять, я просто не занимался... я переписывал двиг с нуля.
Текст прозрачный? А то на телефоне он на белом фоне блендинг не работает, а на планшете ок |
Ответ: C3D Engine
текст с белой каемкой. походу без альфаблендинга.
|
Ответ: C3D Engine
Каемка это я так шрифт сгенерировал, а там прям квадраты белые, когда блендинг не включается...
|
Ответ: C3D Engine
зачем тебе интерфейс рендерера? ты хочешь cross gapi?
|
Ответ: C3D Engine
Сначала думал, что есть отличия GL/ES, вот и написал интерфейс, можно директ запилить когда нечего делать будет, но для этого надо уходить от GL синтаксиса, более абстрактно сделать класс, у меня и окошки работают на freeGlut, SDL, Android API.. на любой вкус. Хотя SDL можно выпилить, у меня freeGlut, норм работает, компилится с сорцов без либ.
Я не ищу сложных путей, по фозможности использую проверенные временем библиотеки. Юзать freeimage не стал за не надобностью, раз есть свой формат моделей, так пусть будет свой формат текстур, накрайняк можно будет потом хранить текстуры прямо в моделях.. но это так на будущее. |
Ответ: C3D Engine
Код:
RENDER->bindBuffer(_vbo, BT_ARRAY); |
Ответ: C3D Engine
при 60 fps, это мешать не будет, прирост будет 0.5 фпс если убрать интерфейс.
При 1000 фпс, различие может быть в 50 fps. но какая нам разница, если глаз не воспринимает 1000 фпс, можно ограничиться 100 фпс. Зачем нам гнаться за этими 0.5 % прироста, оптимизировав код. Лучше реализовывать чувствительные к ГАПИ оптимизации. PS. компиляторы давно научились сами оптимизировать подобный код. |
Ответ: C3D Engine
Поднял на 20% FPS - это без Frustum. Запилил тач в андроиде. Сделал нормальный шрифт.
Осталось, нормальный фрустум, конвертирование текстур прям при экспорте из макса. Проверить оптимизации, сделать нормальную доку, вытащить все в DLL, мастер для Eclipse, Visual Studio, и можно будет пощупать. После этого собираюсь запилить наконец-то тени, point и spot освещение, пока не решил per-vertex или per-pixel |
Ответ: C3D Engine
Освещение ведь на шейдерах, делай оба варианта. С возможностью переключения.
Ведь если делать толково, то deferred, а там да, пиксельное сразу лучше. |
Ответ: C3D Engine
Цитата:
|
Ответ: C3D Engine
один раз за кадр множу projection matrix и view matrix, в шейдер передается modelMatrix и viewprojMatrix, и множится в шейдере. Раньше у каждого объекта вычислялась modelview матрица ну и анимацию вынес в ГПУ
|
Ответ: C3D Engine
Неплохо!
|
Ответ: C3D Engine
непробывал множить матрицы на цпу, а в шейдере не множить матрицы вообще? этож мобилка, там немного шейдерных процессоров.
|
Ответ: C3D Engine
гпу всегда быстрее цпу. Тем более прирост на лицо
|
Ответ: C3D Engine
Цитата:
ps. еще memcpy через neon быстрее чем обычный :crazy: |
Ответ: C3D Engine
Цитата:
|
Ответ: C3D Engine
Ну у меня прирост в производительности дало на гигогерцовом cortexA8 проце и на 600 мегагерцовом тоже.
PS. вершин у каждой модели в среднем 1000 |
Ответ: C3D Engine
Добавил файловые системы - дисковую и zip
|
Ответ: C3D Engine
файлы советую сделать подмапленными. где тут была статья джимона. дает прирост в 15% по скорости. + ненадо создавать буфера.
|
Ответ: C3D Engine
Что такое подмапленые может я так и делаю...
|
Ответ: C3D Engine
|
Ответ: C3D Engine
Сделал визард для эклипса (как отдельное приложение, проще поддерживать). Генерирует готовый проект, который рисует пустую сцену. Программисту остается лишь добавлять код. Сразу либы кладет куда надо и т.д. со стандартным функционалом визардов эклипса особо не развернешься без костылей
![]() |
Ответ: C3D Engine
Добавил некоторые вещи в TODO, думаю выложу бету, когда закончу с документированием. Сейчас занимаюсь документированием. Выложу бинарники библиотек к студии и мастер к эклипсу. Бинарники для андроида будут идти с мастером. Эклипс должен быть настроен на андроид сдк, и установлен ADT плагин
|
Ответ: C3D Engine
Запилил динамические тени от одного источника освещения
![]() |
Ответ: C3D Engine
Добавил callback класс для работы с шейдерами и entity - можно творить что угодно
выглядит это следующим образом: Код:
class SHCallback : public ocge::IShaderCallback Код:
ocge::IShader* cbshader = engine->createShader(sh_vert, sh_frag); Код:
cube->setShader(cbshader); еще я сделал автоматическую генерацию шадоу мапы, если включена функция в источнике освещения, и можно получить доступ к ней из шейдера (шадоу мапа берется из первого источника освещения, но есть возможность вытащить из любого) пока что только directional. Если есть желание у программиста, то естественно, он вообще все сам может написать (работу с освещением имеется ввиду) |
Ответ: C3D Engine
Цитата:
коллбэк вешаем или на шейдер или на ентити. а у тебя как то на все вместе. |
Ответ: C3D Engine
так надо чтобы onCreate вызывался один раз когда устанавливаем в шейдер колбэк. Представь скока раз вызовется onCreate при установке колбыка на каждый entity. У меня onCreate вызывается только при setCallBack, т.к. установки хэндлов юниформов касаются только шейдера а не entity.
обработка ентити в колбэке нужна например для генерации матрицы какой то особенной и т.п. еще будет метод onSceneRender onSceneRender выполняется 1 раз на сцену, а onEntityRender для каждого ентити Короче может я плохо объяснил, но вобщем так надо, это моя реализация, и она ничем не мешает разработке. )) |
Ответ: C3D Engine
Например так:
Код:
class SHCallback : public ocge::IShaderCallback |
Ответ: C3D Engine
по крайней мере идея стала понятна.
Цитата:
|
Ответ: C3D Engine
нет камер скока угодно, тока одна камера активна. На вьюпорты не делятся, ибо у меня не такой универсальный движок. Можно заюзать 2D спрайт с текстурой срендереной с какойнибудь камеры (это если например захочется сделать зеркало заднего вида)
|
Ответ: C3D Engine
Загладил стандартные тени.
Добавил установку атрибутов cast shadows и receive shadows, их можно использовать в своих шейдерах Включаются тени 1 строкой кода PHP код:
UPD, будет мощная система колбэков. Я продумал тут кое чего.. это очень удобный механизм для разработки и управлением всем. Можно очень гибко использовать объекты, вплоть до создания своих типов ![]() |
Ответ: C3D Engine
Ну вот я и закончил со спецэффектами, да и впринципе список ToDo почти подошел к концу, теперь наконец допишу доку и выложу скоро бету (примерно неделя)
фото отчет: запилил постэффекты 4х проходный блум (фозможно будет изкаробки, отдельная функция уже есть) ![]() |
Ответ: C3D Engine
что на скрине? какой это блум? это же блур.
|
Ответ: C3D Engine
блум предусматривающий сглаживание картинки.. подпилить просто надо, особо не разбирался
|
Ответ: C3D Engine
Помоему вполне адекватный блум вот посмотрите:
![]() |
Ответ: C3D Engine
Хорошо бы в динамике посмотреть, и разрешение поболее.
|
Ответ: C3D Engine
http://rghost.ru/39526910
Вот демка, что на скрине, в динамике. Крутить камерой, зажимаете ЛКМ и вращаете |
Ответ: C3D Engine
он у тебя кроссплатформенный? и андроид и винда? круто.
в динамике смотрится лучше, чем на скринах. |
Ответ: C3D Engine
Спасибо дружище =) на андроиде тоже работает, но там немного подглючивает формат текстур, получаются точки на экране с постэффектом как будто смотришь старое кино на старой пленке, вобщем тупо, я щас копаю в эту сторону
PS. а какие у вас FPS? у меня на интеле 4500 20 фпс дает эта сцена... |
Ответ: C3D Engine
на 6850M дает 177 фпс если смотреть на сцену и 204 если отвернуться и смотреть на скайбокс.
|
Ответ: C3D Engine
FPS 39, i5-2500K (встроенное видео), камеру не двигал, тени странные и блум тоже странноват
|
Ответ: C3D Engine
pax тени странные из-за маленького разрешения текстуры (там косяк маленький немогу победить), а чем блум непонравился?
|
Ответ: C3D Engine
Как-то сильно засвечивает, эффект можно уменьшить?
|
Ответ: C3D Engine
Эффек можно уменьшить естественно...
|
Ответ: C3D Engine
Программируемые частицы:
Система частиц этого движка отличается от системы частиц других движков (чесно хз как в других движках, но думаю не так =)). Здесь вся логика программируется, предоставив необходимый инструмент. Опять же колбэки. ![]() |
Ответ: C3D Engine
Цитата:
у меня, например разделено между спрайтовыми системами и системами частиц. частицы обновлятся на ГПУ, спрайты на ЦПУ. |
Часовой пояс GMT +4, время: 20:28. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot