|
8 / 8 / 1
Регистрация: 18.11.2019
Сообщений: 109
|
|
Где найти примеры небольших программ на C++ OpenGL 3.3+26.10.2020, 13:52. Показов 6725. Ответов 27
Здравствуйте. Пробую писать чё-то с OpenGL, но чем больше я это делаю, тем больше убеждаюсь, что что-то я делаю не так. Решил заглянуть как делают другие - поисковик выдал только уроки, и примеры на устаревшем OpenGL. Решил написать на форум, может тут скажете где найти примеры программ, а не код с уроков .-.
0
|
|
| 26.10.2020, 13:52 | |
|
Ответы с готовыми решениями:
27
Где найти примеры программ для начинающих Где найти примеры реально работающих технических заданий на разработку программ? Интересуют исходники небольших программ на С# |
|
Just Do It!
|
|
| 26.10.2020, 21:28 | |
|
0
|
|
| 20.11.2020, 15:58 | ||||||
|
Пример, который рисует треугольник на Qt C++. В примере я использую OpenGL ES 2.0, чтобы он собирался и для Android и для Desktop. Я пробовал запускать это пример на Windows 10, на эмуляторе Android и на реальном Android. Пример так же можно собрать для iOS. В начале кода есть директива "#ifdef _WIN32" и она нужна для запуска примера на ноутбуках, на которых установлено две видеокарты: маломощная (экономная) и более мощная. Если ноутбук с двумя видеокартами, то без этого кода ничего не будет рисоваться. Можете взять этот код в качестве отправной точки, дальше изучать стандартные туториалы по шейдерному OpenGL:
https://learnopengl.com http://opengl-tutorial.org http://ogldev.org https://open.gl https://thebookofshaders.com
2
|
||||||
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
|
| 20.11.2020, 18:06 | |
|
2
|
|
| 21.11.2020, 12:01 | |||
2
|
|||
| 21.11.2020, 12:37 | ||||||
|
Анимация вращения треугольника:
main.cpp
1
|
||||||
| 21.11.2020, 13:19 | |||||||
|
Изменил свой пример на OpenGL 3.3, чтобы как-то реабилитироваться в глазах общественности, если есть ещё надежда, что меня не забанят за оффтоп. Там исправить-то надо было "attribute" на "in", по мелочи, зато теперь на Android и iOS не будет запускаться, но хозяин - барин. Тогда буду выкладывать две версии: OpenGL 3.3 для Desktop и OpenGL ES 2.0 для Desktop/Android/iOS/Web.
1
|
|||||||
| 21.11.2020, 13:50 | ||||||||||||||||
|
Подправил пример вращения треугольника на OpenGL ES под OpenGL 3.3. Я знаю, что автор темы активно использует Qt C++. Отмечу, что в Qt С++ создание шейдерной программы делается в несколько строк, как и много другое:
main.cpp
2
|
||||||||||||||||
| 21.11.2020, 17:21 | |||||||||||
|
Текст и кнопки. В этом примере в одном окне совмещается OpenGLWidget и стандартное GUI на Qt. В окне происходит соединение сигналов кнопок и слота OpenGLWidget. Я считаю, что нужно изучать OpenGL вместе с GUI. Так изучать интереснее и продуктивнее. Можно создавать разнообразные примеры с этой комбинацией. С самого начала расширяется кругозор. Можно практиковаться на написании простых игрушек с выводом текста ("Жизни", "Очки" и т.д.) и кнопок ("Старт", "Пауза", "Сохранить", "Загрузить" и "т.д."). Для неигровых приложений с интерактивной 3D графикой также часто необходимо GUI. Придумывайте примеры и тренируйтесь на практике. Изучать OpenGL нужно больше на практике, а без практики будете зарываться в теорию и почти всё забывать, а практических результатов не будет, будете буксовать на месте, ваши игрушки так и не будут писаться. Многие попадали в эту ловушку на годы, как и я.
Исходники на OpenGL 3.3 для Desktop
main.cpp
Исходники на OpenGL ES 2.0 для Desktop, Android и iOS
main.cpp
2
|
|||||||||||
|
Just Do It!
|
||
| 22.11.2020, 11:22 | ||
|
оказалось всё просто ![]() но вот чёт файлик по мне тяжеловат, аж 19 Mb для почти пустого проекта... есть ли способы засунуть верблюда в ушко? т.е. как-то приуменьшить?
0
|
||
| 22.11.2020, 13:43 | |||||||||||
|
XLAT,
Кликните здесь для просмотра всего текста
мы с вами немного обсудили в личке данный вопрос. Напишите, пожалуйста, в блоге инструкцию для сборки Qt в статику. Отметьте там с какими проблемами столкнулись, до какого размера сжимает UPX. Какие на ваш взгляд плюсы и минусы утилиты UPX, которая используется для сжимания EXE. Какие плюсы и минусы статической и динамической сборок. Qt позволяет использовать три лицензии: GPL, LGPL, коммерческая. Правда, не для всех модулей. Например, QChart может иметь GPL и коммерческую, но не разрешается использовать LGPL. Я знаю, что лицензия GPL позволят собирать в статику (в один EXE), но при этом нужно обеспечить пользователям доступ к исходникам проекта. LGPL позволяет скрывать исходники, но собирать можно только с динамическими библиотеками. Коммерческая позволяет скрывать исходники и собирать в статику. Я думаю, что для индивидуального разработчика и для маленькой команды никто не будет копаться в бинарнике и искать было ли нарушение лицензии. Это актуально для крупных капиталистов, которые на своём уровне могут решить, например, купив коммерческую лицензию Qt, а наёмные программисты будут использовать то, что им скажут. Лицензии для меня имеют очень низкий приоритет, а вот сборка релиза - это важный момент. Я использую пока динамику, для статики место нужно осободить для сборки Qt из исходников в статику. Тот пример, что вы собрали в статику (18 МБайт), я собрал в динамику. Весит 30.8 МБайт. В zip архиве весит 11 МБайт, а в rar - 9 МБайт. КиберФорум позволяет загружать 25 МБайт. Кстати, это я попросил когда-то администрацию повысить: сначала с 10 МБайт до 20 МБайт, а потом ещё на 5 МБайт, потому что сборки Unity в EXE весили как минимум 18 МБайт + небольшие модельки и текстуры, то есть демки могли выходить чуть больше 20 МБайт. Возвращаясь к примеру, что вы скинули, столько файлов нужно для динамики, привожу для справки:
Можете попробовать запустить, если не запустится, то напишите: По поводу текстур отмечу, что в Qt C++ полная поддержка работы с текстурами. Ничего стороннего подключать не нужно. Более того, Qt C++ позволяет подключать текстуры в виде ресурсов: правой кнопкой по проекту > "Add New..." > "Qt" > "Qt Resource File" > кнопка "Choose..." > ввести имя ресурсов "Textures" > кнопка "Next" > кнопка "Finish" > вводим в Prefix прямой слеш: / > нажать кнопку "Add Files" > выбрать текстуры. Для доступа к текстурам из кода нужно вводить путь с двоеточием и прямым слешем в начале, например: ":/Textures/MyTexture.png". Текстура из ресурсов зашивается внутрь EXE. Таким же образом в ресурсы можно добавить шейдеры. В данном примере вес релизного EXE с текстурой внутри составляет 163 КБайта. Весь самой тестуры - 136 КБайт. Я прикрепил текстуры. Исходники на OpenGL 3.3 для Desktop
main.cpp
Исходники на OpenGL ES 2.0 для Desktop, Android и iOS
main.cpp
1
|
|||||||||||
| 22.11.2020, 18:16 | |||||||||||||||||||||
|
Выставление начала системы координат, диапазонов осей в 2D и правую/левую систему координат. Если не выставить, то начало системы координат будет в центре окна, а диапазоны осей будет: [-1, 1]. Для выставления используется метод QMatrix4x4::ortho:
В примере рисуется квадрат со сторонами равным 20 с координатами центра в (70, 70): Исходники на OpenGL 3.3 для Desktop
main.cpp
Исходники на OpenGL ES 2.0 для Desktop, Android и iOS
main.cpp
Релиз (например, EXE) - это результат работы разработчика, поэтому прикладываю EXE для Windows: Set2DCoordSystem_OpenGL33_Qt5Cpp.zip (11.08 Мб) Это, кстати, здорово заряжает, когда выкладываешь EXE, даже если это кажется бессмысленным.
1
|
|||||||||||||||||||||
| 23.11.2020, 12:08 | ||||||
|
Рисование прямоугольника:
1
|
||||||
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
|||
| 23.11.2020, 12:24 | |||
|
0
|
|||
| 23.11.2020, 12:37 | |||||||
0
|
|||||||
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
|
| 23.11.2020, 14:02 | |
|
0
|
|
| 23.11.2020, 14:02 | |
|
Помогаю со студенческими работами здесь
20
Написания небольших программ для вычислений Где найти примеры игр на Android? Где найти примеры задач из книги Дейтела по C++ БД SQLite где найти примеры работы с API? Где можно найти примеры разработки 1с конфигурации? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|