reckfellENGINE

Производительность GPU: найти ограничение

Проверяйте конкретную причину: пиксели, геометрию, команды отрисовки или первые появления материалов.

На этой странице

Сначала зафиксируйте условия

Запишите рендерер, разрешение, устройство, конфигурацию сборки и воспроизводимый фрагмент игры. Сравнивайте одинаковую камеру и содержимое. При ограничении FPS или VSync одинаковый FPS может скрывать разницу стоимости; смотрите также время кадра.

CPU готовит кадр и команды, GPU исполняет работу. Снижение числа Entity не гарантирует уменьшение стоимости пикселей; уменьшение текстуры не устраняет автоматически дорогую игровую логику. Один FPS не объясняет, какая часть ограничивает кадр.

Один эксперимент — одна причина

Изменить в копии тестовой сценыЧто проверяетеЧего это не доказывает
Уменьшить размер 3D Viewport при той же камереЗависимость от числа пикселей и экранных эффектовЧто вся проблема исключительно на GPU
Временно убрать прозрачные слоиПерекрытие пикселей, смешивание, сортировкуЧто вся прозрачность недопустима
Упростить сетку без смены материалаГеометрию и работу vertex-шейдераЧто текстуры и fragment-шейдер бесплатны
Сократить одинаковые отдельные объекты через группыСтоимость подготовки и отправки повторяющейся геометрииЧто большой MultiMesh всегда выгоднее
Повторить первое появление материалаОтличие холодного появления от повторногоГотовность всех вариантов на другом устройстве

После каждого изменения проверьте картинку: удалённый эффект или исчезнувшая стая не являются корректной оптимизацией прежнего результата.

Пример повторяющейся геометрии

В запускаемой стае 2048 экземпляров отрисованы без 2048 Entity. Проверено также, что VisibleInstanceCount=0 скрывает геометрию, а положительное значение рисует префикс. Это проверка поведения, не сравнительный замер ускорения.

MultiMesh сокращает отдельные объекты, но сохраняет работу над вершинами и видимыми пикселями. Несколько материалов, теневые проходы, виды и поверхности могут давать дополнительные команды. Не обещайте «ровно один draw call для всей игры» из самого факта инстансинга.

Снять правильное измерение

Для подробного распределения CPU-работы C# используйте отдельные измерения. CPU elapsed time не является GPU timer. Для GPU-времени нужен подходящий инструмент и поддержка выбранного графического API. Замеры на одной настольной карте не сертифицируют телефон, Web или минимальный компьютер.

Границы и 3D · Первые компиляции

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.