1 / 1 / 0
Регистрация: 30.12.2011
Сообщений: 64

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

25.11.2020, 17:09. Показов 3379. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru