Войти
ПрограммированиеФорумГрафика

Оптимизация рендеринга моделей (3 стр)

Страницы: 1 2 3 4 Следующая »
#30
16:48, 2 ноя. 2009

louken
ты убери из кода SwapBuffers и проверь ФПС


#31
19:29, 2 ноя. 2009

 L 
> ты убери из кода SwapBuffers и проверь ФПС
Ну ситуация с fps примерно такой и осталась. Зато коечто стало видно, где можно немного съоптимизировать. Надо переносить всю геометрию в один буфер и биндить вбо единожды, на одних тока вызовах функций можно съэкономить, да от glPush(Pop)Matrix тоже надо избавляться

#32
20:12, 2 ноя. 2009

Вроде бы очевидно, что тут упираемся в fillrate, либо в пропускную способность видеопамяти.
Так что геометрию можно хоть куда переносить, но толку не будет.
А вот если понизить разрешение, то запросто.
Также можно попробовать пооптимизировать настройки конвейера - убрать лишние очистки буфера, блендинг, сделать попроще фильтрацию и т.п.

#33
20:53, 2 ноя. 2009

Mirage
> А вот если понизить разрешение, то запросто.
А разрешение чего нужно снижать?

#34
21:43, 2 ноя. 2009

louken
> А разрешение чего нужно снижать?
бэкбуфера : )  (и ваще всехтекстур)

#35
22:22, 2 ноя. 2009

 L 
> бэкбуфера : ) (и ваще всехтекстур)
Ну окно то и так маленькое - всего 1024х768. А вот уменьшил щас размеры текстуры, та что наклыдавается на кирпичные блоки, дык fps  немного вырос, уже интересней стало. Есть тут над чем подумать.

#36
9:17, 3 ноя. 2009

louken
>А вот уменьшил щас размеры текстуры, та что наклыдавается на кирпичные блоки, дык fps немного вырос
mip-уровни для текстур делаешь?

#37
12:39, 3 ноя. 2009

Andrey
> mip-уровни для текстур делаешь?
Да вроде как да:

glGenTextures(1, @Texture);
glBindTexture(GL_TEXTURE_2D, Texture);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
gluBuild2DMipmaps(GL_TEXTURE_2D, Format, Width, Height, Format, GL_UNSIGNED_BYTE, pData);
Потом оказалось что нет. Исправил:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
Стало чуток побыстрее, но качество несколько ухудшилось, хотя я считаю что это проблемы моделек, а не чего то другого.
#38
12:53, 3 ноя. 2009

Не, пажалуй я откажусь от mip-уровней, лучше текстурки сделать поменьше.

Еще у меня модельки рисуются через GL_TRIANGLES, а надо бы через GL_TRIANGLE_STRIP, это, наверно, тоже влияет.

#39
13:03, 3 ноя. 2009

louken
> glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );

#40
13:05, 3 ноя. 2009

louken
> А вот уменьшил щас размеры текстуры, та что наклыдавается на кирпичные блоки,
> дык fps немного вырос, уже интересней стало. Есть тут над чем подумать.

какой исходный формат текстуры ?

#41
13:20, 3 ноя. 2009

louken
Действительно, какой формат? Не стоит отказываться от мип-уровней и лучше генерировать их самому (например с помощью NVIDIA DDS plug-in), а не через gluBuild2DMipmaps, тогда можно поиграться с фильтрами, шарпом и фейдером для каждого отдельного уровня и добится очень хорошего и качественного результата. К тому же не стоит забывать и о GL_TEXTURE_MIN_LOD.

#42
13:23, 3 ноя. 2009

innuendo
> какой исходный формат текстуры ?
дык JPG - GL_RGB

#43
13:25, 3 ноя. 2009

louken
> > какой исходный формат текстуры ?
> дык JPG - GL_RGB

попробуй компрессию через dds

#44
13:26, 3 ноя. 2009

louken
> дык JPG - GL_RGB

Очень плохо. Твой выбор: DDS, PNG или хотя бы TGA.

Страницы: 1 2 3 4 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.