Английская версия | Работа с материалами
Настройте тестовую сборку x86 и отдельно соберите затронутые цели. Для проверки управления редактором используйте material-preview-panel-tests, drag-value-label-tests и gameui-tests; для загрузки моделей, открытия и закрытия редактора preview-model-tests и material-lifecycle-tests; для изображения scene-preview-gl-tests и studio-capture-gl-tests. Если изменение затрагивает общие интерфейсы, добавьте проверки движка, клиента и остальных модулей, которые используют эти интерфейсы.
GL-проверкам нужен контекст OpenGL 3.3 compatibility. Пропуск GL-сценария не подтверждает корректность рендеринга. Записывайте результаты с ревизией исходников и конфигурацией сборки.
Для наблюдений в игре подготовьте согласованные Release-библиотеки движка, клиента и GameUI по процедуре установки. Сборка цели не устанавливает ее. Закрытие и повторное открытие редактора должны сохранять записанные материалы и оставлять работоспособными предпросмотр настроек и игру.
Используйте установленную Steam-версию игры с согласованными библиотеками и обновленными ресурсами локализации. При ошибке сохраните ревизию библиотек, видеорежим, путь выбранной модели и вывод r_mat_scene_state.
- Запустите клиент без загрузки карты. Задайте developer 1 и откройте «Редактор материалов» в левом верхнем углу. Проверьте обычное меню и вариант с CEF. Выберите установленную модель, которую карта еще не загружала. Должны появиться ее текстуры, семейства скинов, варианты тела и анимации. Закройте редактор и откройте повторно.
- Проверьте режимы «Модель» и «Оружие». Мышью вращайте и перемещайте камеру и меняйте расстояние, помещайте модель в кадр и включайте зеркальный вид оружия. Проверьте освобождение мыши при отпускании кнопки, потере фокуса, открытии консоли и закрытии. После редактора должен работать предпросмотр в настройках.
- Выберите анимацию, измените кадр, остановите и возобновите воспроизведение, измените скорость. Анимация должна работать без карты. Сравните короткие неповторяющиеся последовательности на скоростях 0.25x, 1x и 2x. Движение должно равномерно занимать заявленную длительность без раннего перехода к конечной позе. Выберите первый, средний и последний кадры, затем переключите последовательность. Проверьте сохранение света при смене модели и текстуры.
- Выберите
weapon_finish, измените видимый параметр и включите сравнение. Отключите игровыеr_studio_shaderиr_studio_materials. Редактор должен продолжать показывать авторский материал. После закрытия значения этих cvar должны сохраниться. - Измените азимут, высоту, каждый канал RGB, интенсивности фонового и направленного света. Проверьте пресеты «Нейтральный свет», «Только фоновый свет» и «Скользящий свет». Вращайте камеру при закрепленном свете и проверяйте блики в обоих режимах просмотра.
- Измените материал, затем попробуйте сменить модель, текстуру и закрыть редактор. Проверьте «Сохранить», «Не сохранять» и «Отмена». После отмены должны сохраниться выбранная модель, текстура и несохраненные параметры материала. Кнопка «Назад» в каталоге текстур должна восстанавливать ранее выбранное изображение и сохранять остальные изменения. Отмена выбора цвета должна возвращать цвет на момент открытия диалога.
- Сохраните документ и откройте его повторно. Выберите конкретные связанные модели для сохранения. Проверьте модель без выбранной текстуры, ошибку записи и частичную ошибку при нескольких целях. Все ошибки должны быть видны, рабочий материал должен остаться несохраненным. Документы невыбранных моделей должны остаться без изменений.
- Прокрутите каталог от первой модели до последней, затем задайте и очистите фильтр и повторите сканирование. В каждой видимой строке должна быть миниатюра или метка ошибки. После прокрутки выберите несколько строк. Каждая должна открывать ту модель, название и миниатюра которой показаны в строке. Прокрутка не должна менять несохраненные параметры материала или расходовать лимит загрузки моделей. Достигните общего лимита в 128 новых записей, выбирая установленные модели, в том числе с отдельными файлами текстур. Должно появиться сообщение о лимите, уже загруженные модели должны остаться доступны. Закрытие и повторное открытие редактора не должны обнулять учет.
- Проверьте смену видеорежима, отключение и повторное открытие, начало загрузки при открытом подтверждении сохранения. При принудительном выходе должны закрыться редактор и его диалоги, захват мыши должен прекратиться. После подключения камера, прицел, оружие от первого лица и сущности должны использовать игровое состояние.
- Проверьте, что управление видом и анимацией находится под сценой с видимым зазором, а вкладка «Освещение» содержит все настройки света. Используйте поле «Модель» на вкладке «Материал» с несохраненными правками. Сбросьте камеру оружия после поворота, перемещения и масштабирования. Анимация, зеркальный вид, материал и свет должны сохраниться.
Переключите видимость солнца, сравните его цвет и стрелки с настройками света. Включите «Вращать солнце» при вертикальном нейтральном свете. Высота должна установиться в 35 градусов и оставаться постоянной, а азимут непрерывно меняться при вращении вокруг модели. Установите скорость солнца 0,25x, 1x и 4x, сравните длительности оборота 96, 24 и 6 секунд, в том числе при остановленной анимации модели и скрытом индикаторе солнца.
Измените скорость во время вращения без сброса отсчета времени, затем остановите и возобновите движение. Смените модель и скорость ее воспроизведения. Во время движения измените пресеты, углы, цвет и силу света. Высота вращающегося солнца должна оставаться в пределах 5..80 градусов. После выключения доступен статический диапазон -90..90. Сброс должен отключить вращение и восстановить скорость солнца 1x. Поля должны соответствовать текущим значениям, а рабочий материал должен сохраниться. 11. Наведите указатель и нажмите на анимированную и зеркальную модель, смените скин и вариант тела. Проверьте прозрачные отверстия и перекрывающиеся поверхности. Обводка и выбор должны соответствовать видимой текстуре. Перетаскивание должно вращать модель без выбора. Отмените смену текстуры при несохраненных правках и проверьте поле текстуры и рабочие значения. Для поверхности с маской задайте альфу uBaseTint программы weapon_finish равной 0,25 и 0,5: щелчок должен выбирать видимую поверхность за ней. Повторите после смены GL-контекста и изменения размера окна. Переведите указатель с модели на пустой фон и оставьте его там на несколько кадров. Модель должна продолжать отображаться без сбоя. 12. Повторите проверки открытия, света, сохранения и закрытия в поддерживаемом Linux-клиенте.
- Выберите группу текстур с разными числами, векторами, изображениями и цветами. Проверьте метки различающихся значений, измените один параметр, смените программу, сохраните и повторно откройте каждую выбранную текстуру. Кнопка «Назад» в каталоге изображений и отмена выбора цвета должны возвращать исходный параметр каждой текстуры и метку различающихся значений. Повторите проверку, закрыв диалог цвета и выйдя из каталога через вкладку. Остальные несохраненные изменения должны оставаться на месте. Проверьте «Сохранить», «Не сохранять» и «Отмена» при смене группы.
- Введите
nan,infи1e999в скалярные и векторные поля. После отказа должно восстанавливаться последнее допустимое значение. Материал и состояние несохраненных изменений должны сохраняться, а редактор должен продолжать отвечать на действия пользователя.
Эти действия проверяют инициализацию движка до первой карты, расположение элементов VGUI и фокус ввода, установленные файлы и внешний вид. Проверки без движка и рендеринг во внеэкранном контексте этих свойств не подтверждают.
- Проверьте studio и weapon_finish. Задайте маску с красным градиентом и растворение со значениями 0, 0.5 и 1; совместите его с шумовой прозрачностью при 0, 0.5 и 1. Для каждого эффекта переключите UV и экранные координаты. Перемещайте модель и меняйте размер окна: экранные ячейки должны оставаться квадратными. Зафиксируйте шум скоростью 0, измените начальное значение генератора (seed), затем задайте 4 обновления в секунду. Проверьте наведение и выбор оставшихся фрагментов и отверстий маски.
- Выберите режим «Только за преградой», отключите тестовую преграду, выведите указатель на панель параметров и поверните модель на несколько полных оборотов. Повторите проверку с небольшой моделью, содержащей тонкие треугольники, которые видны почти с ребра. Измените размер окна и переключитесь между оконным и полноэкранным режимами. Подкраска, обводка и свечение должны отсутствовать. Выберите «Всегда»: обводка и свечение должны охватывать весь внешний силуэт, а видимые поверхности сохранять материал без подкраски. Выберите «Только видимые»: видимый силуэт должен сохранить обводку.
- Включите тестовую преграду. Во всех трех режимах обводки видимые поверхности должны сохранять материал, а скрытые получать подкраску. Задайте ширину обводки 2, радиус свечения 8 и интенсивность 1. Режим «Только за преградой» должен обводить скрытую часть внешнего силуэта, режим «Всегда» весь силуэт, режим «Только видимые» видимую часть силуэта. Полностью скройте модель: в режиме «Только видимые» обводка и свечение должны отсутствовать, а подкраска скрытой модели сохраниться. Обводка не должна проходить поперек модели по границе стены. Ширина 0 должна отключать обводку и свечение. Повторите проверку с MSAA «Выключено» и «4x» в настройках видео, применяя каждое изменение и перезапуская игру по запросу. Проверьте Compare, смену модели и режима вида, смену видеорежима и повторное открытие редактора. При ошибке сохраните показатели r_mat_scene_state.
- Установите серверный модуль и его include-файл на тестовый сервер. Откройте меню тестового плагина материалов командой
ncl_fx_menuили/ncl_fx. Создайте модель, выберите программу, переключите режим обводки и измените параметры. - Проверьте обычный, точный и крупный шаг изменения параметров, а также ввод числа. Введите
0.1234567и проверьте сохранение точности после обновления параметра и переподключения. Значения за пределами допустимого диапазона должны ограничиваться его минимумом или максимумом.nanи бесконечность должны отклоняться. Дробныйoutline_modeдолжен отклоняться без изменения параметра. - Переместите модель за стену вне потенциальной видимости игрока (PVS) и включите
ncl_mat_through_walls. Проверьте отображение модели в NextClient 2.6+ и обычном клиенте, в том числе при подключении после включения эффекта и при переподключении. Отключите флаг. Движок может еще некоторое время передавать недавно видимую модель; дождитесь прекращения передачи. - Повторите проверку после очистки материала, снятия последней привязки, удаления и повторного создания игровых объектов, подбора и выбрасывания оружия, смены карты.
- Передача модели вне PVS должна учитывать остальные ограничения сервера: скрытие
no-draw, отсутствие модели, правила для наблюдателей и групп, а также максимальное число сущностей в пакете.