Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];

Вниз

низкие фпс в opengl   Найти похожие ветки 

 
Zo   (2006-08-14 18:45) [0]

День добрый, есть такая проблема с FPS в OGL приложении. Рисую 300 квадратов так:

 glActiveTextureARB(GL_TEXTURE0);
 t.Enable;
 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);

 glActiveTextureARB(GL_TEXTURE1);
 t2.Enable;
 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);

for I := 0 to 299 do
begin
glLoadIdentity();
glTranslated(ogl.Resolution.Width/2-640/2,ogl.Resolution.Height/2-480/2,-0);
DrawQuad(640,480,1,1);
end;

glActiveTextureARB(GL_TEXTURE1);
t.Disable;
glActiveTextureARB(GL_TEXTURE0);
t.Disable;


где t и t2 : TTexture;

procedure TTexture.Enable;
begin
 glEnable(GL_TEXTURE_2D);
 glBindTexture(GL_TEXTURE_2D, Texture_pointer);
end;

procedure TTexture.Disable;
begin
 glBindTexture(GL_TEXTURE_2D, 0);
 glDisable(GL_TEXTURE_2D);
end;


а вывод квадрата такой:
procedure DrawQuad(Width,Height : Single; TextureScaleX, TextureScaleY: Single);
begin
tc[0] := 0;
tc[1] := 0;

tc2[0] := TextureScaleY;
tc2[1] := 0;

tc3[0] := TextureScaleY;
tc3[1] := TextureScaleX;

tc4[0] := 0;
tc4[1] := TextureScaleX;    

  glBegin(GL_QUADS);

   glcolor4f(1.0,1.0,1.0,1.0);
   glMultiTexCoord2fvARB(GL_TEXTURE0, @tc4);
   glMultiTexCoord2fvARB(GL_TEXTURE1, @tc4);
   glVertex2f(0,0);

   glcolor4f(1.0,1.0,1.0,1.0);

   glMultiTexCoord2fvARB(GL_TEXTURE0, @tc);
   glMultiTexCoord2fvARB(GL_TEXTURE1, @tc);
   glVertex2f(0,Height);

   glcolor4f(1.0,1.0,1.0,1.0);

   glMultiTexCoord2fvARB(GL_TEXTURE0, @tc2);
   glMultiTexCoord2fvARB(GL_TEXTURE1, @tc2);
   glVertex2f(Width,Height);

   glcolor4f(1.0,1.0,1.0,1.0);

   glMultiTexCoord2fvARB(GL_TEXTURE0, @tc3);
   glMultiTexCoord2fvARB(GL_TEXTURE1, @tc3);
   glVertex2f(Width,0);
glEnd;

end;


Трабла в низких ФПС ~ 2-6, такие фпс сохраняются даже если отключить текстурирование вовсе. В чём может быть проблема?

p.s. драйвера последней версии


 
XProger ©   (2006-08-14 20:00) [1]

glLoadIdentity;
glTranslated(ogl.Resolution.Width/2-640/2,ogl.Resolution.Height/2-480/2,-0);
for I := 0 to 299 do
 DrawQuad(640,480,1,1);

А так?


 
RzCoDer ©   (2006-08-14 20:07) [2]

и так тоже самое


 
RzCoDer ©   (2006-08-14 20:08) [3]

от этого в обще мало фпс зависят


 
Zo   (2006-08-14 20:16) [4]


> XProger ©   (14.08.06 20:00) [1]

