Пытливый ум и желание знать, как все устроено изнутри, выделяет техника из массы пользователей.
В этом коротком посте я хотел бы поделиться с любопытным сообществом короткими видеороликами и кратким рецептом использования программного обеспечения для профилирования 3D-приложений.
Отказ от ответственности
Я не 3D-разработчик, не разрабатываю движки, игры или модели.
Это просто хобби.
Меня всегда очень интересовало 3D. И я учусь всему постепенно и самостоятельно.
Если есть (и будут) какие-то технические неточности в тексте, пишите в личку или комментарий.
Я все исправлю и всегда не прочь получить обратную связь, чтобы улучшить свой опыт. Сразу прошу прощения, если разместил эту статью не в том хабе.
Скорее всего я так и сделал.
Но, на мой взгляд, такой материал недостаточно мощный, чтобы его можно было включить в разделы «Разработка» или «Отладка».
Посмотрите видео, а затем прочитайте Итак, если мы хотим оценить, как подготовлен игровой кадр.
Какая геометрия, текстуры, сколько вызовов отрисовки, где бьётся производительность? Для отладки этих процессов можно использовать специализированное программное обеспечение.
Перечислю основные:
- РендерДок
- Нвидиа Нсайт
- GPUperfStudio
РендерДок — графический отладчик от Crytek.
(На скриншоте изображен бюст Лары Крофт из последней части: Rise of the Tomb Rider) Поддержка DirectX 11/12, Вулкан, OpenGL 3.2+
Это проект с открытым исходным кодом.
Регулярно обновляется свежими коммитами.
→ Ссылка на репозиторий и документацию Интерфейс достаточно гибкий и интуитивно простой.
Любознательной душе не составит труда за 5 минут разобраться, как запустить игру или приложение и пройти весь процесс рендеринга.
Для запуска не нужны никакие сторонние приложения.
Указываем путь к exe, дополнительные параметры и запускаем.
Далее в приложении в нужный момент нажмите F12 или PrintScrn, RenderDoc сохранит кадр, который вы сможете сохранить и вернуться к нему даже не запуская игру и не делясь им с партнером.
Например, вы можете экспортировать геометрию и текстуры.
Nvidia Nsight — инструмент отладки от NVIDIA.
Большой и очень мощный инструмент отладчика.Это не единственный инструмент в арсенале Nvidia. Есть инструменты для мобильных приложений, Linux, Mac-устройств и т. д. Я не разобрался во всем их многообразии.
Nsight предназначен для использования вместе с Visual Studio, но для быстрого старта вы можете попробовать его без установленной Microsoft IDE. Бесплатная регистрация в программе разработчика Nvidia и спокойно загрузите необходимые инструменты.
На веб-сайте Nvidia есть документация и видеоролики с пояснениями по использованию этих инструментов.
Для запуска просто перетащите ярлык приложения на ярлык Nvidia Nsight. И, если все правильно, вы увидите HUD и графику от Nsight. Сделать рамку просто: нажмите CTRL+Z, затем нажмите пробел или кнопку со значком лупы.
Процесс останавливается и открывается окно Nsight Replay, внизу которого находится таймлайн со ползунком.
В Nsight есть подсказки, а интерфейс довольно простой.
Также есть возможность сохранить весь рендеринг кадра в файл, но для его открытия придется установить Visual Studio.
Чтобы глубже вникнуть в процесс, нужно все манипуляции производить из VS. Либо запустите 3D-приложение из VS, либо запустите сохраненный кадр (функция доступа к сохранению даже без установленной VS)
Создадим пустой проект:
Найдем кнопку, в которую введем путь к приложению и некоторые необходимые настройки.
И после этого приступаем к отладке.
Приложение откроется.
Если вы используете загрузчик, возможно, вам просто придется выбрать нужный процесс в окне.
Процесс тот же, что я описал выше в тексте.
Но теперь VS открывает дополнительные возможности отладки, недоступные при отладке без VS. И геометрия, и текстуры, и шейдеры.
Процессы можно анализировать с разных точек зрения.
У Nsight также есть полезная функция-киллер: вы можете запустить приложение с сервером на выделенной машине и подключиться к нему из VS. Таким образом, всем не нужно развертывать одну и ту же среду с приложением, что упрощает жизнь разработчика или команды разработчиков.
Для работы с сохраненными фреймами достаточно открыть сохраненный проект для вашей версии Visual Studio, скомпилировать релизную сборку и включить отладку Nsight. Дальше все как описано выше.
Кстати.
Я не понимаю, можно ли в Nsight посмотреть всю геометрию разгона, как это сделано в RenderDoc? Очень полезно при отображении конкретного вызова отрисовки с сетками из предыдущих вызовов.
Плюс я не смог протестировать работу ПО на видеокарте AMD, из-за отсутствия такового.
Но, похоже, у Nvidia нет жестких требований в этом вопросе.
GPU PerfStudio — разработан компанией Advanced Micro Devices (AMD)
Замечательный и мощный инструмент. Он также имеет возможности удаленной отладки.
→ Ссылка для скачивания и документации
Легко использовать.
Есть 2 версии сервера (64 и 32 бита) для запуска, вам просто нужно перетащить необходимое приложение на сервер.
Это он сам попросит при попытке его запустить.
Далее просто включаем клиент. Подключаемся к серверу, делаем паузу в нужный момент и теперь можем делать всё, что делали раньше в RenderDoc или Nvidia Nsight.
Широкая поддержка различных API и устройств.
Несмотря на свое происхождение, он поддерживает мою видеокарту Nvidia. Так что никаких заговоров и спиц в наших колесах.
УПД В комментариях предлагался еще один инструмент с открытым исходным кодом.
апитрасс
Мультиплатформенность и поддержка различных API. Я его еще не трогал, но судя по лефф полезный и простой инструмент.
Не могу сказать, какое средство лучше.
В каждом есть какие-то свои мини-функции, таблицы, графики, которые могут содержать информацию, очень необходимую для конкретной задачи.
Со стороны пользователя, как любопытный человек, я как-то «поправился» с RenderDoc. Но иногда в нем удается запустить не все процессы.
И кстати, о запуске процессов.
Все очень легко и просто, когда у вас есть приложение А и инструмент Б.
Потом инструмент Б запускает приложение А и все довольны.
Но если в этой схеме есть посредники: лаунчеры, античит-программы и прочие обертки, то придется немного «потанцевать».
Давайте рассмотрим пример запуска игры из Steam или Origin и других сервисов.
В этом случае нужно следовать определенному порядку в любом наборе инструментов:
- Мы отключаем все виды наложений внутриигровых функций в Steam, Origin, Uplay и т. д.
- Эти приложения необходимо отключить перед запуском.
- Запускать нужно не файл игры, а обертку (Steam, Origin, Uplay и т.д.)
- После этого вы сможете запустить игру прямо из запущенной «обертки»
- Часто необходимы дополнительные параметры запуска.
Например, в Watch Dogs 2 параметр -eac_launcher позволяет отключить античит. Здесь нужно прочитать ридми и конфиги для подсказок.
Плюс дополнительные опции помогают ускорить процесс запуска приложения.
Пример для Steam: -applaunch 99999 (идентификатор приложения)
- Всегда проверяйте версию API в приложении.
Возможно, в настройках включен DX12, но он у вас не поддерживается и т. д. Сделайте предварительные настройки, закройте игру и только потом приступайте к отладке.
- Некоторые приложения нестабильно работают на мультиграфических системах (например: встроенное видео + дискретная карта).
Отключите ненужное в диспетчере устройств.
Плюс в этом случае лучше отлаживать снимок кадра, а не запущенную игру.
Т.
к.
Вы будете мучиться с перезапуском, когда будут обвалы.
Я записываю таймлапс-видео процесса отрисовки игрового кадра.
Я нахожу это очень интересным, познавательным и красивым.
На видео отображаются не все события, потому что.
в таком случае оно было бы слишком дерганным.
ПУБГ Поле битвы 1 ГТА V Восстание Tomb Rider Ведьмак 3 Сторожевые собаки 2 Фоллаут 4 О вызовах отрисовки И это все.
Надеюсь, этот материал впечатлит, подскажет, поможет или каким-то другим положительным образом повлияет на тех, кто его прочитает. Исправления, советы, благодарности и пинки присылайте в личку или комментарии.
И напоследок хотелось бы сделать небольшой пиар для своего Youtube-канала: www.youtube.com/Какой-то айтишник Это, конечно, плохой тон для Giktimes, но все эти социальные штучки: подписки, лайки и комментарии повышают мотивацию выпускать новый и лучший контент. Теги: #Игры и игровые приставки #Видеокарты #Программное обеспечение #отладка программ #рендеринг #игровые ресурсы #гиковское порно #рисование вызовов #рисование вызовов #рисование игровых фреймов
-
Лауэ, Макс Теодор Феликс Фон
19 Oct, 24 -
Мобильный Html5
19 Oct, 24 -
Hyperloop One Приезжает В Россию
19 Oct, 24 -
Microsoft Выпустила Свою Версию Bittorrent
19 Oct, 24 -
Mgl (Dri) Дома, Долгий Путь К Совершенству
19 Oct, 24 -
Майнинг Токенов Waves И Комиссии
19 Oct, 24