ATI Physics » ЛИТЕРАТУРНОЕ КАФЕ | КНИЖНЫЕ ПОЛКИ | ЭЛЕКТРОННАЯ БИБЛИОТЕКА
    Меню сайта  
 
открыть все | закрыть все

 
     

    Популярные статьи  
  » Кто убивал американцев 11 сентября 2001 года | Юрий Мух ...
» ASUS EN8600GTS Silent
» Дао - путь без пути | Бхагаван Раджниш (Ошо)
» Глобальный человейник | Александр Зиновьев
» Таймер для обреченных | Михаил Нестеров
» ATI Physics
» Актуальность шины видеопамяти шириной 512-бит для совре ...
» Уроки стриптиза | Наталья Перфилова
» О былых топовых 3D картах замолвите слово…
» ASUS EAX1800XT TOP
 
     

    Реклама  
 

QLE 120x240
 
     

    Архив  
  Октябрь 2007 (356)
 
     

    Опрос  
 
Нравится ли Вам новый дизайн и движок сайта

Да
Нет
Мне все равно
 
     

    Последние статьи  
  К сожалению пока не работает  
     

 
  ATI Physics  

В июне месяце, во время тайваньской компьютерной выставки Computex, компания ATI демонстрировала фирменную систему расчета физики, использующую в качестве «физического ускорителя» видеокарту Radeon X1900XTX. Тогда мы рассмотрели базовую концепцию технологии ATI Physics и теоретические предпосылки для использования видеокарт в качестве ускорителя физических расчетов.
 
 

Основные выводы, которые были получены в ходе первого знакомства с ATI Physics, заключается в том, что в настоящее время акцент делается на введение двух эффектов – обнаружение столкновений объектов и расчет поведения множества мелких (точечных) частиц. Что касается производительности «физических ускорителей», то нам приходилось верить цифрам, озвученным представителями ATI.

Разумеется, с той поры не проходило желание пощупать «физику» от ATI своими руками. И вот, эта возможность нам была предоставлена, благодаря российскому представительству ATI и компании Depo, чьи компьютеры после подписания эксклюзивного соглашения с ATI оснащаются видеоадаптерами исключительно этого производителя.

В этот раз мы сможем «вживую» увидеть, как работает ATI Physics и оценим масштабируемость производительности видеоадаптеров, используемых в качестве ускорителей физических расчетов.

Тестовый стенд

Мы получили на тестирование системный блок топовой конфигурации. Из наиболее важных для нас компонент отметим - процессор Intel Core Duo Extreme X6800 @ 2,93 ГГц, 2 Гб оперативной памяти стандарта DDR2, а также два видеоадаптера Radeon X1900XTX. Первый видеоадаптер используется в качестве «обычной» видеокарты, которая отвечает за рендеринг и вывод изображения, а второй Radeon используется в качестве ускорителя физических расчетов. На фото ниже - Компьютер DEPO с запущенной 3D-демо от ATI.

undefined<!-- undefinedsystem.jpg undefined--> undefined system.jpg

 

На предоставленной нам системе использовалась сугубо технологическая версия видео-драйверов. По словам представителей ATI это даже не бета-версия, а «альфа». Поэтому, чтобы не вносить путаницу, мы не будем приводить номер версии драйверов, поскольку свежие драйверы ATI Catalyst наверняка получат более высокий порядковый номер версии, и у кого-нибудь может возникнуть ощущение, что они будут «включать в себя» и поддержку ATI Physics, а это не обязательно так.

Мы позволили себе некоторую вольность в обращении с предоставленной на тестирование системой, а именно – после проведения первой серии тестов заменили «физический ускоритель» Radeon X1900XTX на Radeon X1600XT. Система без проблем распознала видеокарту и установила ее в качестве «ускорителя физики».

 

Предварительные замечания

Тестируемая система была нам предоставлена в полностью сконфигурированном виде, с уже предустановленными демо-сценами. Отсюда следует ряд определенных ограничений. Во-первых, получаемые результаты и оценки справедливы только в рамках рассматриваемой нами системы и необязательно будут совпадать с тем, что мы увидим, когда ATI Physics официально выйдет в свет. Во-вторых, не ждите объективного сравнения с конкурирующими технологиями расчета «физики», таких сравнений не будет, поскольку пока не существует тестовых приложений для демонстрации физических расчетов, способных запускаться на разных платформах.

