Открытая методика тестирования скорости рендеринга в пакете трехмерного моделирования 3ds max 5.1 SP1 |
Нет, на партийные темы мы сегодня говорить не будем — немного не та специфика у сайта. Однако стремление «звучать заставить заново» применимо ко многим областям человеческой деятельности, и, как ни странно… даже к тестированию компьютерного железа. И действительно: читая стандартную тестовую статью, где в прокрустовом ложе универсальной методики Adobe Photoshop соседствует с архиваторами и программами для кодирования мультимедийной информации, а 3ds max — с трехмерными шутерами Quake или Serious Sam, подчас трудно понять: а что мы, в конце концов, должны вынести из ее содержимого? Что 20% перевес в Quake компенсируется низкой скоростью вращения изображения в Photoshop, и, учитывая среднюю скорость рендеринга некой сцены в 3ds max, «процессор получился, в среднем, неплохой»? Несколько странные «компенсации», не так ли? Интересует ли количество fps в Quake специалистов по допечатной подготовке? А скорость кодирования MP3 — дизайнеров-трехмерщиков? Как минимум, не всегда. В связи с вышеизложенным, возникла общая концепция: разрабатывать большие, полноразмерные методики тестирования производительности для наиболее популярных областей применения или даже отдельных приложений. Пусть не часто они будут использоваться в полном объеме, но зато одна статья раз в полгода или год может обеспечить достаточно исчерпывающее освещение вопроса. Первые две наших открытых методики (кодирование видео и аудио) были именно «отраслевыми». А третья, представляемая на суд читателей сегодня, посвящена одной программе: 3ds max. Для начала нами было разработано нечто вроде технического задания, которое описывало требования к сценам, после чего начался поиск дизайнера, который бы согласился воплотить его в жизнь. Пожалуй, логично будет озвучить это ТЗ в рамках данного материала. ТехзаданиеЦель: самая простая тестирование современных x86 CPU в 3ds max 5.x. Предмет тестирования скорость финального рендеринга сцен. Планируемые к использованию рендеры: родной от 3ds max, Brazil, Final Render Stage-1. Общие требования к сценам:
За выполнение этого достаточно сложного задания взялся профессиональный дизайнер-трехмерщик Игорь (mazai) Емельяненко (спасибо еще раз, Игорь!), и после продлившейся около месяца неизбежной «утряски» и согласования спорных моментов, мы рады представить вам новую открытую методику iXBT.com для тестирования скорости финального рендеринга в пакете 3ds max 5.1 SP1. Сама методика, как нетрудно понять, состоит в замере времени рендеринга входящих в нее тестовых сцен, которые мы и рассмотрим более подробно. Описания тестовых сценОднако для начала приведем своего рода «идеологическое обоснование» всего набора тестов. Мы ведь выдвигали жизненность подхода как одно из ключевых требований? Так вот, и его удалось соблюсти: у нашего тестового набора есть своего рода... сюжет! Итак, обычно, когда нужно смастерить (или, наоборот, разобрать), что-то такое, чем не хочется пачкать домашний ковер, человек идет в гараж. Однако это только первая причина, почему полигоном для тестов явился именно он. Вторая — в том, что гараж — это не только приют для автомобиля, но и отличная свалка ненужных в быту безделушек. Так вот: у нас есть изрядно потрепанный гараж, а в нем — не менее изрядно потрепанное авто (в основном, для того чтобы при моделировании на нем можно было разместить максимальное количество эффектов :). На стенах — всякий хлам, и какое-то количество деталей, каждая из которых наиболее полно использует одну из «фишек» рендера. Но самое главное — это верстак. Именно на нем и проводятся отдельные тесты эффектов — с зажатием пациентов в тиски, разглядыванием в лупу, и пр. То есть на каждый эффект можно раскидать несколько разных объектов, которые, в свою очередь использовали бы один из них. Сцены для Brazil r/s1. Brazil_Caustic
Как легко понять по названию, смысл данной сцены состоит в тестировании скорости работы процессоров при рендеринге эффекта «Caustic» в исполнении системы рендеринга SplurtterFish Brazil на примере сувенирного монумента в виде стекла с запечатанной в него памятной надписью и деревянного стола, на котором, собственно, мы и можем наблюдать вышеуказанный эффект. Для стола мощность фотонов была повышена до 1,7 (Power=1,7), все остальные настройки оставлены по умолчанию. 2. Brazil_DOF
На этой сцене тестируется скорость рендеринга эффекта Depth Of Field (глубина резкости). Сцена довольно проста: на ней присутствуют три объекта, установленных на различном расстоянии от камеры, при этом центральный находится в фокусе. Все установки оставлены принятыми по умолчанию за исключением:
3. Brazil_GI
GI Global Illumination (глобальное освещение). Фактически, в данном случае используется сцена Brazil_Final (см. ниже), с той только разницей, что из финальной сцены изъяты все текстуры, благодаря чему мы имеем возможность сосредоточиться на скорости просчета глобального освещения как такового. Все настройки оставлены такими, какими они приняты по умолчанию. 4. Brazil_Final
Финальная сцена представляет собой «реалистичный» вариант т.е. олицетворяет продукт, который может быть создан дизайнером в процессе работы над реальной задачей. В данной сцене отсутствуют «разные модные навороты», вроде каустики, задействованы только те эффекты, которые чаще всего используются 3D-дизайнерами: Global Illumination, Antialiasing, Raytrace, Volume Light, и так далее. Настройки:
5. Brazil_Preview
Подтест, олицетворяющий собой достаточно частую операцию: дизайнер снижает разрешение и установки качества, чтобы увеличить скорость рендеринга, и быстренько визуально оценить, что у него получилось. Быстродействие при выполнении такого чернового просмотра имеет не меньшее значение, чем при финальном рендеринге т.к. выполняется он зачастую несколько десятков раз (а финальный рендеринг, в идеале всего один). За образец была взята сцена Brazil_Final, у которой были изменены следующие настройки:
Сцены для Final Render Stage-11. FR_Caustic
Сцена по смыслу полностью аналогична своему аналогу для рендера Brazil, только в данном случае используется Final Render. По отношению к настройкам по умолчанию, были изменены настройки источника света:
2. FR_GI
Сцена знакомая — примерно то же мы видели в сцене для тестирования на скорость просчета глобального освещения с помощью Brazil. В данном случае использовался другой движок (Final Render / fr-image). Настройки GI остались такими, какими они приняты по умолчанию, изменялись только установки антиалиасинга:
3. FR_Displace
При рендеринге этой сцены, мы оцениваем быстродействие тестового стенда при рендеринге эффекта «Micro Triangle Displacement». Основными предметами на сцене являются знакомый посетителям iXBT.com логотип, стоящий на подставке (и не сразу узнаваемый :) а также лежащий на верстаке обычный шар на тот случай если на примере логотипа эффект Displace будет не так хорошо виден. По отношению к установкам по умолчанию, были изменены следующие:
4. FR_SSS
Еще одна «сцена одного эффекта», на этот раз мы ставим опыты по скорости расчета подповерхностного рассеивания света (Sub-Surface Scattering). Измененные параметры:
5. FR_Volume_Light
Обсчитывается объемный свет (fR-Volume Light). Все достаточно просто: источник объемного света, дырявая преграда оному… В общем, с дизайнерской точки зрения все ужасающе примитивно, но нас-то интересуют не изыски, а скорость просчета данного эффекта на различных процессорах. Установки (традиционно, перечислены только измененные по отношению к default):
6. FR_Volume_Caustic
На примере этой сцены оценивается скорость рендеринга каустики объемной (поверхностная также активирована). Для оценки этого эффекта параллелепипед подходит менее всего, намного зрелищнее будет смотреться шар или лупа. В результате у дизайнера родилась некая «шарообразная лупа». Установки:
7. FR_Final
Концепция полностью аналогична Brazil_Final, с той только разницей что используется другой рендер. Установки:
8. FR_Preview
Опять-таки «черновая» версия финальной сцены. В сторону уменьшения качества рендеринга были изменены следующие установки:
Сцены для Scanline (встроенный рендер 3ds max 5)1. Scanline_Volume_Light
Сцена, аналогичная по смыслу FR_Volume_Light, только рендерится под управлением встроенного рендера 3ds max. Установки:
2. Scanline_Light_Tracer
Тестируем простенькое освещение, обеспечиваемое встроенным рендером 3ds max. Установки Ray/Sample: 300. 3. Scanline_Radiosity
Более продвинутый вариант Global Illumination, поддерживаемый рендером 3ds max. Здесь следует сделать одно примечание, относящееся больше не к смыслу сцены (он понятен по названию), а к методологии измерения. Дело в том, что карта освещения перед рендерингом при использовании рендера Scanline уже должна быть наложена, и как раз ее наложение и занимает большую часть времени. Поэтому данный тест является единственным, требующим измерений с секундомером в руках. Итак: ![]() …сначала мы выбираем соответствующий пункт в меню…
…потом нажимаем «Start» и засекаем время исполнения…
…получаем просчитанную с заданными параметрами карту освещения…
…и уже после этого жмем на F9 для получения финального результата.Соответственно, в качестве времени выполнения теста, мы указываем суммарное время выполнения команды Advanced Lighting --> Radiosity, и собственно рендеринга. Установки:
4. Scanline_Final
Аналогичная двум предыдущим финальная сцена, в которой присутствует (сохраняя лексику дизайнера) «пародия на GI от Scanline в лице Light Tracer» и несколько материалов с эффектом Raytrace. Плюс антиалиасинг в исполнении все того же рендера Scanline. Параметры:
5. Scanline_Preview
Стандартный «превьюшный» алгоритм упрощения (ускорения) рендеринга с небольшими вариациями на тему:
АнтиалиасингПараметры антиалиасинга на всех сценах для Brazil кроме Preview:
Параметры антиалиасинга на всех сценах для Final Render кроме Preview:
Параметры антиалиасинга на всех сценах для Scanline кроме Preview:
Подводя итогиОписанная выше методика, по задумке авторов (имея в виду и коллектив процессорного раздела iXBT.com, выступивший в роли составителя технического задания, и 3D-дизайнера Игоря (mazai) Емельяненко в качестве исполнителя), призвана обеспечить возможность более полно, чем ранее, исследовать производительность современных компьютерных систем на базе процессоров архитектуры x86, при финальном рендеринге сцен в одном из самых распространенных пакетов для трехмерного моделирования 3ds max. В отличие от большинства других методик, где финальный рендеринг в 3ds max чаще рассматривается, как лишь один из подтестов методики общего назначения, в данном случае мы тестируем не одну «образцовую» сцену для одного рендера, в которой применено ограниченное количество эффектов, а набор из в общей сумме 18 сцен и трех самых распространенных рендеров для 3ds max — одного встроенного и двух внешних. Таким образом, несмотря на трудоемкость и относительно большое время, необходимое для проведения полномасштабных тестов, данная методика позволяет все же более глубоко, чем обычно, изучить вопрос о быстродействии различных компьютерных систем применительно к программе 3ds max. С другой стороны, наличие сцен <...>_Final, представляющих собой достаточно близкие к жизненным реалиям работы, дает возможность логичным образом сократить методику до всего трех тестов, и, соответственно, сделать ее частью универсальной методики. Примечания, дополнения, файлы, и материалы
|
| Комментарии? Поправки? Дополнения? nawhi@ixbt.com |