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++.
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 прямо в браузере перед локальной сборкой:
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)
- Windows (MinGW, CMake & Ninja) Setup Guide Руководство по настройке Windows (MinGW, CMake и Ninja)
- Installing cglm Library Установка библиотеки cglm
- Installing cgltf C glTF Loading Library Установка C-библиотеки загрузки glTF cgltf
- Building SDL3 Static Library for Windows Сборка статической библиотеки SDL3 для Windows
- Installing Prebuilt wgpu-native Library for Windows Установка предкомпилированной библиотеки wgpu-native для Windows
- Building libwebp Static Library for Windows (MinGW) Сборка статической библиотеки libwebp под Windows (MinGW)
- Building SDL3_image Static Library with WebP for Windows (MinGW) Сборка статической библиотеки SDL3_image с поддержкой WebP под Windows (MinGW)
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)
- Installing and Managing Linux Distributions on Windows using WSL Установка и управление дистрибутивами Linux на Windows через WSL
- C/C++ Development Environment Setup for Ubuntu VPS & Desktop (GCC, CMake & Ninja) Настройка среды разработки C/C++ для Ubuntu VPS и Desktop (GCC, CMake и Ninja)
- Installing cglm Library Установка библиотеки cglm
- Installing cgltf C glTF Loading Library Установка C-библиотеки загрузки glTF cgltf
- Building SDL3 Static Library for Ubuntu Сборка статической библиотеки SDL3 для Ubuntu
- Installing Prebuilt wgpu-native Library for Ubuntu Установка предкомпилированной библиотеки wgpu-native для Ubuntu
- Building libwebp Static Library for Ubuntu Сборка статической библиотеки libwebp для Ubuntu
- Building SDL3_image Static Library with WebP for Ubuntu Сборка статической библиотеки SDL3_image с поддержкой WebP для Ubuntu
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)
- MinGW & CMake Setup Guide Руководство по настройке MinGW и CMake
- Android Environment Setup Настройка окружения Android
- Installing cglm Library Установка библиотеки cglm
- Installing cgltf C glTF Loading Library Установка C-библиотеки загрузки glTF cgltf
- Installing Prebuilt wgpu-native Library for Android Установка предкомпилированной библиотеки wgpu-native для Android
- Building SDL3_image Shared Library with WebP Support for Android (NDK & CMake) Сборка динамической библиотеки SDL3_image с поддержкой WebP для Android (NDK и CMake)
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)
- MinGW & CMake Setup Guide Руководство по настройке MinGW и CMake
- Emscripten & CMake Setup Guide Руководство по настройке Emscripten и CMake
- Installing cglm Library Установка библиотеки cglm
- Installing cgltf C glTF Loading Library Установка C-библиотеки загрузки glTF cgltf
- Building SDL3 Static Library for WebAssembly (Emscripten & CMake) Сборка статической библиотеки SDL3 для WebAssembly (Emscripten и CMake)
- Building libwebp Static Library for WebAssembly (Emscripten & CMake) Сборка статической библиотеки libwebp для WebAssembly (Emscripten и CMake)
- Building SDL3_image Static Library with WebP for WebAssembly (Emscripten & CMake) Сборка статической библиотеки SDL3_image с WebP для WebAssembly (Emscripten и CMake)
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 Смотреть на GitHubSupport My Work Поддержать проект
If these tutorials helped you, consider buying me a coffee! Если эти туториалы вам помогли, вы можете поддержать автора.
Sberbank (Russia only) Сбербанк (только для РФ)
Direct transfer via phone number (Russia only) Перевод по номеру телефона (только для РФ)
USDT TRC20
Support via Cryptocurrency Поддержка криптовалютой