Нет, не помогло :(


 
Zo   (2006-08-14 20:21) [5]

если рисовать в обще без цикла то выходит примерно 270-280 FPS в оконном режиме, то есть всё равно не фонтан, это всего при 1 полигоне :(


 
ANTPro ©   (2006-08-14 20:27) [6]

Zo   (14.08.06 18:45)
Что должно быть нарисованно?

Сделай цикл без процедур
Вынеси констаты за цикл

получишь + к fps но не большой

Какое видео у тебя?


 
Zo   (2006-08-14 20:30) [7]


> ANTPro ©   (14.08.06 20:27) [6]

Должен быть нарисован прямоугольник с двумя текстурами
Цикл без процедур и константы за пределами не помогли совсем
Видео бюджетное ATI, однако другие ogl приложения работают куда быстрее, вот и пытаюсь понять в чём может быть дело


 
ANTPro ©   (2006-08-14 20:57) [8]

А где к стати у тебя BEGIN и END

ЗЫ: Рисовал почти также когда-то но 512000 полигонов
через glVertex3fv


 
ANTPro ©   (2006-08-14 21:01) [9]

ANTPro ©   (14.08.06 20:57) [8]
А где к стати у тебя BEGIN и END

Где ?


 
ANTPro ©   (2006-08-14 21:03) [10]

Поподробнее: Видео бюджетное ATI
Дай погладеть (тока запакуй)


 
XProger ©   (2006-08-15 01:14) [11]

Zo, если все 300 полигонов рисуются на всё окно - ничего удивительного в томозах нет, т.к. всё упирается в филлрейт :)


 
TButton ©   (2006-08-15 05:14) [12]

ну, если помножить 300 заполнений окна на 2-6 (в АС = 4) ФПС, то получается ~1200
что, в принципе, неплохой показатель. мне такого от канваса не добиться =)


 
Zo   (2006-08-15 13:19) [13]


> А где к стати у тебя BEGIN и END

Выше и ниже соответсвенно кода, я просто не стал и копировать
Я бы выложил, но мне некуда =(


> XProger ©   (15.08.06 01:14) [11]

Не на всё, окно 1024*768 в оконном режиме, если прямоугольники уменьшать то ФПС конечно прирастает, но всё равно держится в рамках <100 ФПС :(


 
Tsmar   (2006-08-15 16:13) [14]

Дружище, ты сможешь реально поднять скорость если воспользуешся такой схемой:

glBegin(GL_QUADS); //удали из DrawQuad

for I := 0 to 299 do
begin
glLoadIdentity();
glTranslated(ogl.Resolution.Width/2-640/2,ogl.Resolution.Height/2-480/2,-0);
DrawQuad(640,480,1,1);
end;

glEnd; //удали из DrawQuad


 
Tsmar   (2006-08-15 16:14) [15]

сори. граматика ни мой канек.


 
XProger ©   (2006-08-15 18:09) [16]

Tsmar, а если ещё и работу с матрицами вынесет за пределы цикла... ;)
Zo, FPS будет ниже частоты монитора до тех пор, пока не отключишь вертикальную синхронизацию (wglSwapIntervalEXT(0)). Низкий в твоём коде будет всегда, шустрее оно работать не будет.


 
Zo   (2006-08-16 09:53) [17]


> Tsmar   (15.08.06 16:13) [14]

Спасибо, попробую


> XProger ©   (15.08.06 18:09) [16]

Но при пустом экране, в минимальном opengl приложении, с малым разрешением (100*100) выходит и по несколько тысяч фпс


 
Zo   (2006-08-16 17:55) [18]


> Tsmar   (15.08.06 16:14) [15]

Нет, может пару фпс из сотни и выйграл, но при 6-8 фсах прироста нету



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.043 c
6-1165441608
BFG9k
2006-12-07 00:46
2007.07.08
Как узнать IP клиента, подключившегося к IdHTTPServer у ?


2-1181717913
Dr H
2007-06-13 10:58
2007.07.08
TValueListEditor


1-1178550814
Price
2007-05-07 19:13
2007.07.08
Фото в камеру


4-1169557572
5n4k3
2007-01-23 16:06
2007.07.08
drag&amp;drop ИЗ ListBox в Проводник


2-1181721270
Nucer
2007-06-13 11:54
2007.07.08
Как правильно передать параметр функции





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский