Вход в систему
Последние статьи
Самые комментируемые статьи
Автор: Алексей "Старпом" Макаренков
24 часа в сутки вопросы по созданию, модифицированию и вскрытию игр принимаются на адрес gamedev@igromania.ru • • • Я несколько раз встречал странное название “ragdoll”. Я так понимаю, оно как-то связано с моделированием. Это движковый термин или он откуда-то из области игрового моделирования? Как сделать регдол самому? Конкретно термин ragdoll используется компанией Valve применительно к движку Source. Суть технологии довольно проста. Персонаж разбивается на некоторое количество сегментов-моделей, движение каждой из которых описывается по собственному алгоритму. Движения персов после смертельного ранения не заскриптованы, а просчитываются в реальном времени. За счет этого достигается плавность и реалистичность падения. Персонажи “валятся” на землю каждый раз по-новому. Для придания дополнительной реалистичности Valve встроили в свой движок дополнительную систему ограничения движения конечностей в основных суставах. Вспомните UT2004 — там, по сути, работает та же система просчета гибели персонажей. Никаких скриптов, реальное время и очень симпатичные умирания героев. Но при падении тела в последнем UT выглядят как мешки с песком. Выгибаются и отскакивают самым неожиданным образом. Рука какого-нибудь робота может выгнуться назад в локтевом суставе, нога — вращаться в колене. Красиво, но нереалистично. За счет блокирования движений в суставах по некоторым осям Valve добились большей реалистичности. О том, как самому сделать перса с системой ragdoll, например, для HL2 — в рамках ответа рассказать невозможно. Это материал минимум на 2—3 страницы. • • • Во многих играх часто используются шейдеры, вы сами об этом постоянно пишете. Объясните простому геймеру, как их увидеть. Например, я знаю, что в HL2 есть шейдеры, но сколько ни смотрел, так и не нашел их.
Удивительно, но игростроевский ящик буквально завален вопросами, касающимися шейдеров. Все стремятся их непременно увидеть, для чего тщательно рассматривают картинку на экране мониторов, которую транслирует игровой движок. Товарищи, раз и навсегда вносим ясность. Причем на пальцах, так что, товарищи продвинутые разработчики игр, не серчайте. Шейдеры — это не деталь изображения на экране монитора. Шейдеры — это программы, созданные либо для обработки вершин полигонов (так называемые вершинные шейдеры), либо для работы с текстурами (так называемые пиксельные шейдеры). Шейдеры пишутся на специальном языке низкоуровневого программирования, позволяющем отдавать команды напрямую графической карте. Тем самым снимается нагрузка с процессора. Причем не какой-то маленький процент от общего числа расчетов, а довольно большой “кусок”.
В результате процессор занимается более важными задачами, а новейший 3D-акселератор работает с тем, с чем и должен работать, — с графикой. Если чуть углубиться в вопрос, то важно отметить, что вершинные шейдеры выполняются на этапе пререндеринга сцены, выводимой на экран, и теоретически могут эмулироваться программно (центральным процессором). На практике же это весьма ресурсоемко и проще использование шейдеров отключить вовсе, чем заставлять ЦПУ просчитывать такие объемы информации. Пиксельные же шейдеры выполняются на последних этапах обработки сцены и могут быть реализованы в сцене только на аппаратном уровне. То есть без акселератора их никак не увидишь, да и с ним увидишь, только если конкретный аксель поддерживает конкретную версию шейдеров. Если кратко, то выглядит именно так. Дальше можно расписывать детально, какие виды вершинных и пиксельных шейдеров бывают, но это уже тема для отдельной статьи. Главное, теперь вы знаете, что шейдер — это не какой-то конкретный графический эффект, а всего лишь “кусок кода”, который управляет графической картой компьютера. И проявляться на экране шейдеры могут в виде самых различных графических эффектов. |