Форум программистов, компьютерный форум, киберфорум
OpenGL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.79/19: Рейтинг темы: голосов - 19, средняя оценка - 4.79
294 / 200 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1

Тормоза в OpenGL

27.09.2013, 20:03. Показов 4378. Ответов 41
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ почему у меня тормозит игра змейка...комп Win7 x64 MVS 2010...сразу скажу что у других игра норм робит тоесть дело не в коде, а в какой то библиотеке я думаю dll или что то в этом роде...месяц назад игра нормально работала.а теперь при запуске поле рисуется слева на право, очень медленно аж 5 сек, после идет рисование снизу вверх тоже 5 сек, а потом цикл опять повторяется. если убрать в коде фукнцию рисования поля то тормозов никаких нет, в чем же дело??? вот рабочий код

Кликните здесь для просмотра всего текста
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <GL\glut.h>
 
int W=20, H=20;
int Scale=30;
int w=Scale*W;
int h=Scale*H;
int dir=0, num=4;
struct
{
    int x;
    int y;
} s[100];
 
void DrawCell()
{
    glColor3f(0.0,1.0,0.0);
    glBegin(GL_LINES);
    for(int i=0; i<w; i+=Scale)
    {
        glVertex2f(i,0); 
        glVertex2f(i,h);
    }
    for(int i=0; i<h; i+=Scale)
    {
        glVertex2f(0,i);
        glVertex2f(w,i);
    }
    glEnd();
} 
 
void DrawSnake()
{
    glColor3f(0.0,0.0,1.0);
    for(int i=0; i<num; i++)
    {
            glRecti(s[i].x*Scale, s[i].y*Scale, (s[i].x+1)*Scale, (s[i].y+1)*Scale);
    }
 
}
 
void MyKeyboard(int key, int a, int b)
{
    switch(key)
    {
    case GLUT_KEY_UP: dir=0; break;
    case GLUT_KEY_DOWN: dir=1; break;
    case GLUT_KEY_LEFT: dir=2; break;
    case GLUT_KEY_RIGHT: dir=3; break;
    case GLUT_KEY_HOME: num++; break;
    }
}
 
void Tick()
{
    for(int i=num; i>0; --i)
    {
        s[i].x=s[i-1].x;
        s[i].y=s[i-1].y;
    }
 
    switch(dir)
    {
    case 0: s[0].y+=1; break;
    case 1: s[0].y-=1; break;
    case 2: s[0].x-=1; break;
    case 3: s[0].x+=1; break;
    }
}
 
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    DrawSnake();
    DrawCell();
    glFlush();
}
 
void timer(int)
{
    display();
    Tick();
    glutTimerFunc(100,timer,0);
}
 
int main()
{
    glutInitDisplayMode(GLUT_SINGLE||GLUT_RGB);
    glutInitWindowSize(w,h);
    glutInitWindowPosition(400,100);
    glutCreateWindow("Snake");
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D(0,w,0,h);
    glutDisplayFunc(display);
    glutSpecialFunc(MyKeyboard);
    timer(0);
    glutMainLoop();
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.09.2013, 20:03
Ответы с готовыми решениями:

Word automation + Windows server 2008 R2 = тормоза(очень сильные тормоза)
Здравствуйте! Есть код, написанный правда на делфи, который экспортирует содержимое ТХТ файла в DOS кодировке в WORD. Попутно, если...

Perl + OpenGL Как избавиться от повторного подключения библиотеки OpenGL в модулях
Доброго времени суток! Сегодня решил заняться программированием на языке Perl, используя библиотеку OpenGL :D Возникли вопросы: ...

Какая значительная разница между OpenGL ES 2.0 и OpenGL 3.3 при использовании в Qt
Привет всем! У меня видеокарта имеет поддержку 3.1 версию OpenGL, обновить хочу её с помощью установщика драйвера. У меня такой вопрос:...

41
294 / 200 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
21.01.2014, 21:48  [ТС]
Студворк — интернет-сервис помощи студентам
programina, Glut32.dll закинул в system32 как и было написано в инструкции lib в lib h в include
0
 Аватар для snake32
3591 / 1721 / 236
Регистрация: 26.02.2009
Сообщений: 8,721
Записей в блоге: 5
21.01.2014, 22:12
Цитата Сообщение от programina Посмотреть сообщение
на freeglut на линукс ничего не "жрет"
а у нас GLUT и Windows 7 - и жрёт
0
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
21.01.2014, 23:13
Цитата Сообщение от xTIGRx Посмотреть сообщение
programina, Glut32.dll закинул в system32 как и было написано в инструкции lib в lib h в include
А что если попробовать другие длл-ки? Или собрать ее на своем компьютере?

Добавлено через 11 минут
Цитата Сообщение от programina Посмотреть сообщение
Или собрать ее на своем компьютере?
разницы никакой, вобщем используйте вместо глута фриглут, в нем меньше багов.

Добавлено через 2 минуты
Цитата Сообщение от snake32 Посмотреть сообщение
а у нас GLUT и Windows 7 - и жрёт
У меня тоже виндовс 7 есть, только глута нет. Не получается собрать его в mingw
0
294 / 200 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
22.01.2014, 00:05  [ТС]
так я на Windows программирую как я линуксовую фригут то поставлю.
0
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
22.01.2014, 02:56
Цитата Сообщение от xTIGRx Посмотреть сообщение
так я на Windows программирую как я линуксовую фригут то поставлю.
Зачем линуксовский? он и для винды есть

Добавлено через 19 минут

Не по теме:

э...а как она тормозить должна то? (я скопипастил код из первого поста, закинул его в VS и откомпилил)

у меня синяя змейка катается себе и катается(правда если отпустить то она уедет за пределы экрана и с концом - вернуть конечно можно но это ладно лол) - тормозов нет, проц не загружает, 9 мб оперативы ест ивсе.

правда я использовал freeglut. но код не изменял - правда добавил естественно glutInit(&argc, argv) но это так...
возможно действительно дело в GLUT.

0
22.01.2014, 03:04

Не по теме:

вот даже гифку приложил. правда нужно немного подождать перед возвращением блудной змейки так как она уехала за предел экрана пока я кнопку запись нажимал лол.

P.S для нормального просмотра нужно кликнуть на изображение - так как по непонятной мне причине форум добавил в миниатюрную гифку артефакты какие-то

Миниатюры
Тормоза в OpenGL  
0
294 / 200 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
22.01.2014, 04:00  [ТС]
Artishok познакомье меня с фриглут плиз))...ссылочку можно...ща попробую вдруг из за GLUT
0
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
22.01.2014, 13:52
Цитата Сообщение от xTIGRx Посмотреть сообщение
Artishok познакомье меня с фриглут плиз))...ссылочку можно...ща попробую вдруг из за GLUT
а чего с ним знакомить то...

отсюда качаешь(на оригинальной страницe sourceforge конечно тоже можно - только там нужно проект freeglut MSVS откомпилить)
http://www.transmissionzero.co... lut-devel/
тут уже готовые бинарники:
- скачиваешь
- подключаешь к проекту .lib и include
- кидаешь к exe файлу freeglut.dll
- можешь даже в исходнике даже ничего не менять, но добавить в main нужно перед твоим glutInitDisplayMode
C++
1
glutInit(&argc, argv);
где параметры - берутся из
C++
1
int main(int argc, char *argv[])
ну и собственно все.
0
294 / 200 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
22.01.2014, 19:08  [ТС]
Цитата Сообщение от Artishok Посмотреть сообщение
а чего с ним знакомить то...
Бред....не запускается сейчас вообще!!!
0
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
22.01.2014, 20:57
Цитата Сообщение от xTIGRx Посмотреть сообщение
Бред....не запускается сейчас вообще!!!
видимо что то сделал не так. хоть какие ошибки то выдаёт?
0
294 / 200 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
23.01.2014, 00:41  [ТС]
Сейчас скину

Добавлено через 1 минуту
Нажимаю компилировать выдает такое
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
1>------ Перестроение всех файлов начато: проект: Project, Конфигурация: Debug Win32 ------
1>  Snake.cpp
1>c:\users\admin\documents\visual studio 2010\projects\project\project\snake.cpp(20): warning C4244: аргумент: преобразование "int" в "GLfloat", возможна потеря данных
1>c:\users\admin\documents\visual studio 2010\projects\project\project\snake.cpp(21): warning C4244: аргумент: преобразование "int" в "GLfloat", возможна потеря данных
1>c:\users\admin\documents\visual studio 2010\projects\project\project\snake.cpp(21): warning C4244: аргумент: преобразование "int" в "GLfloat", возможна потеря данных
1>c:\users\admin\documents\visual studio 2010\projects\project\project\snake.cpp(25): warning C4244: аргумент: преобразование "int" в "GLfloat", возможна потеря данных
1>c:\users\admin\documents\visual studio 2010\projects\project\project\snake.cpp(26): warning C4244: аргумент: преобразование "int" в "GLfloat", возможна потеря данных
1>c:\users\admin\documents\visual studio 2010\projects\project\project\snake.cpp(26): warning C4244: аргумент: преобразование "int" в "GLfloat", возможна потеря данных
1>  Project.vcxproj -> C:\Users\Admin\Documents\Visual Studio 2010\Projects\Project\Debug\Project.exe
========== Перестроение всех: успешно: 1, с ошибками: 0, пропущено: 0 ==========


в консоли чтото пишется и все ничего не запускается

Добавлено через 44 секунды
h в Include кинул. Lib в Lib. dll в system32

Добавлено через 14 секунд
тоже самое что и с GLUT только это Freeglut

Добавлено через 3 минуты
но это всего лишь предупреждение...Warning прога и с этим запуститься должна но не запускается
0
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
23.01.2014, 00:42
Цитата Сообщение от xTIGRx Посмотреть сообщение
Сейчас скину
Добавлено через 1 минуту
Нажимаю компилировать выдает такое
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
1>------ Перестроение всех файлов начато: проект: Project, Конфигурация: Debug Win32 ------
1>  Snake.cpp
1>c:\users\admin\documents\visual studio 2010\projects\project\project\snake.cpp(20): warning C4244: аргумент: преобразование "int" в "GLfloat", возможна потеря данных
1>c:\users\admin\documents\visual studio 2010\projects\project\project\snake.cpp(21): warning C4244: аргумент: преобразование "int" в "GLfloat", возможна потеря данных
1>c:\users\admin\documents\visual studio 2010\projects\project\project\snake.cpp(21): warning C4244: аргумент: преобразование "int" в "GLfloat", возможна потеря данных
1>c:\users\admin\documents\visual studio 2010\projects\project\project\snake.cpp(25): warning C4244: аргумент: преобразование "int" в "GLfloat", возможна потеря данных
1>c:\users\admin\documents\visual studio 2010\projects\project\project\snake.cpp(26): warning C4244: аргумент: преобразование "int" в "GLfloat", возможна потеря данных
1>c:\users\admin\documents\visual studio 2010\projects\project\project\snake.cpp(26): warning C4244: аргумент: преобразование "int" в "GLfloat", возможна потеря данных
1>  Project.vcxproj -> C:\Users\Admin\Documents\Visual Studio 2010\Projects\Project\Debug\Project.exe
========== Перестроение всех: успешно: 1, с ошибками: 0, пропущено: 0 ==========
это не ошибки.
Цитата Сообщение от xTIGRx Посмотреть сообщение
в консоли чтото пишется и все ничего не запускается
знать бы что пишется...дебаггер в помощь я думаю.

Цитата Сообщение от xTIGRx Посмотреть сообщение
Добавлено через 44 секунды
h в Include кинул. Lib в Lib. dll в system32
ну что за манера всё кидать в system32? если компилятор VS то просто зависимость к lib добавить в linker и все. include также добавить в зависимость и все.
а dll к exe файлу кидать надо.

Цитата Сообщение от xTIGRx Посмотреть сообщение
Добавлено через 14 секунд
тоже самое что и с GLUT только это Freeglut
ну значит проблема с пк. драйвера может быть...
1
294 / 200 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
23.01.2014, 01:06  [ТС]
Удивительно запустилась но все равно тормозит....

Добавлено через 57 секунд
щас драйвера попрбую

Добавлено через 21 минуту
Ура заработало)). дело было в дровах все таки...незнаю почему но когда для ATI выходят новые драйвера то видюха со старыми дровами начинает плохо вести себя...особенно когда есть инет...все всем Спасибо!
0
 Аватар для snake32
3591 / 1721 / 236
Регистрация: 26.02.2009
Сообщений: 8,721
Записей в блоге: 5
23.01.2014, 01:21
Цитата Сообщение от xTIGRx Посмотреть сообщение
Ура заработало))
А утечка памяти есть?
0
294 / 200 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
23.01.2014, 01:49  [ТС]
неа...норме с памятью...проц не грузит 0-1% всего 9 метров...без тормозов вообще...как будто в сапера играешь))
0
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
23.01.2014, 02:05
Цитата Сообщение от snake32 Посмотреть сообщение
А утечка памяти есть?
да если бы была утечка памяти то вина бы точно на чем то левом бы была...так как течь тут нечему
0
 Аватар для snake32
3591 / 1721 / 236
Регистрация: 26.02.2009
Сообщений: 8,721
Записей в блоге: 5
23.01.2014, 10:28
Цитата Сообщение от Artishok Посмотреть сообщение
...так как течь тут нечему
Вот и я о том же. По коду течь нечему. Тормозов нет, но память постоянно растёт.
Надо будет попробовать freeglut собрать и поставить...

Не по теме:

эх вот ещё бы шарить в MSVS также как в Delphi...

0
294 / 200 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
23.01.2014, 18:55  [ТС]
собственно разницы в freeglut и glut нет....так что Поставил GLUT
0
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
23.01.2014, 21:16
Цитата Сообщение от xTIGRx Посмотреть сообщение
собственно разницы в freeglut и glut нет....так что Поставил GLUT
так и не должно быть базовых отличий
хотя функций в freeglut побольше будет так как вроде с 1999 года оригинальный GLUT не развивался насколько я знаю
0
294 / 200 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
23.01.2014, 21:23  [ТС]
Artishok, а как в OpenGL поменять координацию...вроде этой функцией gluOrtho2D(0,w,h,0);...но поэкспереминтировав понял что он влияет только на рисование...а при расчетах не влияет...проблема в координате Y...ноль должен быть снизу для удобства
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.01.2014, 21:23

OpenGL Ваша текущая конфигурация рабочего стола не поддерживает OpenGL Аппаратное ускорение.
всем здрасте ) скачал opengl extensions viewer решил проверить драйверы на видео карту.В разделе программы Repot мне посыпалось куча...

Чем отличаются готовые сборки Qt под Win + MSVC с OpenGL и без OpenGL?
Ну вопрос собственно в том, что мне не очень понятно, что же в сборке кьюте без опен джел имеется вместо него? Тоесть понятно, что в сборке...

Создаю игру с научным уколоном на C++/opengl. Как подключить openGL и добиться кроссплатформенности
Я читал про opengl - для его инициализации нужно создавать windows - окно. Для linux видимо инициализация происходить по другому. как мне...

(2 главы перевода книги доступно) OpenGL Programming Guide, Version 4.3, 8th Edition - OpenGL
Продолжая тему с переводом книги https://www.cyberforum.ru/opengl/thread1551398.html Выкладываю для скачивания вторую переведенную главу...

Ошибки при подключение opengl, немного не связанные с opengl
#include &lt;windows.h&gt; #include &quot;stdafx.h&quot; #include &lt;gl/gl.h&gt; #include &lt;gl/glu.h&gt; #include &lt;stdio.h&gt; //#include &quot;TXLib.h&quot; ...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru