FPS в D3D

Тема в разделе "WASM.DirectX", создана пользователем RealFreeman, 4 май 2006.

  1. RealFreeman

    RealFreeman New Member

    Публикаций:
    0
    Регистрация:
    3 май 2006
    Сообщения:
    4
    Адрес:
    Рязань
    Привет всем. Я в программировании графики новичок, так что помогите мне пожалуйста. Вопрос такого плана: есть у меня D3D приложение, ну пусть будет просто окошко с кубиком, как мне отобразить количество FPS (как в WINAMP)? Как выводить текст в принципе нашел, но как получить значение FPS пока не знаю. Просветите плз.

    PS заодно подскажите есть ли быстрые способы вывода текста, а то что я нашел это вывод текста в RECT'е, а то вывод текста таким образом назван автором статьи медленным.
     
  2. Kozyr__

    Kozyr__ New Member

    Публикаций:
    0
    Регистрация:
    28 янв 2005
    Сообщения:
    213
    Адрес:
    Ukraine
    как получить значение FPS пока не знаю



    Можно использовать значения счетчика QueryPerformanceCounter. На каждом кадре отрисовки получай его значение, вычисляй количество тиков с момента предыдущего замера (разница в тиках) и зная количество тиков в секунду (QueryPerformanceFrequency) можно посчитать FPS:



    FPS = QueryPerformanceFrequency / delta(QueryPerformanceCounter)



    Другой вариант: считать количество отрисованных кадров последние 2-3 секунды, и посчитать среднее в секунду.



    есть ли быстрые способы вывода текста



    используй функции D3DXCreateFont, D3DXCreateFontIndirect.

    но быстрее будет работать, если самостоятельно создать текстуру с заданным шрифтом, создать набор треугольников с нужными текстурными координатами букв и отрисовать этот набор, предварительно изменив камеру - чтобы буквы были в нужном месте экрана и правильно ориентированы.
     
  3. RealFreeman

    RealFreeman New Member

    Публикаций:
    0
    Регистрация:
    3 май 2006
    Сообщения:
    4
    Адрес:
    Рязань
    Именно эти функции и использую. А на счет треуголиников не понял, это что же получается: рисую треугольники, накладываю текстуру и это работает быстрее чем D3DXCreateFontIndirect?
     
  4. Kozyr__

    Kozyr__ New Member

    Публикаций:
    0
    Регистрация:
    28 янв 2005
    Сообщения:
    213
    Адрес:
    Ukraine
    RealFreeman

    Именно эти функции и использую



    так, а что не получается?



    рисую треугольники, накладываю текстуру и это работает быстрее чем D3DXCreateFontIndirect?



    когда я пробовал - было именно так. попробуй сам, если будет наоборот - дай знать :)
     
  5. RealFreeman

    RealFreeman New Member

    Публикаций:
    0
    Регистрация:
    3 май 2006
    Сообщения:
    4
    Адрес:
    Рязань
    Да все получается, просто в статье было написано, что это медленный способ и это меня смутило :)

    На счет второго - обязательно попробую и дам знать. Только вот вопрос как измерить скорость? Использовать приведенный тобой алгоримт рассчета FPS или есть какие-нить другие способы?

    Да, вот еще такой вопрос: есть прога, по - моему FRAPS называется, которая считает FPS, ей то можно пользоваться для измерения скорости работы приложения?
     
  6. Kozyr__

    Kozyr__ New Member

    Публикаций:
    0
    Регистрация:
    28 янв 2005
    Сообщения:
    213
    Адрес:
    Ukraine
    просто в статье было написано, что это медленный способ и это меня смутило :)



    мне тоже кажется, что D3DXCreateFontIndirect - медленный способ :)



    как измерить скорость? Использовать приведенный тобой алгоримт рассчета FPS



    а чем этот вариант не устривает?

    если нужно просто сравнить скорость (быстрее/медленее), то как ты меряешь время - не имеет значение.



    есть прога, по - моему FRAPS называется, которая считает FPS, ей то можно пользоваться для измерения скорости работы приложения?



    понятия не имею.
     
  7. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков


    Можно. И еще ATITray умеет...(на ATI, разумеется) только... они разные цифры показывают :lol: :lol: :lol: Я как-то извратнулся - активизировал их обе в 3DMark'е - сидел и скептически смотрел на этот бардак. :)