Английская версия | Подготовка контента | Процедуры захвата
Проверки в работающем движке выполняет разработчик в установленной игре. Для каждого наблюдения сохраняются ревизия исходников, установленные DLL, сцена или демо, графические настройки, настройки материалов и режим монитора. Результаты сборки и тестов с отдельным GL-контекстом учитываются отдельно.
Подготовьте измененные библиотеки, использующие их модули и необходимые ресурсы из одной ревизии с одинаковыми настройками сборки. Сверьте хеши копий по процедуре установки и проверки фабрики.
Карта studio_test предназначена для проверки флагов, оболочек, перекраски, освещения и повторяющихся моделей. Чтобы проверить порядок отрисовки других сочетаний объектов, подготовьте карту или демозапись, где эти объекты видны одновременно.
| Сценарий | Ожидаемый результат |
|---|---|
| Флаги текстур | Меши plain, flatshade, chrome, chrome-flat, masked и additive сохраняют требуемое освещение, альфу и работу с глубиной. Различие fullbright учитывается отдельно ниже. |
| Glow shell | Базовый проход рисуется перед оболочкой. Оболочки сохраняют заданное расширение, красный и синий цвета. Оболочка не должна менять цвет следующего объекта. |
| Свет сущностей и сцены | Модели в темной нише реагируют на доступное освещение. r_studio_dump <name> lit ожидает кадр с источником света сущности. |
| Носимое оружие | Оружие от первого лица и оружие в руках других игроков сохраняет внешний вид, позу и точки крепления. |
| Перекраска текстуры | Движковый и шейдерный пути выбирают одну и ту же перекрашенную базовую текстуру для заданного colormap. |
| Порядок непрозрачных моделей | Порядок Studio/brush/Studio сохраняется при r_studio_queue 0 и 1. |
| Порядок прозрачных моделей | Сравните перекрывающиеся прозрачные и аддитивные Studio-модели при r_studio_queue 0 и 1, включая спрайты и другие типы моделей. Порядок объектов, цвета и анимация должны оставаться правильными. Воспроизведите один участок демозаписи по три раза на каждой сборке с одинаковыми настройками и отключенным подключением Tracy. |
| Прозрачность | Прозрачные объекты, меши masked/additive и оружие от первого лица сохраняют внешний вид и не влияют на цвета и видимость соседних объектов. |
| Материалы | При закрытом редакторе клиент выбирает серверную привязку, затем документ модели, затем встроенный материал. Активный сеанс редактирования временно заменяет выбранный материал для своей цели. Значения параметров разных сущностей остаются независимыми. |
| Туман | Сравните движковый и шейдерный пути, погрузив камеру под воду. Туман должен одинаково влиять на модели и окружающую карту. Отдельно сохраните несоответствие тумана, не объединяя его с различиями освещения и fullbright. |
| Эффекты материалов | Проверьте три режима обводки, подкраску скрытых поверхностей, свечение, растворение, шумовую прозрачность и глитч по сценариям сцены материалов. Повторите в оконном и полноэкранном режимах с MSAA «Выкл.» и «4x». |
| Повторяющиеся модели | Выполните процедуру сравнения с одинаковыми сценами и настройками. Позы, материалы и порядок объектов должны оставаться неизменными. Сравните счетчики рендеринга и измеренное время CPU/GPU. |
Захватите неподвижную сцену командой r_studio_ab flags. Из корня репозитория сравните полученные файлы. Замените <gamedir> игровым каталогом, в котором сохранены снимки:
python tools/radar_tests/imgdiff.py "<gamedir>/flags_off.tga" "<gamedir>/flags_on.tga" --clusters --out flags_diff.png
Шейдерный путь учитывает STUDIO_NF_FULLBRIGHT и не рисует штатную плоскую тень у моделей, которые рисуются шейдерами. Эти особенности могут вызывать различия изображения в соответствующих областях. Отделите эти области от остальных различий перед оценкой результата.
Проверяйте общую долю различающихся пикселей и отчет --clusters. Плотные области с преимущественным изменением яркости в одном направлении требуют проверки, даже если общая доля укладывается в допуск. Небольшие различия на силуэтах могут возникать из-за точности вычислений CPU/GPU. Движение, анимация, изменение освещения, оборудование и разрешение также влияют на сравнение. Сохраняйте изображения и диагностические дампы вместе с результатом.
r_studio_dump показывает путь к модели, имя из ее файла, использованный рендерер, флаги и параметры материалов. Имя внутри файла может отличаться от его пути. Если модель нарисовал штатный движок, в дампе указана причина, по которой ее не нарисовал NextClient.
Соберите затронутые цели в тестовой конфигурации x86, затем выполните их зарегистрированные сценарии CTest.
| Цели | Назначение |
|---|---|
studio-capture-gl-tests |
Изображение моделей, материалы, эффекты, группировка и рендеринг после изменения ресурсов. |
studio-pose-tests, studio-effect-bounds-tests |
Согласованность поз и экранная область влияния эффектов. |
studio-phase-capture-tests |
Диапазоны захвата, полнота и экспортируемые результаты. |
renderer-lifecycle-tests, material-lifecycle-tests |
Поведение при сбросе и завершении работы. |
scene-preview-gl-tests |
Изображение предпросмотра и восстановление после изменения графики. |
GL-тестам нужен подходящий контекст; для подтверждения рендеринга они должны пройти без пропусков. Платформенные проверки выполняются на каждой затронутой платформе. Эти тесты дополняют наблюдения разработчика в установленной игре; изображение и производительность требуют описанного выше сравнения фиксированных сцен.