В августе этого года, после полутора лет напряженной работы, наконец-то вышла наша третья книга (про первую и вторую уже были посты на Хабре) ориентированная на разработку игр: 3D Graphics Rendering Cookbook: A comprehensive guide to exploring rendering algorithms in modern OpenGL and Vulkan.



Книга рассказывает как начать писать свой 3D движок «с нуля» на C++ используя OpenGL 4.6 и Vulkan 1.2, и во многом продолжает стиль первых двух книг. Книга построена в виде рецептов, которые последовательно добавляют новые фичи к коду и показывают как перейти от цветного треугольника к вот такой картинке:



Затрагиваются темы храниения геометрии и материалов сцены, PBR, glTF2, SSAO, HDR, OIT, shadow mapping, GPU frustum culling, ленивая загрузка текстур, интеграция физического движка с графикой. Большинство примеров имеют параллельные реализации на OpenGL 4.6 и Vulkan 1.2. Используются только open-source сторонние библиотеки, при этом показано как своими руками сделать многие вещи: сжатие текстур в ETC2, вычисление irradiance maps и LUTов для BRDF, конвертация сцены и текстур из 3D форматов передачи данных в форматы пригодные для быстрой загрузки движком и много чего другого.


Как всегда, никаких сторонних готовых движков не используется — только С++ и open-source библиотеки, только хардкор. Основной фокус на практическую реализацию, а не на теорию (но по тексту даны ссылки на соответствующие статьи и презентации, чтобы прокачать матчасть).


Книга ориентирована на начинающих и intermediate разработчиков OpenGL, которые хотят перейти на OpenGL 4.6 или сразу на Vulkan.


P.S. Не стоит покупать эту книгу как вашу самую первую книгу по Vulkan. Пусть она будет как минимум вторая :)


К книге прилагаются исходники всех проектов по главам. Последняя версия доступна на GitHub.

Комментарии (8)


  1. sputnic
    10.09.2021 17:43
    +2

    Посоветуйте первую книжку по вулкану пожалуйста :)


    1. CorporateShark Автор
      10.09.2021 17:46

      https://vulkan-tutorial.com/ или уж хотя бы Vulkan Cookbook.


    1. holydel
      10.09.2021 17:51
      +1

      Классика: https://www.amazon.com/Vulkan-Programming-Guide-Official-Learning/dp/0134464540&ved=2ahUKEwjX5fmc0_TyAhVMiYsKHV6fBZMQFnoECBgQAQ&usg=AOvVaw1DON4g_ZywHUf8kGZaDYDB

      Есть перевод на русский, но его ругали. Сам перевод не читал.


      1. sputnic
        10.09.2021 18:13

        как то там отзывы на амазоне не очень, говорят что по факту просто сборник АПИ функций


  1. holydel
    10.09.2021 18:02
    +1

    @CorporateShark, подскажи по книге. Правильно ли я понимаю, что она скорее про в целом трехмерную графику в движке, чем про какие-то рецепты конкретного ГАПИ? Есть ли там что-то про фреймграфы, многопоточное заполнение командных буферов, про менеджмент пайплайнов (пайплайн-кеш, наследование) - те вещи, без которых не обходится движок, при использовании современных, нихкоуровневых ГАПИ типа вулкана, дх12, метала ?


    1. CorporateShark Автор
      10.09.2021 18:11
      +1

      Книга все-таки ориентирована на более начинающую аудиторию. К концу книги получается небольшой фреймворк, на основе которого уже можно было бы сделать фреймграфы и многопоточные штуки... как раз следующий логичный шаг после 10й главы был бы механизм автоматической расстановки барьеров... но это тема для следующей книги.

      Книга не является справочником по ГАПИ, а показывает как можно решать некоторые практические задачи используя подмножетсва ГЛ46 и Вулкана. Есть материал по построению конвейера для контента, который очень редко можно найти в подобных книгах. Но опять же, ориентировано больше на разработчиков, которые еще только осваивают 3Д графику.

      Например, для простоты реализации во всех Вулкан-демках мы довольно агрессивно использовали vkDeviceWaitIdle() для синхронизации и не использовали никаких аллокаторов.


      1. alexraag
        15.09.2021 01:52

        Подскажите, пожалуйста, что можно почитать про то, что говорит @holydel


        1. CorporateShark Автор
          16.09.2021 15:34
          +1

          Собирать по крупицам из презентаций вендоров и материалов GDC, SIGGRAPH итп. Ну или ждать нашу следующую книгу.