PHP fwdays conference — Symfony, MongoDB, Yii, Mutation Testing and more, Kyiv, June 1
×Закрыть

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

LinkedIn

3 комментария

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

А ще маємо moltengl.com/moltenvk для тих, хто хоче Vulkan на macOS:

MoltenVK is a runtime library that maps Vulkan to Apple’s Metal graphics framework on iOS and macOS. With MoltenVK, you get the performance benefits and added debugging and performance tuning capabilities of the Metal framework on iOS and macOS, without having to rewrite your app that already uses Vulkan, the next-generation open-standard API for high performance GPU acceleration.

Ну с таким подходом можно и WebGL добавить — «для тех кто хочет тры дэ» в браузере :)

И emscripten доя тех кто хочет C++ в браузере

Подписаться на комментарии