Форум программистов, компьютерный форум, киберфорум
OpenGL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 30.12.2011
Сообщений: 64

Как обрабатывать команды OpenGL в цикле

25.11.2020, 17:09. Показов 3341. Ответов 23

Студворк — интернет-сервис помощи студентам
Уважаемые форумчане, не пойму, как загнать opengl в цикл.
Хочу, чтобы переменная X возрастала и точка двигалась по экрану.
Но программа не запускается.

Там в конце маячит glutMainLoop, может он тормозит ?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <glut.h>
 
float X;
 
void display() 
{
    glClearColor(1.0, 1.0, 1.0, 1.0);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPointSize(8);
    
 
        glBegin(GL_POINTS);
 
            glColor3f(0,0,0);
 
            glVertex2f(X, X);   
 
        glEnd();
    
 
    glutSwapBuffers();
}
 
 
int main(int argc, char** argv)
{
    X = 0.01;
 
    while (X < 1)
    {
        glutInit(&argc, argv);
        glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
        glutInitWindowPosition(0, 0);
        glutInitWindowSize(1920, 1080);
        glutCreateWindow("Проба");
 
            X = X + 0.01;
 
            glutDisplayFunc(display);
 
        glutMainLoop();
 
        return 0;
    }
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.11.2020, 17:09
Ответы с готовыми решениями:

Создание консольной версии приложения (своя консоль) - как обрабатывать в ней команды
Всем привет. Буквально вчера закончил очередной проект, а до дедлайна еще 5 дней. И я решил чтобы зря время не терять (делать мне больше...

Принимать на порт команды, обрабатывать и возвращать статус или значение
Добрый день, коллеги! Появилась задача принимать на 5000 порт команды, обрабатывать и возвращать статус или значение. Поискав на...

OpenGL - входящие команды
Такая проблема: недавно написал прогу с OpenGL, где исходник для нормальной работы OGL взял отсюда все работало прекрасно... недавно...

23
 Аватар для zayats80888
6353 / 3524 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
29.11.2020, 00:21
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от alecss131 Посмотреть сообщение
напишет в окошке максимально поддерживаемую версию opengl,
Не факт. Но вот если из этого контекста загрузить функции wgl...EXT, то можно для нового HDC запросить конкретную версию(обычно запрашивают максимальную и потом методом декремента и последовательных запросов получают максимально доступную)


Цитата Сообщение от Excalibur9211 Посмотреть сообщение
Так эта видеокарта что я кинул параметры не потянет код шейдеров 4.5?
Ну а скачать какую-нибудь прогу из инета и посмотреть самостоятельно?
Цитата Сообщение от Excalibur9211 Посмотреть сообщение
Можете сделать пример пустить точку по окружности через таймер на шейдерах?
...
И желательно чтобы код был для создания полноценного exe файла без всяких онлайн лагающих сервисов типа шейдертоя.
Ручками писать, что бы без внешних зависимостей, жирновато
Если вот этот не лагает, то попробуйте в нём этот код(у меня экспорт не работает почему-то):
Кликните здесь для просмотра всего текста
glSlang
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifdef GL_ES
precision mediump float;
#endif
 
uniform vec2 u_resolution;
//uniform vec2 u_mouse;
uniform float u_time;
 
struct sphereInfo
{
    vec2 center;
    float radius;
};
 
float sphere(in vec2 p, in sphereInfo s)
{
    vec2 delta = p - s.center;
    return step(dot(delta, delta) - s.radius * s.radius, 0.0);
}
 
void main() {
    
    const float timeFactor = 2.0;
    const float trajectoryRadiusFactor = 0.3;
    const vec2 trajectoryCenter = vec2(0.000,0.010);
    
    vec2 st = gl_FragCoord.xy / u_resolution.xy - vec2(0.5);
    st.x *= u_resolution.x / u_resolution.y;
    
    float t = u_time * timeFactor;
    
    sphereInfo s;
    s.center = trajectoryCenter + vec2(cos(t), sin(t)) * trajectoryRadiusFactor;
    s.radius = -0.014;
 
    gl_FragColor = vec4(sphere(st, s));
}

Цитата Сообщение от Excalibur9211 Посмотреть сообщение
Еще бы в идеале добавить простейший слайдер таскать точку на отрезке, пусть задает радиус траектории окружности.
Ага, ещё и GUI написать?
Там в редакторе по ссылке, если кликнуть на значение в коде, то появится слайдер или сетка(для векторов), что бы подстраивать значения.
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
29.11.2020, 09:37
Цитата Сообщение от zayats80888 Посмотреть сообщение
Ага, ещё и GUI написать?
хм хорошая идея, напишешь еще игровой движок плюс новую операционную систему заодно)))
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
29.11.2020, 10:56
Цитата Сообщение от zayats80888 Посмотреть сообщение
о вот если из этого контекста загрузить функции wgl...EXT,
Оказалось есть такая штука glewinfo.exe отчет о технологиях по пунктам.
Ведет себя странно, все пункты OK но сам стандарт MISSING
GL_VERSION_3_0: MISSING
---------------
glBeginConditionalRender: OK
glBeginTransformFeedback: OK
… все OK
glVertexAttribIPointer: OK
Даже 3.1 цепляет
GL_VERSION_3_1: MISSING
---------------
glDrawArraysInstanced: OK
glDrawElementsInstanced: OK
glPrimitiveRestartIndex: MISSING
glTexBuffer: MISSING
Цитата Сообщение от zayats80888 Посмотреть сообщение
скачать какую-нибудь прогу из инета и посмотреть самостоятельно?
Посмотреть что? Поддерживает ли видеокарта рисование точек и азы школьной тригонометрии?

Вот именно странно звучит, скорей всего эти вещи тянут любые карты и версия шейдеров тут не важна. Я вообще не знаю зачем эти версии нужны. По идее унифицированные шейдеры должны поддерживать все но с эмуляцией. Там список узкоспециальных команд, это все для экспертов. В старом gl не юзал больше чем рисование точек и отрезков для мелких прог, просто больше не нужно было. На шейдерах хотел порисовать аттракторы по своим уравнениям и фракталы а бонус только от распараллеливания действий. GPU нужен чтобы выполнять мою математику и алгоритмы.

Цитата Сообщение от zayats80888 Посмотреть сообщение
ещё и GUI написать?
Это вы про отрезок и току?
Значит в шейдерах нужен скилл экстра класса чтобы нарисовать отрезок и таскать точку? Странно, придумал такое на стром gl на глуте без всяких библиотек на стартовых уроках.

Цитата Сообщение от zayats80888 Посмотреть сообщение
Там в редакторе по ссылке
Никаких онлайн поделок, для отладки скорости, алгоритмов, математики нужен будет запуск 100500 раз.
Цитата Сообщение от zayats80888 Посмотреть сообщение
Ручками писать, что бы без внешних зависимостей, жирновато
Не знаю что это, т.е. как код например для глута нельзя просто скопировать? Странно звучит.
0
 Аватар для zayats80888
6353 / 3524 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
29.11.2020, 11:42
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Посмотреть что?
Максимальную версию контекста, поддерживаемую вашим драйвером. Вы же спрашивали.
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Значит в шейдерах нужен скилл экстра класса чтобы нарисовать отрезок и таскать точку?
А шейдеры для этого зачем?
Цитата Сообщение от Excalibur921 Посмотреть сообщение
для отладки скорости, алгоритмов, математики нужен будет запуск 100500 раз.
Ага, и GUI из отрезка с точкой
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Не знаю что это, т.е. как код например для глута нельзя просто скопировать? Странно звучит.
Свой экземпляр глута, к сожалению, я передал в "Музей компьютерных технологий эпохи неолита".
Использовать его в 20 году, кроме как для студенческих лаб(что то же сомнительно), вот что странно.
Цитата Сообщение от Excalibur921 Посмотреть сообщение
GPU нужен чтобы выполнять мою математику и алгоритмы.
Давно бы заказали себе программу, или сами написали бы(тем более что с математикой и алгоритмами дружите).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.11.2020, 11:42

Условие выполнения команды в цикле
Здравствуйте! Столкнулся с очень странной ошибкой. Имею двухмерный массив нулей и единиц и двухмерный массив булевых значений. Задача...

Непредвиденное значение. Вызов команды в цикле
Прошу прощения за ламерский вопрос, делаю несложный скрипт (большой опыт bash) на batch и потратил уже уйму времени на казалось бы...

Выполнение команды TRACERT в бесконечном цикле
Подскажите, пожалуйста. Можно ли написать какой-либо &quot;скрипт&quot; который будет выполнять постоянный tracert до сервера и сохранять его в...

Ошибка при обработке в цикле с FOR вывода команды PATH
Мне кажется что здесь есть ошибка , нужно вывести на экран список не существующих путей. Оно выводить не правильно, не могу ...

Вызов функции 1 раз в игровом цикле OpenGl, библиотека GLFW
Я пишу визуализацию алгоритма сборки кубика рубика Кубик рубика отрисовывается в игровом цикле и у меня есть вопрос,каким образом я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru