|
20.08.2012, 11:21
|
#226
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: C3D Engine
Долго не садился за комп, круто что сам разобрался. Фпс не выводится, потому что встроеной функции нет. Создаешь шрифт, и считаешь фпс по дельта таймингу.
Вот функция которой пользуюсь я
void drawfps()
{
static ocge::IFont* font = 0;
if(!font)
{
font = engine->createFont();
font->loadTexture("bigfont.oi", 384);
}
static int FPS = 0;
static int calcedFPS = 0;
static float time = 0;
static int dips = 0;
static int tris = 0;
time += engine->getDeltaTime();
calcedFPS++;
if(time >= 1)
{
time = 0;
FPS = calcedFPS/1.0;
calcedFPS = 0;
dips = engine->getDips();
tris = engine->getTrisRendered();
}
font->drawText("FPS = " + ocge::String::fromInt(FPS) + "\nDips: " + ocge::String::fromInt(dips) + "\nTris: " + ocge::String::fromInt(tris), 300, 10, glm::vec3(1,1,0));
}
далее после рендера сцены ее вызываешь
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.08.2012, 14:16
|
#227
|
Дэвелопер
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений (для 886 пользователей)
|
Ответ: C3D Engine
Ага, по фпс ясно.
У тебя можно грузить ttf шрифты? А то моноширинный некрасивый.
Ещё просьба заглянуть в раздел форума Android, я там проблему изложил, может ты знаешь ответ.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
23.08.2012, 17:12
|
#228
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: C3D Engine
Чо та не нравится мой экспортер из макса, и бесит, что информации нет никакой причем нигде... сделаю-ка я по аналогии с конвертером текстур, будет конвертер из популярных форматов в формат движка, новый *.om (изображения *.oi) начну-ка я с fbx, был вроде уже опыт с ним.
|
(Offline)
|
|
23.08.2012, 17:36
|
#229
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: C3D Engine
Эм... а пользователям делать два действия? сначала в FBX, потом в твой формат?
|
(Offline)
|
|
23.08.2012, 17:45
|
#230
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: C3D Engine
пользоавтель независимо от версии макса да и вообще среды экспортит во что угодно (пока тока fbx) и получает на выходе готовый формат + SDK для написания своих загрузчиков прям в движок из вашего формата. (abstract class)
|
(Offline)
|
|
23.08.2012, 17:58
|
#231
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: C3D Engine
Мне показалось ты хотел файлы конвертить, а не тащить в движок много конвертеров...
|
(Offline)
|
|
23.08.2012, 18:01
|
#232
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: C3D Engine
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
23.08.2012, 22:00
|
#233
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: C3D Engine
неее всего один конвертер, он автоматом понимает что ты конвертишь а на выход файл для движка. В юнити тоже конвертер работает, тока там визуальная среда разработки и все автоматизировано, но по сути происходит тоже самое.
upd.
Исправил систему координат на правую, работает для перемещений и так далее, для геометрии тоже будет работать.
|
(Offline)
|
|
28.08.2012, 12:03
|
#234
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: C3D Engine
Добавил таймеры и сделал конвертер статики из fbx в *.om
Пример работы таймеров
class Mytimer : public ocge::ITimerCallback
{
ocge::INode* _node;
public:
Mytimer(ocge::INode* node)
{
_node = node;
}
virtual void onTimer(ocge::ITimer* timer)
{
_node->rotate(glm::vec3(0,10,0));
}
};
ocge::ITimer* timer = eng->createTimer(new Mytimer(om), 100);
timer->setEnabled(true);
(C) все права защищены =)
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо pozitiffcat за это полезное сообщение:
|
|
28.08.2012, 13:23
|
#235
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: C3D Engine
Решил собрать версию:
+ таймеры
/ улучшена скорость загрузки и быстродействие не андроиде на 30%
+ две версии библиотек, release и debug
/ String теперь динамический
/ мелкие фиксы
/ левая матрица по умолчанию
/ мастер к eclipse теперь требует net framework 2.0 а не 4.0
качать
|
(Offline)
|
|
28.08.2012, 16:46
|
#236
|
Бывалый
Регистрация: 06.04.2009
Сообщений: 612
Написано 276 полезных сообщений (для 858 пользователей)
|
Ответ: C3D Engine
1) А таймер тикает в отдельном потоке или по какому-нибудь Engine::Update() ?
2) Не увидел как изменить период для уже созданного таймера.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
28.08.2012, 16:51
|
#237
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: C3D Engine
период я не сделал менять.. (спасибо за подсказку)
таймер в этом же потоке считается исходя из tick() операционной системы.
Считается, что таймер работает, ТОЛЬКО в основном цикле приложения. Например во время загрузок уровня его использовать нельзя. Движок однопоточный.
никакого engine update делать не надо все автоматом (обновляются и проверяются таймеры в порядке очереди создания, в самом начале логики цикла, а точнее после endDraw)
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:41.
|