Форум программистов, компьютерный форум, киберфорум
Наши страницы

OpenGL

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
#1

Тормоза в OpenGL - OpenGL

27.09.2013, 20:03. Просмотров 1989. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2013, 20:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Тормоза в OpenGL (OpenGL):

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

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

Ошибки при подключение opengl, немного не связанные с 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; ...

Сильно отличаются OpenGL ES и OpenGL и как? - OpenGL
Сильно отличаются OpenGL ES и OpenGL и как?

OpenGL + GlTools по книге OpenGL Суперкнига - OpenGL
В главе 4 есть пример с отрисовкой 3хмерного вращающегося тора. Вот код: void RenderScene(void) { GLTMatrix transformationMatrix; ...

OpenGL - VS2008 Инициализация OpenGL (Glut) - OpenGL
Правильно ли я написал код для выведения 3d изображения на экран? Вот пару недель наверно искал метод - можно ли окно как то создать без...

41
demover123
1 / 1 / 0
Регистрация: 16.08.2012
Сообщений: 80
28.09.2013, 13:09 #2
Возможно из-за видео карты, скорее всего она не подстроена на заводе для нормальное работы OpenGL
0
Somebody
2791 / 1602 / 147
Регистрация: 03.12.2007
Сообщений: 4,199
Завершенные тесты: 1
28.09.2013, 13:32 #3
Цитата Сообщение от xTIGRx Посмотреть сообщение
сразу скажу что у других игра норм робит тоесть дело не в коде
ИМХО, неверный вывод. Не значит, что ошибка в коде, но всё же последствия ошибок могут зависеть от железа, системы, драйверов, их настроек.
Цитата Сообщение от xTIGRx Посмотреть сообщение
C++
1
glutInitDisplayMode(GLUT_SINGLE||GLUT_RGB);
Не ||, а |. И лучше с двойной буферизацией.
0
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
28.09.2013, 19:14  [ТС] #4
пробывал, не вариант...я же говорю что месяц назад все норм работало....спустя время начило тормозить. значит что то с операционкой...вот только что????????????
0
demover123
1 / 1 / 0
Регистрация: 16.08.2012
Сообщений: 80
28.09.2013, 19:52 #5
xTIGRx, меняй драйвер, сноси ос
0
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
29.09.2013, 01:48  [ТС] #6
Я вот тоже думаю может что то с ОС или с дравами...ОС снести не смогу тут лицуха стоит, и комп не мой...насчет дров может что то типо Physix установить чтоли???
0
demover123
1 / 1 / 0
Регистрация: 16.08.2012
Сообщений: 80
29.09.2013, 01:50 #7
xTIGRx, физикс тут не при чём, а какая разница есть ли лицензия или нет? У странах СНГ почти всегда пиратки стоят.
0
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
29.09.2013, 01:54  [ТС] #8
Дружище комп не мой просто...

Добавлено через 1 минуту
Хотя я смотрю другого выбора нету поэтому придется сделать побыстринькому это до утра)). лан отвечу через 2 часа, глянем чо выйдет
0
demover123
1 / 1 / 0
Регистрация: 16.08.2012
Сообщений: 80
29.09.2013, 01:55 #9
xTIGRx, давай
1
PetyaVasechkin
117 / 117 / 1
Регистрация: 27.09.2013
Сообщений: 702
29.09.2013, 02:00 #10
Рисование поля это DrawCell() ?
0
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
29.09.2013, 13:15  [ТС] #11
Все снес, терь норм робит...всем спасибо.
да рисование поля это DrawCell
0
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
20.01.2014, 03:58  [ТС] #12
Простите ребята но придется поднять эту тему опять...спустя некоторое время опять такая же штука получается((. винду снес но на этот раз не помогло все также тормозит...мистика какая то...Может это уже дело в видюхе...хотя OpenGL неужели такая прожорливая что 256 метров со всему графическими ускорителями не помогает...или это дело в библиотеке GLUT которрый скачал с офф сайта??? есть идеи
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
20.01.2014, 11:28 #13
Частоты видеокарты меняли? Признавайтесь!

Добавлено через 1 минуту
256 мб, может утечка памяти? Посмотрите в диспетчере процессов, память растет линейно?
0
snake32
1486 / 1050 / 147
Регистрация: 26.02.2009
Сообщений: 3,967
Записей в блоге: 5
20.01.2014, 12:31 #14
Попробуйте обновить драйвера видеокатры
0
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
20.01.2014, 18:22  [ТС] #15
programina, Частота с 60 на 75 как всегда...я так всегда на всех мониторах ставлю, говорят зрение не портится от этого (портится вообще от всего ну получше чем на 60)...

snake32 а что менять видеокарта встроенная AMD Radeon X700
0
20.01.2014, 18:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2014, 18:22
Привет! Вот еще темы с ответами:

OpenGL.Урок 1. простой OpenGL-проект - OpenGL
Не компилируется кодю #include &lt;GL\glut.h&gt; void DrawLine() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 1.0, 1.0); ...

Не загружается текстура в OpenGL (OpenGL + Классы) - OpenGL
Здравствуйте! Пишу движок для игры. Первый прототип я сделал процедурно. Все работает как надо. Сейчас переписываю в классах....

Перевод OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3, 8th Edition - OpenGL
Уважаемые форумчане! У вас есть возможность выразить свою активную позицию по вопросу о переводе на русский язык и издательстве...

Тормоза (возможно при числе окон больше 4) - OpenGL
Здравствуйте В какой-то момент gDrawElements начинает дико тормозить, время одного вызова даже на одной тысяче полигонов пол-секунды....


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru