1 | |||||||||||
Модификация примера работы с GLUT02.01.2021, 22:44. Показов 1913. Ответов 30
Начал читать статью:
http://www.rusdoc.ru/material/... glut.shtml Всё работает. Возникли вопросы: 1). Зачем создавать дочернее окно и рисовать в нём, когда есть окно консоли? Как я понимаю, буфер консоли "заточен" под вывод символьной информации и не пригоден для вывода графики. Библиотека GDI работает с контекстом устройства и, судя по всему, так же использует что-то похожее. Можно получить параметры консоли:
Есть ли способ использовать окно командной строки для реализации вышеприведённого примера? 2). Зачем функции glutInit(&argc, argv); параметры командной строки? И нет ли возможности обойти это условие? Понимаю, что начав прочтение одной единственной статьи, всего не понять. Просто хочется ответов на первые же возникшие вопросы.
0
|
02.01.2021, 22:44 | |
Ответы с готовыми решениями:
30
Поясните основные принципы работы с GLUT Разбор примера работы побитового И Перевод примера работы с реестром с дельфей на билдер Г.Шилдт C# 4.0. Полное руководство. Разбор примера работы с массивом |
6105 / 3460 / 1406
Регистрация: 07.02.2019
Сообщений: 8,799
|
|
02.01.2021, 23:15 | 2 |
1)Потому что нужно окно, поддерживающее контекст OpenGL, консольное окно его не поддерживает, и изменить формат поверхности не получится.
2) Что бы можно было задавать параметры: https://www.opengl.org/resourc... ode10.html
1
|
02.01.2021, 23:30 [ТС] | 3 |
Был пример с отображением рисунка в консольном окне с помощью библиотеки GDI. Контексты GDI и GDI+отличаются от контекста GLUT? В интернете пишут, что раньше было возможно их совместное использование.
Это в случае вызова из консоли или любого .exe, написанного на любом ЯП?
0
|
6105 / 3460 / 1406
Регистрация: 07.02.2019
Сообщений: 8,799
|
|
02.01.2021, 23:40 | 4 |
Не знаю, что там было раньше. Если сможете изменить формат поверхности консольного окна, то сможете и создать контекст OpenGL для него. https://docs.microsoft.com/en-... ixelformat(Внимательно читайте Remarks).
В любом случае мне не понятно, зачем в консоли рисовать и зачем вообще изучать допотопные технологии вроде GLUT... Да
1
|
02.01.2021, 23:58 [ТС] | 5 |
Прочитал. Спасибо.
Это для начала. Интересно порисовать на форме и контролах VB 6.0. GLUT по-сути оболочка для OpenGL и её функции, в отличие от OpenGL, могут вызываться из VB при соответствующих декларациях. Как быть, если инициализацию надо произвести из оконного приложения, написанного на другом ЯП?
0
|
Модератор
2558 / 1094 / 375
Регистрация: 11.08.2017
Сообщений: 3,332
|
|
03.01.2021, 00:02 | 6 |
не верно, glut это всего на всего библиотека создающая окно + контекст, а так же главный цикл и обработку ввода, грубо говоря к opengl имеет косвенное отношение
Добавлено через 1 минуту ну так создаете на форме контекст для opengl и рисуете на нем, для opengl возьмите библиотеку glad например
0
|
03.01.2021, 00:27 [ТС] | 10 |
Я только начал читать про библиотеку GLUT и сразу возникли вопросы, не имеющие простой реализации. Не будет ли подобного ( инициализация, создание контекста и отключение) такими же хлопотными, как с GLUT?
Это была то ли статья, то ли книга по DirectX. Во всяком случае, не встречал проектов на VB 6.0 с использованием OpenGL.
0
|
Модератор
|
|
03.01.2021, 08:55 | 11 |
1
|
Модератор
2558 / 1094 / 375
Регистрация: 11.08.2017
Сообщений: 3,332
|
|
03.01.2021, 12:11 | 12 |
Только вот там пример с использованием устаревшей версии opengl, версии 1и 2 являются deprecated и не рекомендуются к использованию, минимум актуальной версии это 3.3 core profile, но имхо лучше использовать 4.5-4.6 (они и так довольно старые, но с ними можно получить производительность уровня вулкана)
glut так же устарел как и 1 версия opengl он нормально работает во всех языках которые могут использовать сишные dll, например java и python без проблем, там даже есть готовые обертки, я активно использую opengl в java. для vb6 может не быть готовых оберток (особенно свежих версий), но можно написать самому, используя тык1 и тык2. То есть из 2 ссылки механизм, а из первой описание функций, dll в системе есть opengl32.dll, в итоге выйдет аналог glad (который по сути является набором ссылок на функции), только вот с указателями не знаю что будет (получение числа из функции с помощью указателя и передача массива используя * и ** в си), можно даже не все функции реализовывать, а только те которые нужны (например брать их из уроков) в итоге остается вопрос создания контеста нужной версии, с чем я вряд ли смогу помочь, я использую glfw для контекста. хотя его можно и с помощью winapi создать
1
|
06.01.2021, 01:24 [ТС] | 14 |
Посмотрел примеры на VB. Рисуется не на существующей форме, а создаётся новая с определёнными параметрами.
Была надежда, присвоить консольному окну соответствующий контекст, используя эти примеры, но....
0
|
6105 / 3460 / 1406
Регистрация: 07.02.2019
Сообщений: 8,799
|
||||||
06.01.2021, 09:37 | 15 | |||||
Ну раз хотите извращать с консолью, то вот набросал вам пример:
Кликните здесь для просмотра всего текста
Сразу скажу, что рендеринг в оперативку медленный, т.е. на производительность анимированной 3D графики можете особо не рассчитывать. (хотя есть способ схитрить, через прозрачное окно поверх консольного и WindowsAero, но там много WinApi писанины будет, я это делать не хочу)
1
|
Модератор
|
|
06.01.2021, 12:41 | 17 |
Для чего? Создавай контекст в нормальном окне, тем более используя формы VB6 это очень просто можно сделать.
Ну вероятно потому что эта функция инициализирует GLUT, а в примере нет GLUT.
0
|
06.01.2021, 13:20 [ТС] | 18 | |||||
Смутило то, что в приведённом виде программа не заработала. Заработала после добавления заголовка
0
|
Модератор
|
|
06.01.2021, 13:53 | 19 |
Ну вероятно это из-за того что GLUT использует OpenGL поэтому и заработало. Выше же написали - зачем его использовать? Используй OpenGL напрямую. Из VB6 это вообще без проблем можно сделать. Declare и так динамически ресолвит имена.
0
|
06.01.2021, 16:05 [ТС] | 20 |
Я не нашёл хоть какого-либо описания как это сделать и поэтому, начал "копать" в сторону С++.
Поиск не находит даже деклараций функций OpenGL. В примерах, ссылку на которые вы дали, используется .tlb. Деклараций нет. Книги по OpenGL для С++. Казалась бы, нет ничего проще, скачал книгу, почитал и попробовал. За столько лет ни нашлось ни одного автора, чтобы хоть как-то описать использование OpenGL из-под VB 6.0?
0
|
06.01.2021, 16:05 | |
06.01.2021, 16:05 | |
Помогаю со студенческими работами здесь
20
Подскажите или скиньте код примера работы со сканером Работа с трехмерными примитивами. Вокруг конуса GLU вращаются сфера GLUT и конус GLUT Исходники любой программы для работы с бд состоящей их трех подсистем(для примера) Glut c# GLUT GLUT Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |