Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the antispam-bee domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/ruwritingagame/public_html/wp-includes/functions.php on line 6131
Cross-platform 3D – Page 4 – Игра в Написание Игры

Глава 10. Простой шейдер

Наконец, шейдеры! Начнем с самого простого, просто заливка сплошным цветом, который мы передадим шейдеру в качестве инпута вместе с данными повехности (в нашем примере – треугольника). Шейдеры пишутся на GLSL (OpenGL Shading Language с синтаксисом похожим на C). GLSL исполняется на граф-карте. Исполняемая шейдер-программа состоит из 2-х шейдеров: Vertex Shader, который обрабатывает данные вешин (включая […]

Глава 9. Сохраняем Android assets в файлы

Хотя мы можем использовать Android assets и напрямую (как мы только-что сделали в последнем примере). всё же надо помнить, что “ассеты” – это НЕ файлы в обычном понимании. Разница в том, что:: К Ассетам нельзя доступиться обычными файловыми инструментами. Только через специальный Assets интерфейс. Они все read-only. Мы не сможем их модифицировать или добавлять новые […]

Глава 8. Внешние файлы данных, Android assets

Идея та же что и в предыдущей главе – расположить файлы данных в пределах досягаемости от экзешника. Правда, в случае Андроида мы имеем дело не с экзешником, а с APK. Кроме того, нам надо доставить файлы не просто в другой каталог, а на другое устройство. Единственный (известный мне) “транспорт” – это специальный каталог “assets“, который […]

Глава 7. Внешние файлы данных, Windows

Теперь мы готовы приступить к написанию реальных (практически используемых) шейдеров. Сейчас у нас есть 2 (1 vertex и 1 fragment), встроенных (hard-coded) в код. Понятно, что не лучшее решение, но ради простоты примера – вполне оправданное. Мы же, в свою очередь, предпочтем держать их за пределами экзешника. 1. В Windows File Explorer-е (не в VS), […]

Глава 6. Cross-platform, Android

Теперь попробуем запустить TheGame класс на Android-е. 1. Запускаем Visual Studio, открываем C:\CPP\a999hello\p_android\p_android.sln solution. 2. Под p_android.NativeActivity проектом добавим “xTheGame” фильтр: Right-click на p_android.NativeActivity project -> Add -> New Filter. Name – xTheGame Под xTheGame добавим Existing Item: Right-click на xTheGame -> Add -> Existing Item, Идем на C:\CPP\a999hello Файлы – TheGame.cpp и TheGame.h Add. […]

Глава 5. Cross-platform, Windows

В этой главе мы попробуем “препарировать” наш GLFW пример с треугольником. Мы выведем “игровой” код (который готовит и рисует треугольник) в отдельный класс, который потом попробуем использовать и на Android-е. Чтобы код был platform-independent (независимым) мы отделим его от platform-specific вызовов. Весь environment-related код, типа создание окна, инициализация GL-а, и т.д., мы оставим в main.cpp […]

Глава 4. Printf в OpenGL ES

Теперь, имея 2 OpenGL ES проекта на разных платформах, можно прикинуть что в них общего и в чем разница. Общая структура: Создание GL context-а, инициализация данных, главный цикл с покадровым rendering-ом, выход. GL команды (Слава Богу!) выглядят тоже похоже. Разница в инициализации окна и GL-a, в GL-related инклюдах (gl/egl на Android-е и glfw/glad в Windows-е). […]

Глава 3. Hello Windows

Visual Studio, Windows, C++, OpenGL ES, GLFW, GLAD Запуск OpenGL ES на PC не такой прямолинейный как на Android-е поскольку GL ES предназначен для мобильников, а НЕ для десктопов. Но варианты есть. Издатели OpenGL-а настоятельно рекомендуют использовать window toolkit (GLFW) и OpenGL loading libraries (GLAD). Значит, давайте их сгрузим. 1. Сперва зарезервируем для них место.В […]

Глава 2. Hello Android

Visual Studio, Android, Native activity, C++, OpenGL ES “Родные” языки для Андроида – это Java и Kotlin. Native activity же позволит писать код для Android-а на C++. Кроме того, Visual Studio’s Native activity шаблон включает инициализацию OpenGL ES-а. 1. Запускаем Visual Studio. Выбираем “Create a new project“. В меню шаблонов выбираем Android, потом “Native Activity […]

Глава 1. Установка Visual Studio

1. Ищем в Гугле “Visual Studio download”. Переходим на https://visualstudio.microsoft.com Выбираем Download Visual Studio -> Community 2022 (или который там текущий). Сгружаем и запускаем инсталлер. 2. На странице Workloads выбираем “Desktop development with C++”. Дополнительные компоненты (которые в правой панели) пока не нужны. Если понадобятся, сможем установить их потом. 3. Поскольку целимся и на Android […]