Физические модели, положенные в основу каждого из рассматриваемых ниже тестов, нам неизвестны. То есть, мы не можем однозначно сказать, какими «физическими» параметрами наделены объекты, какие именно из физических законов учитываются при моделировании движения тел и частиц, а также с какой степенью приближения выполняются данные расчеты.

Для того, чтобы вы имели представление о сложности расчета «физики», приведем несколько примеров. Объекты реального мира имеют определенную массу, плотность, упругость, сложную форму. Из физических законов можно привести - закон всемирного тяготения, законы сохранения энергии и импульса. Объекты сложной формы и обладающие массой, имеют центр масс (или центр тяжести), который может не совпадать с геометрическим центром объекта. А это приходится учитывать, поскольку даже при прямолинейном движении центра масс объекта (центра тяжести), объект может вращаться. Другая сложность расчета поведения объектов сложной формы состоит в том, что при соударении необходимо знать «границу» объекта. В простейшем случае расчет соударений проводится для графических примитивов типа сферы или параллелепипеда, в который включен объект. Попытка привести в соответствие графический вид и физическую форму объекта приводит к возрастанию сложности модели объекта. Как видите, попытка смоделировать «реальное» поведение объекта в физическом мире кардинально отличается от задачи «движение бесконечно малой невесомой точки в вакууме». Теоретически, зная все параметры всех объектов и их начальные скорости/ускорения, можно рассчитать положение, скорости и ускорения всех объектов в любой момент времени. Но для этого потребуется решить систему дифференциальных уравнений, количество которых пропорционально числу объектов. Для выполнения подобной задачи требуется неимоверное количество вычислительных ресурсов. Поэтому обычно прибегают к тем или иным упрощениям.

Очевидно, что возрастание сложности модели позволит получить очень реалистичную картинку, но потребует больших вычислительных ресурсов. Нахождение разумного компромисса между реалистичностью и производительностью – задача сама по себе довольно нетривиальная. Следует также учитывать, что увеличение количества объектов в сцене накладывает дополнительную нагрузку на основной видеоадаптер, который занимается финальным рендерингом, даже если расчетом «физики» занимается специализированный вычислитель.

Мы не будем гадать, какие именно упрощения были использованы в той или иной демо-сцене, использованной в тестах. Скажем лишь, что по нашим наблюдениям, все использованные объекты имеют массу, абсолютно гладкие (отсутствует сила трения) и твердые (то есть не деформируются). Это имеет значение при расчете движения объектов после соударения. Объекты находятся в поле тяготения, то есть, запущенные под углом к горизонту - движутся по параболе. Границы объектов, по которым производится расчет столкновений, довольно близко совпадают с видимой формой объекта.

Как видите, инженеры ATI не ставили перед собой легких задач. Давайте посмотрим, что же получилось в итоге.

Из десятка имеющихся тестов мы выбрали 3 синтетических теста и 2 «игровых». Такой выбор обусловлен тем, что синтетические тесты показывают стабильные средние результаты от запуска к запуску. Это позволяет провести количественные оценки полученных результатов с относительно малой погрешностью и сравнить результаты для двух видеоадаптеров, играющих роль «физического ускорителя». Тесты, эмулирующие игровое окружение, позволяют получить представление о новшествах, которые возможно появятся в будущих играх с поддержкой «физики».

Все тесты проводились в разрешении 1280x1024 точек, полноэкранное сглаживание и анизотропная фильтрация отключались (NO AA/AF).
 

Тест №1. Падающие камни.

Демо-сцена выглядит в виде «склона горы» на которую непрерывным поток сыплются камни. Поверхность «горы» является относительно простой полигональной поверхностью с «желобами» и «кочками». «Камни» представляют собой вытянутые эллипсоиды, состоящие из малого числа полигонов. Регулируемый параметр – число «камней», которое равно 10 000, 15 000 или 20 000 штук.

Один взгляд лучше, чем сто слов. Предлагаем вашему вниманию видеоролик rocks10k.avi (6,42 Мб, 640x480, DivX). К сожалению, получить изображение высокого качества не удалось, поскольку видео записывалось с экрана монитора. Ролик состоит из условно трех частей. Сначала «физика» ускоряется на GPU, затем тест переключается на использование CPU в качестве ускорителя «физики», и наконец переключение к исходному состоянию. Вы можете оценить как достоверность реализации «физики», так и разницу в производительности между GPU и CPU.

undefined<!-- undefinedrocks-zoomed.jpg undefined--> undefined rocks-zoomed.jpg

«Камни» на «склоне горы» крупным планом. Как легко заметить, присутствует 3 вида камней, отличающихся размерами и цветом, которые расположились в складках «горного» рельефа.

Расчет «физики» в данном тесте сводится к обнаружению столкновений между «камнями» и моделированию их движения согласно физическим законам. На скриншоте ниже показан вариант теста с количеством камней, равным 15 000 штук.

undefined<!-- undefinedrocks-15k.jpg undefined--> undefined rocks-15k.jpg

Как видно из скриншота, скорость обновления сцены равна 50-ти кадрам/с.

Мы предполагаем, что FPS ограничивается производительностью «ускорителя физики», а не графики. Косвенным подтверждением этому служит то, что скорость обновления сцены не изменялась при изменении угла обзора сцены таким образом, что в кадре оставался минимум объектов (снижалась нагрузка на видеоадаптер рендеринга).

Как уже говорилось, тест позволяет менять количество камней в сцене, а также использовать для расчетов «физики» как выделенный видеоадаптер (GPU), так и центральный процессор (CPU). Мы получили значения FPS для всех возможных случаев, соответственно - 10 000, 15 000 и 20 000 камней в сцене, как рассчитанные на GPU, так и на CPU. К этим результатам мы также добавили значения, полученные при расчете «физики» на видеокарте Radeon X1600XT, которая заменила X1900XTX в качестве «ускорителя физики». Все вместе это отображено на графике ниже.

undefined<!-- undefinedrocks.gif undefined--> undefined rocks.gif

Проанализируем полученные результаты.

Первое, что хотелось бы отметить – при замене одного «физического ускорителя» на другой, значения 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 относительно несложных объектов (не путайте с количеством полигонов).

Много это или мало? Для типичной игровой сцены – очень много. Ведь в большинстве игр количество предметов окружающей обстановки, с которыми игрок может взаимодействовать, редко превышает сотню, не говоря уже о тысяче. Да и детальный просчет траектории движения нужен далеко не для всех них. Конечно, не все объекты так просты как эти «камешки», но запас по производительности изрядный, так что есть из чего выбирать – огромное количество простых объектов, среднее количество – сложных, или смесь этих случаев.
 

Тест №2. Поддон.

Демо-сцена выглядит в виде поддона с неровным дном, в котором находятся предметы нескольких разных типов. Это конусы с основанием, похожие на фигуры временной дорожной разметки, кости и черепа, а также обрубки деревьев.(Ужас! Это не демо-сцена, а просто какой-то «взрыв у придорожного кафе»).

Кстати, обратите внимание, демка построена на движке Havok FX.

undefined<!-- undefinedskittles.jpg undefined--> undefined skittles.jpg

На скриншоте изображена сцена в состоянии «покоя». Покой в кавычках, потому что даже лежа на дне поддона все объекты мелко подрагивают, меняя свое положение и сталкиваясь друг с другом.

Как видите, второй тест имеет много общего с первым тестом – неровная поверхность дна/склона, большое количество мелких объектов, объекты разных видов. Но есть и существенные отличия - все объекты имеют довольно сложную форму, при этом границы объектов, по которым проводится обнаружение столкновений, очень близко совпадают с видимыми границами объектов. Типы объектов существенно сложнее, чем в первом тесте, видимо поэтому количество объектов заметно меньше - 1505 штук.

Возможности теста позволяют привести объекты в движение, при этом они закручиваются вокруг синей стрелочки (чей кончик виден в середине кучи). Саму стрелку, являющейся «центром вращения тайфуна» также можно двигать в пределах поддона, тем самым усложняя задачу для физического ускорителя. Что касается скорости, то разброс значений FPS при движении объектов конечно больше, хотя «на глаз» среднее значение примерно одинаково со значением в «покое». Встроенные возможности по вычислению среднего FPS в тесте отсутствуют, поэтому мы решили излишне не усложнять задачу и сняли результаты в состоянии «покоя». Вот что получилось в итоге:

«физический» ускоритель Radeon X1900XTX – 80 FPS
«физический» ускоритель Radeon X1600XT – 60 FPS
«физический» ускоритель CPU Core Duo X6800 – 12 FPS

Как видите, несмотря на существенные отличия от первого теста, соотношения скорости, показываемые разными ускорителями «физики», очень похожи на те, что мы видели в первом тесте.

Вывод

Для отображения с нормальной скоростью сцены со значительно усложненными объектами приходится уменьшать их количество. В нашем случае – на порядок. Тем не менее, даже полторы тысячи «реальных физических» объектов – это очень много для любой современной игры.

Тест №3. Шахматные фигуры.

Демо-сцена в этом тесте на первый взгляд проста – стол с шахматной доской и фигурами на ней. Что интересно, при запуске теста начальное число объектов, по сведениям из строки состояния, равно 66 штук. Из них 64 – шахматные фигуры, которые стоят на каждой клетке доски, а две оставшиеся – стол и книга.

undefined<!-- undefinedchess1.jpg undefined--> undefined chess1.jpg

Как и в предыдущем тесте, шахматные фигуры «подрагивают», как говорится – покой нам только снится. Если в первом тесте большое внимание уделялось расчету траектории движения объектов, то в этом тесте акцент делается на детектировании столкновений, а как таковой расчет траекторий практически отсутствует из-за относительной статичности сцены.

undefined<!-- undefinedchess2.jpg undefined--> undefined chess2.jpg

Интересное начинается дальше. По нажатию кнопки можно высыпать на стол порцию фигур. Количество объектов в сцене при этом, естественно, увеличивается, а значение FPS – падает. Поскольку «порции» фигур сравнительно небольшие, по 640 штук, можно построить подробный график зависимости FPS от числа фигур в сцене. Что мы и сделали.

undefined<!-- undefinedchess.gif undefined--> undefined chess.gif

При минимальном количестве объектов значения FPS для обоих радеонов равны. Скорее всего, производительность упирается в возможности основного видеоускорителя, или же ограничивается другими факторами (например – частотой взаимодействия основного и «физического» ускорителей, но это лишь догадки). А вот CPU неплохо показывает себя в начале теста. Впрочем, первая же порция шахматных фигурок быстро расставляет все по местам. Скорости CPU уже недостаточно, чтобы показать минимально приемлемые 30 кадров/сек. Radeon X1600XT тоже теряет в скорости практически вдвое, но затем производительность падает уже не так сильно. Вообще, данный тест создает более серьезную нагрузку на «физические» ускорители, и оказывается довольно «тяжелым» даже X1900XTX.

Вывод

По прикидкам получается, что даже такой мощный центральный процессор как Core Duo X6800 способен просчитывать «физику» с нормальной скоростью лишь для около 500 объектов. Хотя в абсолютном выражении это очень прилично для типичной игры, данная оценка является скорее верхней границей возможностей современных CPU по обработке «физики», ведь вычислительная мощность большинства десктопных процессоров гораздо ниже.

Для видеокарт в роли ускорителей «физики» типичное значение объектов, которое они могут просчитать с нормальной скоростью, по прежнему остается на уровне примерно 1000-1500 шт.
 

Тест №4. «Повелитель мусора»

Да простят меня сотрудники и фанаты ATI за такую вольность в интерпретации названия этого теста. На самом деле он называется Dockland, то есть – «территория дока».

undefined<!-- undefinedgarbage1.jpg undefined--> undefined garbage1.jpg

Действительно, на док похоже, только вот корабликов не видно, а мусора очень много. Пустые бутылки, жестяные банки и какие-то коробки, общим количеством 4080 штук, то есть объектов. Но у нас есть воин коммунальной службы, который знает, что со всем этим беспорядком делать. Наш герой, чью фигурку вы видите на скриншоте, способен притягивать мусор.

undefined<!-- undefinedgarbage2.jpg undefined--> undefined garbage2.jpg

После чего становится похожим на пирамиду или елочку и полностью скрывается под притянутым мусором. На этом скриншоте вы его уже не видите.

Если говорить серьезно, то эта демка тоже построена на движке Havok FX и гораздо больше напоминает игровую сцену, чем рассмотренные нами ранее «синтетические» тесты. Человечек может свободно передвигаться по территории дока как в любой обычной игре с видом от третьего лица. «Сбор мусора» и его разбрасывание происходит по нажатию «горячей клавиши». Интересная особенность данного теста – возможность включения «ветра» (который с моря дул, видимо). В отсутствии «мусорщика» под воздействием ветра разбросанные объекты неспешно дрейфуют. Если же к делу подключается мусорщик, то объекты собираются вокруг него как и прежде, но траектории движения уже учитывают влияние ветра.

Впрочем, что объяснять, лучше посмотрите видеоролик – garbage.avi (11 Мб, 640х480, DivX).

Собственно, осталось привести цифры, которые показывают наши «ускорители»:

«физический» ускоритель Radeon X1900XTX – 55 FPS
«физический» ускоритель Radeon X1600XT – 40 FPS
«физический» ускоритель CPU Core Duo X6800 – 8 FPS

Вывод

Как и прежде, соотношение сил примерно сохраняется. Что касается большого количества объектов, присутствия внешних сил в виде «ветра» и одновременно высоких значений FPS, то это может как объясняться примитивностью объектов (цилиндр, параллелепипед), так и использованными алгоритмами расчета траекторий и столкновений. Впрочем, данные упрощения не спасают CPU в любом случае.

Тест №5. Реальный дым как множество точечных объектов.

Ну и наконец последний тест. Суть теста в демонстрации расчета «физики» для системы точечных частиц. Главное свойство таких частиц – бесконечная малая масса и пренебрежимо малые размеры. То есть, расчет «физики» сводится к чистой кинематике движения идеальной точки (траекторий), а столкновениями между частицами можно пренебречь.

undefined<!-- undefinedsmoke.jpg undefined--> undefined smoke.jpg

Место действия то же, что и в предыдущем тесте – территория дока. Только в этот раз наш герой не гоняет пустые банки, а весело бегает по решеткам, из которых валит самый настоящий пар, припевая – «я тучи разгоню руками».

В данном тесте выполняется расчет для 2020 частиц. Даже из скриншота видно, что дым выглядит очень натурально. Но никакой скриншот не может передать всю красоту в ее динамичности. Чего стоят отдельные клубы (даже скорее – «клубки») пара, отрывающиеся от главного столба, когда наш герой рассекает поток своим торсом. Или закручивающийся вихрь пара, когда фигура человечка вращается стоя посередине решетки.

Лучше взгляните на видеоролик – smoke.avi (13,5 Мб, 640х480б DivX)

При съемке ролика мы специально переключали режим между обычным отображением и каркасным, чтобы показать, что дым сделан честно. «Каркас» частицы есть сама частица, поэтому вид клубящегося пара никак не должен изменяться.

Что касается цифр, то вот они:

«физический» ускоритель Radeon X1900XTX – 100 FPS
«физический» ускоритель Radeon X1600XT – 80 FPS
«физический» ускоритель CPU Core Duo X6800 – значение отстутсвует.

Вывод

Реализация «честного» пара, дыма, тумана, способна поднять визуализацию игр на новый качественный уровень. Снятие с ускорителя «физики» такой части нагрузки, как детектирование столкновений, позволяет с высокой скоростью производить расчеты системы мелких частиц и, по всей видимости, показанные 2000 частиц далеко не предел.

Заключение

Знакомство с живыми тестами оставляет самое приятное впечатление и просто заставляет мечтать о тех временах, когда мы наконец увидим настоящую «физику» в играх.

Современные видеокарты ATI даже среднего класса вполне способны взять на себя роль «физического» ускорителя и демонстрируют приличную скорость при работе с впечатляющим числом объектов, подчиняющимся «реальным» законам физики.

Осталось дело за малым. Надеемся, что разработчики игр сумеют порадовать нас не только красивыми отвлеченными визуализациями, но и умело «вписать» открывающиеся возможности в общую канву геймплея.

 
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Комментарии (0)   Распечатать
 
     
  Информация  

Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.

     
    Панель управления  
 
Логин
Пароль
 
 
     

    Календарь  
 
«    Октябрь 2007    »
ПнВтСрЧтПтСбВс
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
 
     

    Выбор скина  
  К сожалению не доступно  
     

    Реклама  
 

QLE 120x240
 
     

Рейтинг@Mail.ru Rambler's Top100 Портал HotINDEX: знакомства, товары, хостинг, создание сайта, Интернет-магазин, развлечения, анекдоты, юмор, эротика, погода, курсы валют и многое другое!