⇣ Содержание
Опрос
|
реклама
Самое интересное в новостях
ATI Physics. Часть вторая – тестируем своими руками
Тест №1. Падающие камни.Демо-сцена выглядит в виде «склона горы» на которую непрерывным поток сыплются камни. Поверхность «горы» является относительно простой полигональной поверхностью с «желобами» и «кочками». «Камни» представляют собой вытянутые эллипсоиды, состоящие из малого числа полигонов. Регулируемый параметр – число «камней», которое равно 10 000, 15 000 или 20 000 штук. Один взгляд лучше, чем сто слов. Предлагаем вашему вниманию видеоролик rocks10k.avi (6,42 Мб, 640x480, DivX). К сожалению, получить изображение высокого качества не удалось, поскольку видео записывалось с экрана монитора. Ролик состоит из условно трех частей. Сначала «физика» ускоряется на GPU, затем тест переключается на использование CPU в качестве ускорителя «физики», и наконец переключение к исходному состоянию. Вы можете оценить как достоверность реализации «физики», так и разницу в производительности между GPU и CPU. «Камни» на «склоне горы» крупным планом. Как легко заметить, присутствует 3 вида камней, отличающихся размерами и цветом, которые расположились в складках «горного» рельефа. Расчет «физики» в данном тесте сводится к обнаружению столкновений между «камнями» и моделированию их движения согласно физическим законам. На скриншоте ниже показан вариант теста с количеством камней, равным 15 000 штук. Как видно из скриншота, скорость обновления сцены равна 50-ти кадрам/с. Мы предполагаем, что FPS ограничивается производительностью «ускорителя физики», а не графики. Косвенным подтверждением этому служит то, что скорость обновления сцены не изменялась при изменении угла обзора сцены таким образом, что в кадре оставался минимум объектов (снижалась нагрузка на видеоадаптер рендеринга). Как уже говорилось, тест позволяет менять количество камней в сцене, а также использовать для расчетов «физики» как выделенный видеоадаптер (GPU), так и центральный процессор (CPU). Мы получили значения FPS для всех возможных случаев, соответственно - 10 000, 15 000 и 20 000 камней в сцене, как рассчитанные на GPU, так и на CPU. К этим результатам мы также добавили значения, полученные при расчете «физики» на видеокарте Radeon X1600XT, которая заменила X1900XTX в качестве «ускорителя физики». Все вместе это отображено на графике ниже. Проанализируем полученные результаты. Первое, что хотелось бы отметить – при замене одного «физического ускорителя» на другой, значения FPS для линии «CPU» не изменились. А это значит, что «физика» считается на CPU честно. Ведь при расчете «физики» на центральном процессоре никакие ускорители не используются и результаты меняться и не должны. Второе. Как легко вывести из графика, «физический ускоритель» Radeon X1600XT отстает от Radeon X1900XTX на величину всего лишь от 30% до 38%. Хороший результат, если учитывать сравнительную стоимость этих «ускорителей». С другой стороны, Radeon X1600XT способен показать играбельный FPS только при 10 000 объектов в кадре, тогда как Radeon X1900XTX уверенно чувствует себя и при обработке 15 000 объектов. Впрочем, применительно к данному тесту об «играбельности» можно говорить с большой натяжкой. За «камушками» в данном тесте мы можем только наблюдать, а «сыграть» в них пока не получится. Третий момент, на который следует обратить внимание – нелинейность падения производительности с ростом числа объектов. При изменении количества объектов от 10 000 к 15 000, падение производительности составляет не 1,5 раза, а от 1,6 до 1,75 раз. При переходе 10 000 -> 20 000 объектов, падение производительности составляет от 2,2 до 2,8 раз. Почему так происходит? Одной из причин может быть то, что с ростом числа объектов увеличивается количество взаимных столкновений камней (вероятность столкновения повышается с ростом числа объектов в одном и том же объеме), поэтому приходится чаще пересчитывать новые траектории движения, ну и детектировать сами столкновения. Простая арифметика для оценки подобных вещей малоприменима, а для получения более-менее точных оценок надо знать принцип расчета, применяемый «ускорителем». Но, как уже отмечалось в примечаниях, мы не будем строить подобные догадки, а примем полученные результаты как они есть. Что касается сравнения результатов «ускорения физики» на CPU и GPU, то разница – в разы. Мы не знаем, оптимизирована ли «демка» под двухъядерные процессоры, каким является Intel Core Duo X6800, в любом случае, превосходство видеокарт в качестве специализированного ускорителя впечатляет (даже если результаты линии СPU умножить на два). ВыводВидеокарты в качестве «ускорителей физики» способны с хорошей скоростью обсчитывать совместное движение 10 000 относительно несложных объектов (не путайте с количеством полигонов). Много это или мало? Для типичной игровой сцены – очень много. Ведь в большинстве игр количество предметов окружающей обстановки, с которыми игрок может взаимодействовать, редко превышает сотню, не говоря уже о тысяче. Да и детальный просчет траектории движения нужен далеко не для всех них. Конечно, не все объекты так просты как эти «камешки», но запас по производительности изрядный, так что есть из чего выбирать – огромное количество простых объектов, среднее количество – сложных, или смесь этих случаев. Идем дальше.
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
|