Дата:   18.11.2017 г.
Время:
 
 
Профессионалам и любителям
ПРОСТО * ДОСТУПНО * ИНТЕРЕСНО
01796
Подписной
индекс
Опрос
Какой у вас процессор?
Погода
 
Архив - Физика в играх - Журнал «Компьютер»
Физика в играх
№ 3-4'2012     Александр Романов     Тема: Игры     ( Прочитано 9923 раз )
 
Итак, в этом году я задумался над сменой видеокарты ATI Radeon x1650 на новую и хоть сторонник видеокарт AMD-ATI, но хотелось у себя на ПК наблюдать «физику» в любимой игре «Batman: Arkham Asylum».
Была мысль купить слабенькую видеокарту nVidia для «физики» или купить что-то получше nVidia для самостоятельной обработки «физики». Побродив по форумам, решил купить GeForce GTX 560 Ti. Почему, сейчас объясню. Но перед тем, как рассказать об использовании физики в играх, опишу технологию ATI Stream Computing от AMD-ATI.
 
ATI Stream
 
Технология ATI Stream Computing – альтернатива nVidia CUDA и физика в играх. Широко применяется, в первую очередь, в сфере обработки мультимедийных данных. С помощью вычислительных ресурсов видеокарт значительно ускорится работа многих популярных приложений для редактирования видео, звука и изображений.
Физика в играх
 
Кроме того, в недалёком будущем средствами технологии потоковых вычислений планируется заметно улучшить скорость исполнения некоторых ресурсоёмких функций операционной системы или офисных приложений, например, функции поиска.
Однако не стоит забывать о применении ATI Stream Computing в играх. Ее возможности позволяют разработчикам компьютерных игр поднять спецэффекты и искусственный интеллект персонажей на новый качественный уровень.
Начиная с серии Radeon HD 4000 можно опробовать возможности технологии потоковых вычислений. Значительно ускорилась работа видеоконвертера ATI Avivo Video Converter.
 
Что касается ПО, адаптированного к технологии AMD, их число постоянно растёт: Microsoft, Adobe, CyberLink и ArcSoft. Поддержка аппаратного ускорения уже есть в Adobe Acrobat Reader, Adobe Photoshop CS4, Adobe Flash 10, Adobe After Effects CS4, Microsoft Office PowerPoint 2007, ArcSoft TotalMedia Theater, CyberLink PowerDirector 7.
 
Физика в играх
 
Разработчики современных игр уделяют самое большое внимание качеству и детализации трёхмерной графики. Причём, иной раз, в надежде приковать внимание игрока к экрану невиданными ранее спецэффектами это делается даже в ущерб сюжету. Однако, помимо графики, немалую роль в деле более полного погружения игрока в виртуальную реальность играют и другие факторы, такие как звук и реалистичная физическая модель.
Но даже самые простые явления физического мира, наблюдаемые нами изо дня в день, на деле оказываются крайне сложными в реализации. К примеру, имитация потока воды или реалистичный разброс осколков разбитого стекла требуют массы сложных математических вычислений и, как следствие, соответствующих процессорных мощностей.
 
Большинство современных игр по-прежнему используют для этой цели ресурсы центрального процессора системы, однако, в распоряжении разработчиков давно имеется куда более мощное вычислительное устройство, ведь любой современный видеоадаптер, по сути, представляет собой набор из множества унифицированных процессоров, способных работать параллельно.
Первые ласточки реализации «физики» были в игре «Counter-Strike» (кучность пулемёта ухудшалась при длительной стрельбе) и «Doom 3» (сколько было радости, когда в тумане от фонарика появлялась радуга) или «Unreal Tournament» и во всех играх на ее движке.
 
Также вспоминается физика в стратегии «В тылу врага». В данной игре присутствует тотальная разрушаемость: воронки от взрывов запросто могут быть использованы в роли укрытий, а отлетевшая башня танка может убить целую группу зазевавшихся солдат, потом же солдаты могут спрятаться за ней при обороне. В случае ведения огня по далеко стоящей мишени существенно падает его точность и убойная сила.
Также очень важна поддержка графическим процессором технологии шейдеров. Это микропрограммы, с помощью которых описывается внешний вид трёхмерного объекта. Это позволяет создавать в играх потрясающие видеоэффекты, например, рисовать реалистичные взрывы, водные и зеркальные поверхности и многое другое.
 
Физика в играх
Рис. 1. Человек притягивает мусор
 
Физика от ATI
 
Так вот, в 2006-2007 гг. появилась много сообщений о разработке физики в играх, чтобы значительно улучшить реалистичность создаваемого изображения и поведения объектов. Тогда, ещё независимая, ATI разработала и продемонстрировала свою технологию ATI Phisics (рис. 1,2,3) на базе концепции Havok FX, основная суть которой заключалась в использовании мощностей видеокарт для ускорений определённых физических вычислений.
 
Физика в играх
Рис. 2. Падающие шахматные фигуры
 
Havok FX должен был использоваться только на компьютерах, оснащённых минимум двумя видеокартами в режиме SLI или CrossFire. При этом одна видеокарта из этой связки должна была полностью выделяться для физических вычислений.
 
Физика в играх
Рис. 3. Имитация дыма
 
Тогда ATI обещал, что достаточно иметь минимум две видеокарты, одна из которых будет в качестве ускорителя «физики»! Разумеется, без ограничений не обошлось, «старый» Radeon должен быть не нижет уровня X1600. Потому что, расчёт физических эффектов выполняется шейдерными блоками GPU, которые были значительно улучшены в семействе ATI Radeon X1x00.
Intel всем доказывала, что лучше всего использовать для этого многоядерные, и только Intel ;), процессоры. Но и Intel и ATI обещали, как только выйдет новый DirectX (тогда ещё ver.10), так сразу и почувствуете физику в играх.
Но обещанную «физику» дал только DirectX 11, включив возможность использовать все ядра процессора аппаратно, а не как в DirectX 10 программно (в DirectX 9 этого вообще не было), загружая их на полную.
 
Также появилась в новом DirectX возможность использовать шейдеры (основные целевые приложения для вычислительного шейдера включают в себя пост-процессовую обработку, физику, AI и некоторые другие, как трассировка лучей) и тесселяцию.
Кстати, ATI была первая из производителей видеочипов, включившая в них выделенный аппаратный модуль тесселяции (2005 г.). Причина такого решения была весьма очевидна: это должно было позволить разработчикам и художникам создавать более реалистичные и сложные персонажи, избегая огромных накладных расходов.
 
В основе этого подхода лежала идея, что объект, расположенный далеко от точки обзора, будет менее детализирован, потому что его тяжело рассмотреть, но по мере его приближения число треугольников в изображении этого объекта экспоненциально увеличивается с целью увеличения его детализации для того, чтобы он выглядел более реалистично.
Достоинством этого метода является то, что, когда рассматривается полностью просчитанное изображение, среднее количество обработанных треугольников остаётся близко к постоянному значению, так что игроку значительно реже приходится сталкиваться с резкими падениями производительности.
Это является одной из причин, почему AMD представило аппаратное обеспечение для тесселяции в Radeon HD 2900 XT, которое включено в состав всех последующих GPU компании.
Физика в играх
Рис. 4
 
А что же nVidia?
 
Но вернёмся к продвижению физических процессов в играх. nVidia тоже тогда пыталась что-то придумать по этому поводу, но дальше лейбла (SLI Physics) (рис. 4) и идей не пошла.
Физика в играх
Рис. 5
 
Была ещё тогда компания Ageia (рис. 5), которая разработала свой движок PhysX и плату-ускоритель физики (PPU – Physics Processing Unit) на собственном одноименном чипе. Процессор PhysX, состоял из 125 миллионов транзисторов и включал в себя ядро общего назначения, управлявшее массивом SIMD-процессоров.
Соответственно, на простых, но требующих массивных параллельных вычислений задачах, таких, как расчёт столкновения множества объектов, PhysX заведомо превосходил любой CPU. Что в теории давало возможность разработчикам игр улучшить уже существующие спецэффекты, такие как взрывы, дым или огонь.
А также использовать новые продвинутые эффекты, например, имитировать реалистичное поведение жидкостей и тканей или создавать полностью разрушаемое окружение. Т.е. в общем виде ПО передавало в плату данные о текущем состоянии сцены и получала обратно результаты имитации физики.
Тогдашняя мода объединять видеокарты в связки не обошла стороной и физускорители Ageia, которая разработала также возможность использования нескольких карт в связке для повышения скорости физических расчётов.
 
Технология называлась Hardware Scene Manager (HSM). Физический движок PhysX SDK состоит из трёх главных компонентов по обработке физики: обработка твёрдых тел, обработка тканей, обработка жидкостей.
В отличие вот большинства других физических движков, которые поставляются и устанавливаются вместе с игрой, PhysX SDK необходимо установить как отдельный драйвер. Если на компьютере была установленная плата PhysX, то драйвер PhysX SDK использовал ее ресурсы, если же плата PhysX отсутствовала, то вычислительные задачи переносились на центральный процессор.
После того, как компания nVidia в 2008 г. приобрела Ageia, PhysX полностью перешёл в собственность nVidia. PhysX SDK распространяется бесплатно и накладывает на разработчиков лишь необходимость указания в программном продукте информации об используемом физическом движке, а так же отображения логотипа компании nVidia на этапе загрузки программного продукта.
 
 
 
 
 
Поддержка PhysX SDK была интегрирована в структуру CUDA и стала доступная для всех видеокарт производства nVidia, начиная с серии 8ххх, под Windows XP. Физический движок PhysX SDK теперь известен как nVidia PhysX SDK. Таким образом, необходимость в выделенном физическом процессоре PhysX отпала.
28 июня 2008 года Эран Бадит, участник ресурса NGOHQ.com, запустил аппаратную поддержку PhysX SDK на видеокарте Radeon HD 3870. Создал бета-версию патча для драйверов nVidia. Данный неофициальный патч перехватывает и отменяет блокировку работы PhysX, если в системе обнаружен видеоадаптер от AMD.
Вначале компания nVidia отреагировала на инициативу Эрана Бэдита негативно, заявив, что это невозможно. Однако Бэдиту предложили потом вступить в команду разработчиков nVidia, открыли доступ к документации, SDK, аппаратному обеспечению и дали контакты инженеров.
 
Было обещано, что модифицированные драйверы для карт ATI скоро станут доступны для загрузки. В свою очередь компания ATI официально не поддержала инициативу Бэдита. Для написания официальных (не модифицированных) драйверов ATI с поддержкой PhysX компания nVidia предлагает лицензировать аппаратную поддержку CUDA, которая включает в себя PhysX. Однако технология CUDA конкурирует с технологией AMD FireStream.
В графических драйверах nVidia версии 186 была заблокирована возможность совместной работы двух графических карт, на которые установлены графические процессоры от разных производителей (AMD и nVidia).
 
Таким образом, если раньше была возможность разделения вычислений по разным графическим картам, например, карта с процессором nVidia могла рассчитывать игровую физику, а карта с процессором AMD заниматься рендерингом изображения, то с версии 186 эта возможность заблокирована, даже если в системе обнаружен интегрированный GPU другого производителя.
Кроме того, движок PhysX новой версии не поддерживает специализированные физические ускорители (PPU) PhysX, разработанные ещё Ageia, если в системе обнаружен GPU, выпущенный не nVidia. Также пропала и поддержка PhysX и на CPU. Последним «достижением» на этой ниве является отказ nVidia от поддержки старых видеокарт, в новых версиях драйверов для Windows 7.
 
Как быть?
 
Итак, моделирование игрового мира требует достаточной вычислительной мощности, ведь для этого необходимо огромное количество математических вычислений. Современные процессоры видеоадаптеров могут выполнять несколько операций одновременно, используя параллельные вычислительные конвейеры.
Чем больше тактовая частота чипа графической платы и больше вычислений он может производить одновременно, тем сложнее и детальнее может быть визуализирован мир игры на экране монитора.
 
Физика в играх
Рис. 6
 
Если хотите увидеть «физику», например, в игре «Batman: Arkham Asylum» (рис. 6), то достаточно иметь видеокарту вроде GeForce GTX 260 или GeForce GTX 280, тогда особого смысла ставить для физики отдельную карту нет т.к. им и так хватает мощности и для графики и для физики.
Достаточно включить PhysX, но игры, которые требуют установленную карту как минимум GeForce GTX 280, могут не позволить включить физику. Однако, это закономерно влечёт за собой проблему.
 
Если использовать одно и то же ядро одновременно для графики и физики, то обе эти задачи будут конкурировать между собой за вычислительные мощности GPU, а в результате легко может сложиться ситуация, когда их окажется недостаточно для обеспечения приемлемой производительности в сцене, использующей одновременно сложную графику и продвинутые физические эффекты. Можно решить эту проблему установкой в систему второй графической карты и назначением ее в качестве ускорителя PhysX.
 
Видеокарты nVidia с менее чем 32 шейдерными ядрами не поддерживают PhysX. Вставить «физическую» видеокарту (идеально подходят GeForce GTX 260 или GeForce GTX 280, хотя сейчас без проблем справляется GeForce GT 240 от 512 Мбайт и выше) можно в PCI-E х16 или х8, или х4 слот, что абсолютно несущественно проявится в падении производительности. При этом версия слота (1.0 или 2.0) не имеет большой разницы (рис. 7-10).
 
Физика в играх
Рис. 7
 
Физика в играх
Рис. 8
 
Физика в играх
Рис. 9
 
Физика в играх
Рис. 10
 
На графиках видно, что при отключенной физике балы теста одинаковы для всех вариантов подключения GeForce GTX 560 Ti, кроме одиночной GeForce GTX 560 Ti. Это можно объяснить тем, что сильно нагрузить (без включения PhysX) видеокарту игра не способна.
К тому же не всегда дополнительная видеокарта для обработки физики (на диаграммах указаны эти видеокарты после знака «+») приносят пользу. Хотя если в качестве дополнительной видеокарта GeForce GTX 295, то пользы от нее больше, нежели от GeForce GTX 560 Ti. Могу предположить, что проблема в драйверах, а также в скорости PCI-E, в который установлена «физическая» видеокарта.
Однако установка дополнительной карты не всегда возможна или желательна, а двухпроцессорные GeForce редко встречается в продаже и дороги. Кстати, есть уникальные видеокарты, оснащённые отдельным ядром для ускорения PhysX – GeForce GTX 275 CO-OP PhysX Edition от EVGA. Видеокарты GeForce GT 460 и выше не сильно нуждаются в дополнительном ускорителе физики.
 
«А как же AMD»?
 
… спросят поклонники AMD - ATI.
 
Они все время молчали. Им было не до этого (слияние с ATI). В связи с тем, что 15 сентября 2007 года фирма Intel выкупила фирму Havok, то «Havok FX» был отменён.
Но вот в 2009 году официальным пресс-релизом корпорация AMD дала старт программе под названием Open Physics Initiative. Ее задача – «вывести на новый уровень реализм в играх, симуляторах и популярных приложениях».
Практическим шагом, заложившим основу программы, стало подписание соглашения между AMD и Pixelux Entertainment. Корпорация AMD подчёркивает, что делает ставку на открытость технологии. Результатом функционирования должно быть существенное расширение применения технологии физических расчётов в реальном времени при помощи бесплатного «движка» Bullet Physics, распространяемого в исходных текстах.
 
Чтобы стимулировать разработку программного обеспечения, использующего OpenCL (Open Computing Language) и Bullet Physics, корпорации AMD и Pixelux предлагают универсальный подход, подходящий для игровых консолей, ПК и прочих аппаратных платформ.
В течение многих лет Pixelux совершенствует систему физических расчётов Digital Molecular Matter (DMM) System, в основе которой лежит использование метода конечных элементов. Раньше DMM была закрытой разработкой Pixelux, но теперь ее сможет использовать широкий круг разработчиков, так как оная будет встроена в Bullet Physics.
 
Подобно тому, как технология ATI Stream сейчас даёт разработчикам ПО возможность использовать в своих программах совместную работу нескольких CPU и GPU, так Bullet Physics сделает широкодоступными разработки Pixelux.
По замыслу партнёров, преимущества DMM будут доступны для систем, поддерживающих OpenCL и DirectX 11 (AMD продаёт соответствующие механизмы в DirectCompute API). Новейшие графические продукты, такие, как серия GPU ATI Radeon HD 5800, обеспечивают невероятное качество визуализации и высокую производительность.
 
Вкупе с физическим моделированием они способны сделать новый шаг в реалистичном изображении того, как игровые объекты движутся, деформируются и разбиваются на части. Что же, если (или правильнее - когда) совместные усилия AMD и Pixelux Entertainment приведут к успеху, судьба закрытой разработки, коей является NVIDIA PhysX, представляется незавидной.
С другой стороны, AMD официально начала сотрудничать с ирландской Havok, приобретённой корпорацией Intel. Нет сомнений в том, что основной целью этих отношений является адаптация физического движка Havok FX к видеокартам Radeon.
AMD не просто занимается критикой конкурентов, но также и продвигает открытую архитектуру для просчёта физики в играх Open Physics Initiative. AMD даже хотела реализовывать в своих продуктах поддержку движка PhysX и платформы CUDA.
 
Подведу итог
 
Сейчас все разработчики физики разделились между тремя доступными вариантами: PhysX, Havok или создание их собственного физического движка.
Уже наверно заметили, что для обработки физики также используются шейдеры в технологиях CUDA от nVidia и ATI Stream.
Есть разработка и нового физического движка Lagoa Multiphysics. Среди функций движка заявлены способность обработки движения и взаимодействия частиц в сыпучих материалах, несжимаемых жидкостях, упругих конструкциях, деформации пластиковых материалов и многие другие эффекты.
 

 
 
На главную страницу На предыдущую страницу На начало страницы
 
 
 
 
 
2009 - 2017 © СПД Зайцев А.Б.
Сайт является средством массовой информации.
При перепечатке и цитировании в печатных СМИ ссылка на журнал "Компьютер" обязательна.
При перепечатке и цитировании в Интернете обязательна активная гиперссылка на сайт Comput.com.ua, не закрытая для индексирования.
Украина онлайн Рейтинг@Mail.ru Рейтинг Сайтов YandeG