План обучения программированию графики
Привет, ребята! Давно я не писал на сайт лично, не рассказывал ничего про работу, разработку игр и даже забил на итоги года.
Для тех, кто со мной не знаком, меня зовут Сергей, я интересуюсь программированием графики. Я немало лет разрабатываю игры, начал с Unity и разных мобильных игр (работал в EA Mobile, Nival), потом сменил Unity и C# на C++ и большие ААА игры (об этом я писал в статье). Почти 2 года я работаю в Sperasoft, поучаствовал в разработке двух классных проектов с Ubisoft в качестве геймплей-программиста, и вот некоторое время назад я стал смотреть в RenderDoc не по 2 часа в сутки, а по 10 стал заниматься графикой. Ура! Большое спасибо любимой студии и коллегам!
Похвастался и хватит, детали может как-нибудь расскажу потом. Я решил упорядочить огромный рой мыслей, хотелок и идей в четкий бескомпромиссный план прокачки. Без слез и сантиментов
Цели
Хочу подтянуть знания о программировании для видеокарт и GPGPU
Хочу написать гибридный рендер-движок с растеризацией и трассировкой лучей. Без DXR (DirectX Raytracing) сначала, чтобы разобраться самому в алгоритмах, в теории и только потом уже в API ковыряться. На начальном этапе не хочу думать про realtime. Функционал хочу такой: Небольшая сценка (Sponza Palace или Lumberyard Bistro) можно летать по ней динамически и по нажатию волшебной кнопки включить трассировку, которую динамически применять как refinement кадра полученного растеризацией.
Хочу использовать DirectX 12 (не уверен, что хочу поддерживать свой старый движок с DirectX 11) и модные паттерны вроде render graph. Хочу разобраться с Physically based rendering и зачитаться всякой литературой чтобы сделать правильный PBR.
После хочу заняться ускорением полученного движка: попробовать перенести трассировку в Compute шейдеры, CUDA и DXR.
Шаги
Начну с курсов по вычислениям на видеокартах Полярного и Вахненко (они есть в открытом виде на сайте Computer Science Center)
Потом переключусь на трассировку и проработаю серию книг Питера Ширли (Peter Shirley), тем более она стала бесплатной. Потом перейду к pbrt. Параллельно прочитаю Realtime Rendering, Game Engine Architecture.
А по DirectX 12 и render graph почитаю Фрэнка Луну, посмотрю докладики, и bgfx.
P.S.
Ффух, мысли причесал, грубый план набросал. Можно работать. Как-нибудь собираюсь написать продолжение статьи Сменил Unity на С++ и рассказать про различия процессов в мобильном геймдеве и ААА геймдеве, а так же в рамках разрешенными NDA о работе в Sperasoft.
Задать вопросы про графику, работу и поболтать “за жизнь” можно в комментариях, мне будет приятно!
Всем пока! Гектаров в имениях, легкости в движениях! ;-)