Вчимо WebGPU

Для нативної графіки на C++.

Ця документація допоможе вам освоїти WebGPU графічний API, щоб створювати нативні 3D додатки на C++ з нуля, для Windows, Linux і macOS.

Швидкий Старт! (Натисни на Мене)

Чи хочете ви зрозуміти кожну частинку GPU коду, який ви пишете?

Так, писати WebGPU код з нуля!

Чудово! Ви можете просто перейти до вступу і прочитати всі розділи послідовно.

Ні, я краще пропущу початковий шаблонний код.

Це цілком логічно, ви можете завжди повернутися до початкових кроків пізніше.

Ви, ймовірно, захочете переглянути посилання Кінцевий код на початку та в кінці кожної сторінки, наприклад:

../_images/resulting-code-light.png ../_images/resulting-code-dark.png

Ви згодні використовувати тонку обгортку для зручнішого читання?

Так, я віддаю перевагу C++ коду.

Зайдіть на “З webgpu.hpp” вкладку.

Ні, покажіть мені сирий C WebGPU API!

Зайдіть на “Ванільний webgpu.h” вкладку. Кінцевий код для ванільного WebGPU є менш актуальним, але ця вкладка також перемикає всі блоки коду всередині посібника, і вони є актуальними.

Для того, щоб зробити збірку цього базового коду, зверніться до Збірка секції розділу про налаштування проєкту. Ви можете додати -DWEBGPU_BACKEND=WGPU (стандарт) або -DWEBGPU_BACKEND=DAWN до cmake -B build команди, щоб обрати як бекенд wgpu-native або Dawn відповідно.

Наскільки далеко ви хочете просунутися з базовим кодом?

Простий трикутник

Перегляньте розділ Привіт трикутник.

3D-сітка з базовою взаємодією

Я рекомендую починати з кінця розділу Управління освітленням.

Я хочу, щоб все так само запускалося в Інтернеті.

В основній частині посібника бракує декількох додаткових рядків, зверніться до Збірка для Інтернету додатку, щоб адаптувати приклади та, щоб вони запускались в Інтернеті!

🚧 Робота в процесі

Цей посібник досі в розробці, і стандарт WebGPU досі еволюціонує. Щоб допомогти читачу зрозуміти, наскільки актуальна інформація, ми використовуємо ці знаки в заголовках до кожного розділу:

🟢 Актуальна! Використовує останню стабільну версію WebGPU-distribution, а саме v0.2.0.
🟡 Готове до читання але використовує старішу версію WebGPU.
🟠 Робота в процесі: достатньо читабельно, але не закінчено.
🔴 Треба зробити: ми тільки торкнулися поверхні.

Для попереднього огляду майбутньої версії цього посібника, ви можете глянути в сховану секцію Наступне, але це не означає, що вона стабільна.

Примітка: При використанні супровідного коду з розділу, обов’язково використовуйте саме ту версію webgpu/ яку вона надає, щоб уникнути розбіжностей.

Зміст