Rotating 3D Textured Y-Bot with cgltf, cglm, SDL3_image & WebGPU (Cross-Platform: Desktop, Android & Wasm) Вращающийся текстурированный 3D Y-Bot с помощью cgltf, cglm, SDL3_image и WebGPU (Кроссплатформенный пример: Desktop, Android и Wasm)

Build and run a unified 3D Y-Bot model rendering application using cgltf for fast binary GLB parsing, cglm for MVP matrix math, and SDL3_image for WebP texture loading across desktop platforms (Windows MinGW, Ubuntu Linux), mobile devices (Android / wgpu-native), and the web (WebAssembly / WebGPU) from a single C++ codebase. Сборка и запуск единого приложения для отрисовки 3D модели Y-Bot с использованием cgltf для парсинга бинарных файлов GLB, cglm для матричных расчетов (MVP) и SDL3_image для загрузки WebP текстур на десктопных платформах (Windows MinGW, Ubuntu Linux), мобильных устройствах (Android / wgpu-native) и в вебе (WebAssembly / WebGPU) из общего репозитория на C++.

3D Model Asset: The 3D model was downloaded from Mixamo, and an optimized low-poly version was created with Blender and exported to y-bot.glb and y-bot.webp. 3D-модель: 3D-модель была загружена с Mixamo, а оптимизированная low-poly версия создана в Blender и экспортирована в форматы y-bot.glb и y-bot.webp.
🚀 Live WebAssembly Demo 🚀 Онлайн-демо в WebAssembly

Test this cross-platform 3D Y-Bot project directly in your browser before compiling locally: Попробуйте этот кроссплатформенный 3D проект с моделью Y-Bot прямо в браузере перед локальной сборкой:

Open Live Wasm Demo → Открыть Онлайн Wasm Демо →

Step 1: Download the Unified Cross-Platform Project from GitHub Шаг 1: Скачивание общего кроссплатформенного проекта с GitHub

Clone the general cross-platform repository or download the source archive: Клонируйте общий кроссплатформенный репозиторий или скачайте архив с исходным кодом:

git clone https://github.com/ivan-enzhaev/textured-y-bot-cgltf-cglm-sdl3-image-webp-webgpu-sdl3-cpp.git
cd textured-y-bot-cgltf-cglm-sdl3-image-webp-webgpu-sdl3-cpp

GitHub repository: https://github.com/ivan-enzhaev/textured-y-bot-cgltf-cglm-sdl3-image-webp-webgpu-sdl3-cpp Репозиторий на GitHub: https://github.com/ivan-enzhaev/textured-y-bot-cgltf-cglm-sdl3-image-webp-webgpu-sdl3-cpp

This repository contains a unified C++20 codebase using modern SDL3 Callbacks (SDL_AppInit, SDL_AppIterate, SDL_AppEvent, SDL_AppQuit), fast glTF/GLB loading via single-header cgltf, hardware depth testing, 3D math powered by the cglm library, automatic WebGPU canvas resizing without blinking, unified WGSL shader sources, and build scripts for all targets. Этот репозиторий содержит единый исходный код на C++20 с использованием современного SDL3 Callbacks API (SDL_AppInit, SDL_AppIterate, SDL_AppEvent, SDL_AppQuit), быстрой загрузки glTF/GLB через single-header библиотеку cgltf, аппаратного буфера глубины (Z-buffer), 3D математики на базе библиотеки cglm, плавного ресайза канваса WebGPU без мерцания, общих WGSL-шейдеров и готовых скриптов сборки под все платформы.

Building for Windows (MinGW, WebGPU / wgpu-native) Сборка под Windows (MinGW, WebGPU / wgpu-native)

Open Command Prompt or PowerShell in the project root directory and run: Откройте командную строку (CMD) или PowerShell в корне проекта и запустите:

config-win
build-win
run-win

Building for Ubuntu Linux (WebGPU / wgpu-native) Сборка под Ubuntu Linux (WebGPU / wgpu-native)

In your terminal, grant execution permissions and run the build scripts: В терминале предоставьте права на выполнение и запустите скрипты сборки:

chmod +x config-linux.sh build-linux.sh run-linux.sh
./config-linux.sh
./build-linux.sh
./run-linux.sh

Building for Android (WebGPU / wgpu-native / APK) Сборка под Android (WebGPU / wgpu-native / APK)

On Windows: connect your Android device with USB debugging enabled and run: На Windows: подключите Android-устройство с включенной отладкой по USB и запустите:

build-android
install-android

Building for WebAssembly (Emscripten, WebGPU) Сборка под WebAssembly (Emscripten, WebGPU)

On Windows: run the web configuration and build scripts: На Windows: запустите скрипты конфигурации и сборки под веб:

config-web
build-web

Start a local HTTP server to preview in your browser: Запустите локальный HTTP-сервер для просмотра в браузере:

python -m http.server -d public
# or
npx http-server public -c-1

Complete unified source code and scripts are available on GitHub: Полный исходный код и скрипты сборки доступны на GitHub:

View on GitHub Смотреть на GitHub

Support My Work Поддержать проект

If these tutorials helped you, consider buying me a coffee! Если эти туториалы вам помогли, вы можете поддержать автора.

Sberbank (Russia only) Сбербанк (только для РФ)

Sberbank SBP QR Code

Direct transfer via phone number (Russia only) Перевод по номеру телефона (только для РФ)

+7 (917) 212-29-59

USDT TRC20

USDT TRC20 QR Code

Support via Cryptocurrency Поддержка криптовалютой

TMtY1YifNf6FKvgeFmqKGQR4NStKr3csGp