C++ дайджест #14: Graphics API — OpenGL, DirectX, Vulkan, Metal

У випуску: C++ Attributes, реліз boost 1.70.0 та Clang 8.0.0, VS2019 preview 1, алгоритми Boost.

Привіт, мої любі сішники! Пропоную в цьому дайджесті розглянути графічні API. Почнімо? :)

OpenGL

OpenGL — кроссплатформне API для роботи з графікою. Існує два ключові варіанти OpenGL:

Матеріали для вивчення modern OpenGL:

Learn OpenGL — найкращий туторіал, щоб швидко опанувати OpenGL. Пояснюються як основи, так і ширші можливості та особливості робити. Є детальна теорія кодом.

Ще один гарний туторіал.

OGL dev — непоганий туторіал з кодом.

OpenGL Programming — розглянуто основи роботи та приклади як для modern OpenGL, так і для fixed pipeline OpenGL.

Відео від Jamie King.

GameDev.ru->OpenGL — можна знайти різнопланові статті.

Книги:

При роботі з OpenGL використовуються різноманітні бібліотеки-помічники, що доповнюють відсутню функціональність: спрощують математичні розрахунки (GLM), надають контекст (можно дуже грубо сказати, що це контрол для малювання; GLUT, SDL, GLFW, SFML, Qt).

Про різницю між fixed pipeline OpenGL та modern OpenGL, вирішальні етапи розвитку можно переглянути статтю на codeproject.

Для embedded та мобільних систем використовується урізана версія OpenGL ES (про версії: OpenGL ES API Versions at a Glance).

Матеріали для вивчення:

Книги з OpenGL ES:

DirectX

Це API від Microsoft для OS Windows, побудований навколо COM, який дозволяє створювати ігри та інші аплікації. DirectX розбитий на компоненти. При роботі з тривимірною графікою нас, перш за все, буде цікавити Direct3D.

Матеріали для вивчення:

DirectX 11 Tutorials

Direct3D 12 programming guide

DirectX-Graphics-Samples

Getting Started

Programming guide for HLSL

Introduction to 3D Game Programming with DirectX 12.

Vulkan

Відносно новий кроссплатформний API, створений Khronos group. Аналогічно OpenGL, Vulkan не вміє створювати вікна аплікацій та не має можливостей роботи з лінійною алгеброю. Як і у випадку з OpenGL, тут нам на допомогу приходять GLM, SDL, GLFW та інші.

Для вивчення Vulkan є чудовий офіційний Vulkan Tutorial та:

Книги:

Metal

В 2018 Apple оголосила OpenGL, який вже давненько підсижував Metal, як Deprecated.

Что такое Apple Metal API

mtlpp — C++ wrapper around Metal — приклад обгортки Metal — C++.

Основы программирования графики на Apple Metal: Начало

Офіційні туторіали від Apple

На десерт — книга, яка дуже гарно пояснює необхідну математику 3D-світу: Mathematics for 3D Game Programming and Computer Graphics.

Інструменти

Introduction into C++ builds with Gradle

Conan 1.12: Editable packages, Composable profiles, Command improvements & New architectures

An Introduction to the Qt Installer Framework

Modern C++

C++ Attributes

Attributes in C++

Корисні посилання

EGL 1.4 Quick reference card

The BooSTL Algorithms: Boost Algorithms That Extend the STL (1/3)

The BooSTL Algorithms: Boost Algorithms That Extend the STL (2/3)

The BooSTL Algorithms: Boost Algorithms That Extend the STL (3/3)

20 ABI (Application Binary Interface) breaking changes every C++ developer should know

Оновлення

Цього місяця маємо такі оновлення:

Конференції С++ в Україні:

Tech. talk: «Modern C++: Universal (forwarding) references» — 17 квітня, Дніпро.C++ LoGeek Night — 18 квітня, Одесса.

Globallogic Kyiv C/C++ Career Day — 20 квітня, Київ.

Вебинар «Статические и динамические библиотеки в С++» — 14 травня, онлайн.

Games Gathering 2019 Kiev — 7-8 грудня, Київ.

Для новачків

Уроки С++

Хвилиночка флуду


← Попередній випуск: C++ дайджест #13

Похожие статьи:
«З чим би ви погодились працювати тільки за великі гроші?» — майже 200 IT-фахівців відповіли на це запитання DOU. Відповіді...
Молодой HR-менеджер приходит с пачкой резюме к директору:— Очень много заявок, не знаю, как выбрать лучшего...Директор...
It has only been a few days since a large fire destroyed much of the world famous Notre Dame Cathedral in Paris, but already donations are flooding in from around the world to help pay for repairs to the 850-year-old...
Grammarly приглашает в гости всех, интересующихся продуктовой разработкой. Поговорим о прелестях работы Product Owner’а,...
Привет! Меня зовут Ярослав Трохименко, я — Senior Java Developer. В этой статье хочу рассказать о жизне и работе...
Яндекс.Метрика