OpenGL: большие текстурные поверхности лучше или хуже многих мелких текстурных поверхностей? - PullRequest
1 голос
/ 31 января 2011

Я много думал об этом, замедляет ли это рендеринг, если я переключаю огромные текстуры, вместо того, чтобы переключать много текстур меньшего размера с помощью glBindTexture ()?У меня была мысль, что GPU копирует данные текстуры в более быстрое место в памяти каждый раз, когда используется glBindTexture (), поэтому я подумал, что большие текстуры тоже будут копироваться дольше.

Но яПомните, что раньше вы использовали много небольших текстур для создания анимации, и это было ужасно медленно на некоторых картах GFS, но когда я поместил кадры анимации на одну текстуру, производительность поднялась до небес.Тем не менее, у меня не было проблем с производительностью на некоторых других картах GFS в обоих случаях.

Тем не менее, я должен всегда использовать максимально возможный размер поверхности текстуры?(если я не трачу много пустого пространства текстуры там).

1 Ответ

6 голосов
/ 31 января 2011

Переключение текстур стоит дорого. Обычным узким местом является давление в кеше, но иногда и текстуры выгружаются из памяти графического процессора.

Однако, пока рассматриваемые текстуры являются резидентными, то есть расположены в быстрой памяти графического процессора, изменение привязки текстуры составляет O (1), т.е. независимо от размера текстуры. Поэтому всегда следует использовать максимально возможную текстуру. Ключевыми словами являются текстурные атласы, которые обычно являются способом повышения производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...