Показать сообщение отдельно
Непрочитано 24.06.2011, 11:38   #10
Аватар для Azagthtot
Эксперт

По умолчанию Re: Фпс в клиенте Lineage

Ну пока все рассказывают от чего зависит FPS, я расскажу как организовать "попугаеметр".
Начнем с того, что такое тот самый F (Frame) который Per Second. Это полностью отрисованная в 3D буфере сцена. После того, как мы установили все объекты, света, текстуры и прочий ливер на надо скинуть эту сцену в видеокарту. Для этого используется функция glFlush() в OpenGL или EndScene() в D3D. В UE этот вызов обернут (ЕМНИП) в D3DRenderDevice::Flush
Таким образом, нам надо хукнуть эту функцию, и считать ее количество вызовов.
ОТлично, количество фреймов мы получили. Как теперь их вывести?
А вот тут вариантов полно. Вы можете сделать это средствами UE (через метод UCanvas:rawTextToCanvas) или же через работу напрямую с DX сценой, ибо ПЕРЕД вызовом Flush у вас вполне нормальная, открытая сцена.
Azagthtot вне форума Отправить сообщение для Azagthtot с помощью ICQ Отправить сообщение для Azagthtot с помощью Skype™ Ответить с цитированием
Сказали спасибо: