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 (про версії: API OpenGL ES 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

Опубліковано: 13/04/19 @ 10:00
Розділ Різне

Рекомендуємо:

Проектування retry обгортки для функцій на Swift
Сутичка двох екодзун: ITIL vs PMBoK
DOU Hobby: Стрільба – любов до зброї і ураження цілі
DOU Labs: як в Provectus створили ProPlanner – SMART-планувальник робочих завдань
Три історії про IT-шників, що займаються громадською діяльністю