Занимаюсь разработкой высокопроизводительной графики реального времени и работаю на уровне, максимально близком к аппаратуре. Основное направление — собственные графические движки и рендереры на Vulkan и OpenGL под конкретную задачу: прямая и отложенная схемы, графы кадра, шейдеры на GLSL, конвейеры постобработки и вся цепочка от геометрии сцены до готового изображения. Если проекту — игре, движку визуализации данных или инженерной симуляции — нужно выводить больше объектов, делать это быстрее или стабильно на разных видеокартах, я берусь именно за такие задачи и довожу их до рабочего результата.
Оптимизацию закладываю с самого начала, а не пришиваю потом. Снимаю и разбираю GPU-профили кадров, уменьшаю количество вызовов отрисовки, применяю батчинг и инстансинг геометрии, перекраиваю дескрипторные наборы и управление памятью, переписываю шейдеры под ограничения по пропускной способности и энергопотреблению. За плечами — освещение, разные техники теней, системы частиц, вычислительные эффекты на compute-шейдерах и физически корректные материалы; я понимаю, где именно прячется расход ресурсов и как его убрать без потери качества картинки.
Отдельно отвечаю за переносимость. Рендерер должен одинаково вести себя на ускорителях разных вендоров, а при необходимости — и на мобильных платформах, поэтому строю аккуратные абстракции над бэкендами, не пряча при этом особенности железа. На выходе вы получаете читаемый и покрытый тестами код и графический слой, который команда сможет развивать после сдачи.
— Движки и рендереры на Vulkan и OpenGL под задачу
— Шейдеры GLSL: освещение, тени, постобработка, compute
— Профилирование GPU и вылизывание времени кадра
— Поддержка разных видеокарт и платформ
Оптимизацию закладываю с самого начала, а не пришиваю потом. Снимаю и разбираю GPU-профили кадров, уменьшаю количество вызовов отрисовки, применяю батчинг и инстансинг геометрии, перекраиваю дескрипторные наборы и управление памятью, переписываю шейдеры под ограничения по пропускной способности и энергопотреблению. За плечами — освещение, разные техники теней, системы частиц, вычислительные эффекты на compute-шейдерах и физически корректные материалы; я понимаю, где именно прячется расход ресурсов и как его убрать без потери качества картинки.
Отдельно отвечаю за переносимость. Рендерер должен одинаково вести себя на ускорителях разных вендоров, а при необходимости — и на мобильных платформах, поэтому строю аккуратные абстракции над бэкендами, не пряча при этом особенности железа. На выходе вы получаете читаемый и покрытый тестами код и графический слой, который команда сможет развивать после сдачи.
— Движки и рендереры на Vulkan и OpenGL под задачу
— Шейдеры GLSL: освещение, тени, постобработка, compute
— Профилирование GPU и вылизывание времени кадра
— Поддержка разных видеокарт и платформ