Хочу изучить DirectX для написания своего игрового движка (саморазвитие, просто хочу понять как что работает). C++ основы знаю. И вот что-то не могу выбрать на какой версии DirectX работать... 12 вроде как производительнее и новых фишек много, но не нашел ни одного туториала как эти фишки использовать по полной. Да и вообще в интернете не нашел нормального туториала по DirectX в целом, либо рассказывается для каких-то профи, либо просто куски кода без объяснений. Что посоветуете почитать (именно насчет DirectX'а и графики в играх в целом, C++ знаю) или посмотреть на ютубе и стоит ли использовать DirectX 12? Желательно на русском. Спасибо.
Ты начни писать движок уже. DirectX - это тупо набор API. Ну и в целом DX12 обратно совместим с предыдущими версиями. А его "фишки" тебе не понадобятся в обозримом будущем.
s2sk1337: Любые API предназначены для того, чтобы использовать некоторые функции "железа". Например Direct3D предоставляет набор методов для общения с GPU. Базовый пайплайн видюхи одинаковый вообще везде: получи вершины -> переведи их координаты в экранные -> запихни данные о пикселях во фреймбуфер -> отобрази пиксели. Что-то более сложное (я уверен на 146%) ты делать не будешь.
s2sk1337: Сейчас игры довольно сложные в разработке. И программисты обычно занимаются решением технических проблем. А саму игру (сюжет, геймплей, как сделать так, чтобы она была увлекательной) обычно разрабатывают специальные люди - геймдизайнеры, причём они не всегда рисуют всякие объекты, этим занимаются различные художники. Задача движка в том, что геймдизайнер мог спокойно делать игру особо не вникая в аппаратные проблемы, чтобы скажем одна игра могла спокойно работать и на пк и на плойке. Я думаю GreatRash подтвердит, что на unity разработчик обычно не занимается техническими проблемами и уже просто раставляет объекты, делает скрипты для их взаимодействия.
К тому же можно купить чужой движок и уже самому делать игру.
Стоит не учиться по туториалам, они хороши для демонстрации возможностей и для краткого описания. Я давно ещё читал книгу автора Frank Luna, тогда ещё по DirectX 9, но сейчас у него есть и более свежие, поищите.
UPD: может стоит рассмотреть OpenGL? Если решишь, то читай супербиблию(это книга так называется)
s2sk1337: самое важное отличие что OpenGL - кроссплатформерный, DirectX - нет, а там это 2 разных API, которые делают одно и то же. Если нужна производительность, то думаю надо выбирать между DirectX и Vulkan(тоже кроссплатформерный).